diff options
Diffstat (limited to 'pkgs/development/compilers/llvm/6/default.nix')
| -rw-r--r-- | pkgs/development/compilers/llvm/6/default.nix | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 2c4c11c89bd2..b78f7a62506d 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -1,6 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith -, buildPackages , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross }: @@ -18,35 +17,44 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "1w8ml7fyn4vyxmy59n2qm4r1k1kgwgwkaldp6m45fdv4g0kkfbhd"; tools = lib.makeExtensible (tools: let - callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; }); + callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); mkExtraBuildCommands = cc: '' rsrc="$out/resource-root" mkdir "$rsrc" - ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc" + ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags ''; + in { - llvm = callPackage ./llvm { }; + libllvm = callPackage ./llvm { }; + + # `llvm` historically had the binaries. When choosing an output explicitly, + # we need to reintroduce `outputUnspecified` to get the expected behavior e.g. of lib.get* + llvm = tools.libllvm.out // { outputUnspecified = true; }; + + libllvm-polly = callPackage ./llvm { enablePolly = true; }; - clang-unwrapped = callPackage ./clang { + llvm-polly = tools.libllvm-polly.lib // { outputUnspecified = true; }; + + libclang = callPackage ./clang { inherit clang-tools-extra_src; }; - llvm-manpages = lowPrio (tools.llvm.override { + clang-unwrapped = tools.libclang.out // { outputUnspecified = true; }; + + llvm-manpages = lowPrio (tools.libllvm.override { enableManpages = true; enableSharedLibraries = false; python3 = pkgs.python3; # don't use python-boot }); - clang-manpages = lowPrio (tools.clang-unwrapped.override { + clang-manpages = lowPrio (tools.libclang.override { enableManpages = true; python3 = pkgs.python3; # don't use python-boot }); - libclang = tools.clang-unwrapped.lib; - clang = if stdenv.cc.isGNU then tools.libstdcxxClang else tools.libcxxClang; libstdcxxClang = wrapCCWith rec { |
