about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2019-05-04 13:16:10 +0200
committerFrederik Rietdijk <freddyrietdijk@fridh.nl>2019-05-04 17:32:43 +0200
commit807ba5f123bda28080eaefba46dc2b0af71a26fa (patch)
treed47bd9ff0b50373237ed5172ec96eb8939c181a2 /pkgs/development/compilers/llvm
parent0f10b72b5fba0b4b033f27b3d5020a4a60001c68 (diff)
downloadnixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar.gz
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar.bz2
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar.lz
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar.xz
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.tar.zst
nixlib-807ba5f123bda28080eaefba46dc2b0af71a26fa.zip
llvm: fix llvm-config on darwin
With 7.1 llvm-config looks for libLLVM-7.1.dylib, but the shortVersion
was still 7 so only 7 and 7.1.0 where aliased before.

	$ llvm-config --link-shared
	llvm-config: error: libLLVM-7.1.dylib is missing
Diffstat (limited to 'pkgs/development/compilers/llvm')
-rw-r--r--pkgs/development/compilers/llvm/7/llvm.nix12
1 files changed, 7 insertions, 5 deletions
diff --git a/pkgs/development/compilers/llvm/7/llvm.nix b/pkgs/development/compilers/llvm/7/llvm.nix
index dcf3a38ec1be..c288fd3e2a5c 100644
--- a/pkgs/development/compilers/llvm/7/llvm.nix
+++ b/pkgs/development/compilers/llvm/7/llvm.nix
@@ -25,9 +25,10 @@ let
   src = fetch "llvm" "0r1p5didv4rkgxyvbkyz671xddg6i3dxvbpsi1xxipkla0l9pk0v";
   polly_src = fetch "polly" "16qkns4ab4x0azrvhy4j7cncbyb2rrbdrqj87zphvqxm5pvm8m1h";
 
-  # Used when creating a version-suffixed symlink of libLLVM.dylib
-  shortVersion = with stdenv.lib;
-    concatStringsSep "." (take 1 (splitString "." release_version));
+  # Used when creating a versioned symlinks of libLLVM.dylib
+  versionSuffixes = with stdenv.lib;
+    let parts = splitString "." release_version; in
+    imap (i: _: concatStringsSep "." (take i parts)) parts;
 
 in stdenv.mkDerivation (rec {
   name = "llvm-${version}";
@@ -142,8 +143,9 @@ in stdenv.mkDerivation (rec {
   + optionalString (stdenv.isDarwin && enableSharedLibraries) ''
     substituteInPlace "$out/lib/cmake/llvm/LLVMExports-${if debugVersion then "debug" else "release"}.cmake" \
       --replace "\''${_IMPORT_PREFIX}/lib/libLLVM.dylib" "$lib/lib/libLLVM.dylib"
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${shortVersion}.dylib
-    ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${release_version}.dylib
+    ${stdenv.lib.concatMapStringsSep "\n" (v: ''
+      ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib
+    '') versionSuffixes}
   '';
 
   doCheck = stdenv.isLinux && (!stdenv.isx86_32);