diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix index ab329e3d85d7..3d1106dbc52c 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, llvm, version, clang-tools-extra_src, python3, lld +{ lib, stdenv, llvm_meta, fetch, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3 +, buildLlvmTools , fixDarwinDylibNames , enableManpages ? false }: @@ -18,26 +19,31 @@ let unpackFile ${clang-tools-extra_src} ''; - nativeBuildInputs = [ cmake python3 lld ] + nativeBuildInputs = [ cmake python3 ] ++ lib.optional enableManpages python3.pkgs.sphinx ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames; - buildInputs = [ libxml2 llvm ]; + buildInputs = [ libxml2 libllvm ]; cmakeFlags = [ "-DCMAKE_CXX_FLAGS=-std=c++14" "-DCLANGD_BUILD_XPC=OFF" + "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}" ] ++ lib.optionals enableManpages [ "-DCLANG_INCLUDE_DOCS=ON" "-DLLVM_ENABLE_SPHINX=ON" "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" ]; patches = [ ./purity.patch # https://reviews.llvm.org/D51899 + ./gnu-install-dirs.patch ]; postPatch = '' @@ -51,12 +57,12 @@ let sed -i -e 's/lgcc_s/lgcc_eh/' lib/Driver/ToolChains/*.cpp ''; - outputs = [ "out" "lib" "python" ]; + outputs = [ "out" "lib" "dev" "python" ]; # Clang expects to find LLVMgold in its own prefix postInstall = '' - if [ -e ${llvm}/lib/LLVMgold.so ]; then - ln -sv ${llvm}/lib/LLVMgold.so $out/lib + if [ -e ${libllvm.lib}/lib/LLVMgold.so ]; then + ln -sv ${libllvm.lib}/lib/LLVMgold.so $lib/lib fi ln -sv $out/bin/clang $out/bin/cpp @@ -75,11 +81,14 @@ let fi mv $out/share/clang/*.py $python/share/clang rm $out/bin/c-index-test + + mkdir -p $dev/bin + cp bin/clang-tblgen $dev/bin ''; passthru = { isClang = true; - inherit llvm; + inherit libllvm; }; meta = llvm_meta // { |