Merge pull request #14036 from acowley/darwin-ffmpeg

Darwin ffmpeg
This commit is contained in:
Wout Mertens 2016-04-23 15:24:21 +02:00
commit 017469c1ef
4 changed files with 44 additions and 8 deletions

View file

@ -141,7 +141,7 @@
/* /*
* Darwin frameworks * Darwin frameworks
*/ */
, Cocoa, CoreServices , Cocoa, CoreServices, AVFoundation, MediaToolbox, VideoDecodeAcceleration, CF
}: }:
/* Maintainer notes: /* Maintainer notes:
@ -177,7 +177,7 @@
let let
inherit (stdenv) isCygwin isFreeBSD isLinux; inherit (stdenv) isCygwin isFreeBSD isLinux;
inherit (stdenv.lib) optional optionals enableFeature; inherit (stdenv.lib) optional optionals optionalString enableFeature;
in in
/* /*
@ -410,11 +410,25 @@ stdenv.mkDerivation rec {
++ optionals nonfreeLicensing [ faac fdk_aac openssl ] ++ optionals nonfreeLicensing [ faac fdk_aac openssl ]
++ optional ((isLinux || isFreeBSD) && libva != null) libva ++ optional ((isLinux || isFreeBSD) && libva != null) libva
++ optionals isLinux [ alsaLib libraw1394 libv4l ] ++ optionals isLinux [ alsaLib libraw1394 libv4l ]
++ optionals stdenv.isDarwin [ Cocoa CoreServices ]; ++ optionals stdenv.isDarwin [ Cocoa CoreServices AVFoundation MediaToolbox
VideoDecodeAcceleration ];
# Build qt-faststart executable # Build qt-faststart executable
buildPhase = optional qtFaststartProgram ''make tools/qt-faststart''; buildPhase = optional qtFaststartProgram ''make tools/qt-faststart'';
postInstall = optional qtFaststartProgram ''cp -a tools/qt-faststart $out/bin/'';
# Hacky framework patching technique borrowed from the phantomjs2 package
postInstall = optionalString qtFaststartProgram ''
cp -a tools/qt-faststart $out/bin/
'' + optionalString stdenv.isDarwin ''
FILES=($(ls $out/bin/*))
FILES+=($(ls $out/lib/*.dylib))
for f in ''${FILES[@]}; do
if [ ! -h "$f" ]; then
install_name_tool -change ${CF}/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation "$f"
fi
done
'';
enableParallelBuilding = true; enableParallelBuilding = true;

View file

@ -66,7 +66,18 @@ let
mkdir -p "$dest" mkdir -p "$dest"
pushd "$dest" >/dev/null pushd "$dest" >/dev/null
cp -R "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" . # Keep track of if this is a child or a child rescue as with
# ApplicationServices in the 10.9 SDK
local isChild
if [ -d "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" ]; then
isChild=1
cp -R "${sdk}/Library/Frameworks/$path/Versions/$current/Headers" .
else
isChild=0
current="$(readlink "/System/Library/Frameworks/$name.framework/Versions/Current")"
cp -R "${sdk}/Library/Frameworks/$name.framework/Versions/$current/Headers" .
fi
ln -s -L "/System/Library/Frameworks/$path/Versions/$current/$name" ln -s -L "/System/Library/Frameworks/$path/Versions/$current/$name"
ln -s -L "/System/Library/Frameworks/$path/Versions/$current/Resources" ln -s -L "/System/Library/Frameworks/$path/Versions/$current/Resources"
@ -74,8 +85,17 @@ let
ln -s "/System/Library/Frameworks/$path/module.map" ln -s "/System/Library/Frameworks/$path/module.map"
fi fi
pushd "${sdk}/Library/Frameworks/$path/Versions/$current" >/dev/null if [ $isChild -eq 1 ]; then
pushd "${sdk}/Library/Frameworks/$path/Versions/$current" >/dev/null
else
pushd "${sdk}/Library/Frameworks/$name.framework/Versions/$current" >/dev/null
fi
local children=$(echo Frameworks/*.framework) local children=$(echo Frameworks/*.framework)
if [ "$name" == "ApplicationServices" ]; then
# Fixing up ApplicationServices which is missing
# CoreGraphics in the 10.9 SDK
children="$children Frameworks/CoreGraphics.framework"
fi
popd >/dev/null popd >/dev/null
for child in $children; do for child in $children; do

View file

@ -1,5 +1,5 @@
prependSearchPath() { prependSearchPath() {
NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks ${NIX_CFLAGS_COMPILE/"-F@out@/Library/Frameworks"/}" NIX_CFLAGS_COMPILE="-F@out@/Library/Frameworks ${NIX_CFLAGS_COMPILE}"
} }
linkWithRealCF() { linkWithRealCF() {

View file

@ -6717,7 +6717,9 @@ in
vid-stab = if stdenv.isDarwin then null else vid-stab; vid-stab = if stdenv.isDarwin then null else vid-stab;
x265 = if stdenv.isDarwin then null else x265; x265 = if stdenv.isDarwin then null else x265;
xavs = if stdenv.isDarwin then null else xavs; xavs = if stdenv.isDarwin then null else xavs;
inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices; inherit (darwin) CF;
inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices AVFoundation
MediaToolbox VideoDecodeAcceleration;
}; };
ffmpegthumbnailer = callPackage ../development/libraries/ffmpegthumbnailer { }; ffmpegthumbnailer = callPackage ../development/libraries/ffmpegthumbnailer { };