mpv: add flag for swift on darwin
While we currently don't have a pure swift build on macOS it's possible to build mpv using the swift compiler from CLT. eg. self: super: let CommandLineTools = "/Library/Developer/CommandLineTools"; in { 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; }; }
This commit is contained in:
parent
f8a38f67bd
commit
3987ea9a9d
@ -38,11 +38,12 @@
|
|||||||
, libpngSupport ? true, libpng ? null
|
, libpngSupport ? true, libpng ? null
|
||||||
, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
|
, pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
|
||||||
, rubberbandSupport ? stdenv.isLinux, rubberband ? null
|
, rubberbandSupport ? stdenv.isLinux, rubberband ? null
|
||||||
, screenSaverSupport ? true, libXScrnSaver ? null
|
|
||||||
, sambaSupport ? stdenv.isLinux, samba ? null
|
, sambaSupport ? stdenv.isLinux, samba ? null
|
||||||
|
, screenSaverSupport ? true, libXScrnSaver ? null
|
||||||
, sdl2Support ? true, SDL2 ? null
|
, sdl2Support ? true, SDL2 ? null
|
||||||
, sndioSupport ? true, sndio ? null
|
, sndioSupport ? true, sndio ? null
|
||||||
, speexSupport ? true, speex ? null
|
, speexSupport ? true, speex ? null
|
||||||
|
, swiftSupport ? false, swift ? null
|
||||||
, theoraSupport ? true, libtheora ? null
|
, theoraSupport ? true, libtheora ? null
|
||||||
, vaapiSupport ? stdenv.isLinux, libva ? null
|
, vaapiSupport ? stdenv.isLinux, libva ? null
|
||||||
, vdpauSupport ? true, libvdpau ? null
|
, vdpauSupport ? true, libvdpau ? null
|
||||||
@ -119,7 +120,6 @@ in stdenv.mkDerivation rec {
|
|||||||
"--disable-libmpv-static"
|
"--disable-libmpv-static"
|
||||||
"--disable-static-build"
|
"--disable-static-build"
|
||||||
"--disable-build-date" # Purity
|
"--disable-build-date" # Purity
|
||||||
"--disable-macos-cocoa-cb" # Disable whilst Swift isn't supported
|
|
||||||
(enableFeature archiveSupport "libarchive")
|
(enableFeature archiveSupport "libarchive")
|
||||||
(enableFeature cddaSupport "cdda")
|
(enableFeature cddaSupport "cdda")
|
||||||
(enableFeature dvdnavSupport "dvdnav")
|
(enableFeature dvdnavSupport "dvdnav")
|
||||||
@ -130,11 +130,13 @@ in stdenv.mkDerivation rec {
|
|||||||
(enableFeature vaapiSupport "vaapi")
|
(enableFeature vaapiSupport "vaapi")
|
||||||
(enableFeature waylandSupport "wayland")
|
(enableFeature waylandSupport "wayland")
|
||||||
(enableFeature stdenv.isLinux "dvbin")
|
(enableFeature stdenv.isLinux "dvbin")
|
||||||
];
|
] # Disable whilst Swift isn't supported
|
||||||
|
++ stdenv.lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 wafHook which
|
addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 wafHook which
|
||||||
];
|
]
|
||||||
|
++ optional swiftSupport swift;
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
ffmpeg_4 freetype libass libpthreadstubs
|
ffmpeg_4 freetype libass libpthreadstubs
|
||||||
@ -172,7 +174,7 @@ in stdenv.mkDerivation rec {
|
|||||||
++ optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
|
++ optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
|
||||||
++ optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
|
++ optionals vulkanSupport [ libplacebo shaderc vulkan-headers vulkan-loader ]
|
||||||
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||||
CoreFoundation Cocoa CoreAudio
|
CoreFoundation Cocoa CoreAudio MediaPlayer
|
||||||
]);
|
]);
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -75,6 +75,7 @@ with frameworks; with libs; {
|
|||||||
LocalAuthentication = [];
|
LocalAuthentication = [];
|
||||||
MapKit = [];
|
MapKit = [];
|
||||||
MediaAccessibility = [ CoreGraphics CoreText QuartzCore ];
|
MediaAccessibility = [ CoreGraphics CoreText QuartzCore ];
|
||||||
|
MediaPlayer = [];
|
||||||
MediaToolbox = [ AudioToolbox AudioUnit CoreMedia ];
|
MediaToolbox = [ AudioToolbox AudioUnit CoreMedia ];
|
||||||
Metal = [];
|
Metal = [];
|
||||||
MetalKit = [ ModelIO Metal ];
|
MetalKit = [ ModelIO Metal ];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user