Skip to content

Commit

Permalink
Merge pull request #201379 from SuperSandro2000/mpv-unwrapped
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperSandro2000 authored Dec 7, 2022
2 parents 1c05e6a + 6832930 commit 944a28d
Showing 1 changed file with 33 additions and 40 deletions.
73 changes: 33 additions & 40 deletions pkgs/applications/video/mpv/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
, fetchFromGitHub
, addOpenGLRunpath
, docutils
, perl
, meson
, ninja
, pkg-config
, python3
, wafHook
, which
, ffmpeg
, freefont_ttf
, freetype
Expand All @@ -19,6 +18,7 @@
, libuchardet
, libiconv
, CoreFoundation, Cocoa, CoreAudio, MediaPlayer
, xcbuild

, waylandSupport ? stdenv.isLinux
, wayland
Expand Down Expand Up @@ -97,40 +97,36 @@ in stdenv.mkDerivation rec {
patchShebangs version.* ./TOOLS/
'';

NIX_LDFLAGS = lib.optionalString x11Support "-lX11 -lXext "
+ lib.optionalString stdenv.isDarwin "-framework CoreFoundation";

# These flags are not supported and cause the build
# to fail, even when cross compilation itself works.
dontAddWafCrossFlags = true;

wafConfigureFlags = [
"--enable-libmpv-shared"
"--enable-manpage-build"
"--disable-libmpv-static"
"--disable-static-build"
"--disable-build-date" # Purity
(lib.enableFeature archiveSupport "libarchive")
(lib.enableFeature cddaSupport "cdda")
(lib.enableFeature dvdnavSupport "dvdnav")
(lib.enableFeature javascriptSupport "javascript")
(lib.enableFeature openalSupport "openal")
(lib.enableFeature sdl2Support "sdl2")
(lib.enableFeature sixelSupport "sixel")
(lib.enableFeature vaapiSupport "vaapi")
(lib.enableFeature waylandSupport "wayland")
(lib.enableFeature dvbinSupport "dvbin")
] # Disable whilst Swift isn't supported
++ lib.optional (!swiftSupport) "--disable-macos-cocoa-cb";
NIX_LDFLAGS = lib.optionalString x11Support "-lX11 -lXext ";

mesonFlags = let
mesonFeatureFlag = feature: flag: "-D${feature}=${if flag then "enabled" else "disabled"}";
in [
"-Ddefault_library=shared"
"-Dlibmpv=true"
(mesonFeatureFlag "libarchive" archiveSupport)
(mesonFeatureFlag "manpage-build" true)
(mesonFeatureFlag "cdda" cddaSupport)
(mesonFeatureFlag "dvbin" dvbinSupport)
(mesonFeatureFlag "dvdnav" dvdnavSupport)
(mesonFeatureFlag "openal" openalSupport)
(mesonFeatureFlag "sdl2" sdl2Support)
# Disable whilst Swift isn't supported
(mesonFeatureFlag "swift-build" swiftSupport)
(mesonFeatureFlag "macos-cocoa-cb" swiftSupport)
];

mesonAutoFeatures = "auto";

nativeBuildInputs = [
addOpenGLRunpath
docutils # for rst2man
perl
meson
ninja
pkg-config
python3
wafHook
which
] ++ lib.optionals stdenv.isDarwin [
xcbuild.xcrun
] ++ lib.optionals swiftSupport [ swift ]
++ lib.optionals waylandSupport [ wayland-scanner ];

Expand Down Expand Up @@ -175,27 +171,24 @@ in stdenv.mkDerivation rec {
++ lib.optionals stdenv.isDarwin [ libiconv ]
++ lib.optionals stdenv.isDarwin [ CoreFoundation Cocoa CoreAudio MediaPlayer ];

enableParallelBuilding = true;

postBuild = lib.optionalString stdenv.isDarwin ''
pushd .. # Must be run from the source dir because it uses relative paths
python3 TOOLS/osxbundle.py -s build/mpv
popd
'';

postInstall = ''
# Use a standard font
mkdir -p $out/share/mpv
ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
cp TOOLS/mpv_identify.sh $out/bin
cp TOOLS/umpv $out/bin
cp ../TOOLS/mpv_identify.sh $out/bin
cp ../TOOLS/umpv $out/bin
cp $out/share/applications/mpv.desktop $out/share/applications/umpv.desktop
sed -i '/Icon=/ ! s/mpv/umpv/g' $out/share/applications/umpv.desktop
substituteInPlace $out/lib/pkgconfig/mpv.pc \
--replace "$out/include" "$dev/include"
'' + lib.optionalString stdenv.isDarwin ''
mkdir -p $out/Applications
cp -r build/mpv.app $out/Applications
cp -r mpv.app $out/Applications
'';

# Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
Expand Down Expand Up @@ -227,6 +220,6 @@ in stdenv.mkDerivation rec {
'';
license = licenses.gpl2Plus;
maintainers = with maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak ];
platforms = platforms.darwin ++ platforms.linux;
platforms = platforms.unix;
};
}

0 comments on commit 944a28d

Please sign in to comment.