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
*/
, Cocoa, CoreServices
, Cocoa, CoreServices, AVFoundation, MediaToolbox, VideoDecodeAcceleration, CF
}:
/* Maintainer notes:
@ -177,7 +177,7 @@
let
inherit (stdenv) isCygwin isFreeBSD isLinux;
inherit (stdenv.lib) optional optionals enableFeature;
inherit (stdenv.lib) optional optionals optionalString enableFeature;
in
/*
@ -410,11 +410,25 @@ stdenv.mkDerivation rec {
++ optionals nonfreeLicensing [ faac fdk_aac openssl ]
++ optional ((isLinux || isFreeBSD) && libva != null) libva
++ optionals isLinux [ alsaLib libraw1394 libv4l ]
++ optionals stdenv.isDarwin [ Cocoa CoreServices ];
++ optionals stdenv.isDarwin [ Cocoa CoreServices AVFoundation MediaToolbox
VideoDecodeAcceleration ];
# Build qt-faststart executable
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;

View file

@ -66,7 +66,18 @@ let
mkdir -p "$dest"
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/Resources"
@ -74,8 +85,17 @@ let
ln -s "/System/Library/Frameworks/$path/module.map"
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)
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
for child in $children; do

View file

@ -1,5 +1,5 @@
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() {

View file

@ -6717,7 +6717,9 @@ in
vid-stab = if stdenv.isDarwin then null else vid-stab;
x265 = if stdenv.isDarwin then null else x265;
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 { };