summary refs log tree commit diff
path: root/pkgs/applications/video
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2020-02-06 14:15:35 +0100
committerDaiderd Jordan <daiderd@gmail.com>2020-02-06 14:15:35 +0100
commit3987ea9a9d4464869ac6b8e8519a386190b6b68d (patch)
tree97bb839f5443e5594c79ff3859caa281fca4d392 /pkgs/applications/video
parentf8a38f67bdec6de2978e1215a807035dc6960d4b (diff)
downloadnixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar.gz
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar.bz2
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar.lz
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar.xz
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.tar.zst
nixpkgs-3987ea9a9d4464869ac6b8e8519a386190b6b68d.zip
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; };
    }
Diffstat (limited to 'pkgs/applications/video')
-rw-r--r--pkgs/applications/video/mpv/default.nix12
1 files changed, 7 insertions, 5 deletions
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index f7ac5ef58cd..052e190a3e1 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -38,11 +38,12 @@
 , libpngSupport      ? true,           libpng        ? null
 , pulseSupport       ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
 , rubberbandSupport  ? stdenv.isLinux, rubberband    ? null
-, screenSaverSupport ? true,           libXScrnSaver ? null
 , sambaSupport       ? stdenv.isLinux, samba         ? null
+, screenSaverSupport ? true,           libXScrnSaver ? null
 , sdl2Support        ? true,           SDL2          ? null
 , sndioSupport       ? true,           sndio         ? null
 , speexSupport       ? true,           speex         ? null
+, swiftSupport       ? false,          swift         ? null
 , theoraSupport      ? true,           libtheora     ? null
 , vaapiSupport       ? stdenv.isLinux, libva         ? null
 , vdpauSupport       ? true,           libvdpau      ? null
@@ -119,7 +120,6 @@ in stdenv.mkDerivation rec {
     "--disable-libmpv-static"
     "--disable-static-build"
     "--disable-build-date" # Purity
-    "--disable-macos-cocoa-cb" # Disable whilst Swift isn't supported
     (enableFeature archiveSupport  "libarchive")
     (enableFeature cddaSupport     "cdda")
     (enableFeature dvdnavSupport   "dvdnav")
@@ -130,11 +130,13 @@ in stdenv.mkDerivation rec {
     (enableFeature vaapiSupport    "vaapi")
     (enableFeature waylandSupport  "wayland")
     (enableFeature stdenv.isLinux  "dvbin")
-  ];
+  ] # Disable whilst Swift isn't supported
+    ++ stdenv.lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
 
   nativeBuildInputs = [
     addOpenGLRunpath docutils makeWrapper perl pkgconfig python3 wafHook which
-  ];
+  ]
+    ++ optional swiftSupport swift;
 
   buildInputs = [
     ffmpeg_4 freetype libass libpthreadstubs
@@ -172,7 +174,7 @@ in stdenv.mkDerivation rec {
     ++ optionals x11Support        [ libX11 libXext libGLU libGL libXxf86vm libXrandr ]
     ++ optionals vulkanSupport     [ libplacebo shaderc vulkan-headers vulkan-loader ]
     ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-      CoreFoundation Cocoa CoreAudio
+      CoreFoundation Cocoa CoreAudio MediaPlayer
     ]);
 
   enableParallelBuilding = true;