diff --git a/pkgs/by-name/cc/ccls/package.nix b/pkgs/by-name/cc/ccls/package.nix index c6c7f597277a..c4d554e3968c 100644 --- a/pkgs/by-name/cc/ccls/package.nix +++ b/pkgs/by-name/cc/ccls/package.nix @@ -3,29 +3,32 @@ stdenv, fetchFromGitHub, cmake, - llvmPackages_19, + llvmPackages, rapidjson, runtimeShell, }: stdenv.mkDerivation (finalAttrs: { pname = "ccls"; - version = "0.20241108"; + version = "0.20250815.1"; src = fetchFromGitHub { owner = "MaskRay"; repo = "ccls"; - rev = finalAttrs.version; - sha256 = "sha256-0hZ4VnscnKYBrXy58IjeoeDxja1oNq0mNaQGPmej5BA="; + tag = finalAttrs.version; + hash = "sha256-3Wi8hsjFtFa0/HCZtli2omOskIlxV7FndbJv9MOWhMo="; }; + strictDeps = true; + nativeBuildInputs = [ cmake - llvmPackages_19.llvm.dev + llvmPackages.clang + llvmPackages.llvm.dev ]; - buildInputs = with llvmPackages_19; [ - libclang - llvm + buildInputs = [ + llvmPackages.libclang + llvmPackages.llvm rapidjson ]; @@ -35,13 +38,13 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="-fvisibility=hidden -fno-rtti") ''; - clang = llvmPackages_19.clang; - shell = runtimeShell; - postFixup = '' export wrapped=".ccls-wrapped" mv $out/bin/ccls $out/bin/$wrapped - substituteAll ${./wrapper} $out/bin/ccls + substitute ${./wrapper} $out/bin/ccls \ + --replace-fail '@clang@' '${llvmPackages.clang}' \ + --replace-fail '@shell@' '${runtimeShell}' \ + --replace-fail '@wrapped@' "$wrapped" chmod --reference=$out/bin/$wrapped $out/bin/ccls ''; @@ -51,9 +54,9 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/MaskRay/ccls"; license = lib.licenses.asl20; platforms = lib.platforms.linux ++ lib.platforms.darwin; - maintainers = with lib.maintainers; [ - mic92 - tobim + maintainers = [ + lib.maintainers.mic92 + lib.maintainers.tobim ]; }; }) diff --git a/pkgs/by-name/cc/ccls/wrapper b/pkgs/by-name/cc/ccls/wrapper index 294b60893a3f..703bd88cfaed 100644 --- a/pkgs/by-name/cc/ccls/wrapper +++ b/pkgs/by-name/cc/ccls/wrapper @@ -1,9 +1,11 @@ #! @shell@ -e +dirpath=$(CDPATH= cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + printf -v extraArgs ',\"%s\"' \ $(cat @clang@/nix-support/libc-cflags \ @clang@/nix-support/libcxx-cxxflags) \ ${NIX_CFLAGS_COMPILE} initString="--init={\"clang\":{\"extraArgs\":[${extraArgs:1}],\"resourceDir\":\"@clang@/resource-root\"}}" -exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@" +exec -a "$0" "$dirpath/@wrapped@" "${initString}" "$@"