-
Notifications
You must be signed in to change notification settings - Fork 0
/
50-darwin-impure-packages.nix
44 lines (36 loc) · 1.37 KB
/
50-darwin-impure-packages.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
self: super:
let
CommandLineTools = "/Library/Developer/CommandLineTools";
in
{
lnl = super.lnl or {} // {
swift = super.stdenv.mkDerivation {
name = "swift-CommandLineTools-0.0.0";
phases = [ "installPhase" "fixupPhase" ];
propagatedBuildInputs = [ self.darwin.DarwinTools ];
installPhase = ''
mkdir -p $out/bin $out/lib
ln -s ${CommandLineTools}/usr/bin/swift $out/bin
ln -s ${CommandLineTools}/usr/lib/swift $out/lib
ln -s ${CommandLineTools}/SDKs $out
'';
setupHook = builtins.toFile "hook" ''
addCommandLineTools() {
echo >&2
echo "WARNING: this is impure and unreliable, make sure the CommandLineTools are installed!" >&2
echo " $ xcode-select --install" >&2
echo >&2
[ -d ${CommandLineTools} ]
export NIX_LDFLAGS+=" -L@out@/lib/swift/macosx"
export SWIFT=swift
export SWIFT_LIB_DYNAMIC=@out@/lib/swift/macosx
export MACOS_SDK_VERSION=$(sw_vers -productVersion | awk -F. '{print $1 "." $2}')
export MACOS_SDK=@out@/SDKs/MacOSX$MACOS_SDK_VERSION.sdk
}
prePhases+=" addCommandLineTools"
'';
__impureHostDeps = [ CommandLineTools ];
};
mpv = super.mpv.override { swiftSupport = true; inherit (self.lnl) swift; };
};
}