llvm: create all versioned symlinks for libLLVM on darwin

Apply eb31e481475 to older versions where applicable.
This commit is contained in:
Daiderd Jordan
2019-05-04 17:32:43 +02:00
committed by Frederik Rietdijk
parent 807ba5f123
commit 626a95a9b4
4 changed files with 39 additions and 24 deletions
+9 -6
View File
@@ -21,11 +21,13 @@ let
src = fetch "llvm" "1qpls3vk85lydi5b4axl0809fv932qgsqgdgrk098567z4jc7mmn";
# Used when creating a version-suffixed symlink of libLLVM.dylib
shortVersion = with stdenv.lib;
concatStringsSep "." (take 2 (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
in stdenv.mkDerivation (rec {
stdenv.mkDerivation (rec {
name = "llvm-${version}";
unpackPhase = ''
@@ -133,8 +135,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.isi686);