diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix b/nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix index 6c935fd88de5..174cb17908cc 100644 --- a/nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix +++ b/nixpkgs/pkgs/development/compilers/llvm/3.9/llvm.nix @@ -22,10 +22,13 @@ assert (stdenv.hostPlatform != stdenv.buildPlatform) -> !enableSharedLibraries; let src = fetch "llvm" "1vi9sf7rx1q04wj479rsvxayb6z740iaz3qniwp266fgp5a07n8z"; - # Used when creating a version-suffixed symlink of libLLVM.dylib - shortVersion = with stdenv.lib; - concatStringsSep "." (take 2 (splitString "." version)); -in stdenv.mkDerivation rec { + # Used when creating a versioned symlinks of libLLVM.dylib + versionSuffixes = with stdenv.lib; + let parts = splitString "." version; in + imap (i: _: concatStringsSep "." (take i parts)) parts; +in + +stdenv.mkDerivation { name = "llvm-${version}"; unpackPhase = '' @@ -153,8 +156,9 @@ in stdenv.mkDerivation rec { + stdenv.lib.optionalString (stdenv.isDarwin && enableSharedLibraries) '' substituteInPlace "$out/lib/cmake/llvm/LLVMExports-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-${version}.dylib + ${stdenv.lib.concatMapStringsSep "\n" (v: '' + ln -s $lib/lib/libLLVM.dylib $lib/lib/libLLVM-${v}.dylib + '') versionSuffixes} ''; enableParallelBuilding = true; |