wxmac: fix build

This commit is contained in:
Jude Taylor 2015-10-28 17:15:05 -07:00
parent b5c14e4e8e
commit 74416dc40a
7 changed files with 31 additions and 109 deletions

View file

@ -1,9 +1,16 @@
{ stdenv, fetchurl, setfile, rez, derez,
{ stdenv, fetchurl, writeScriptBin,
expat, libiconv, libjpeg, libpng, libtiff, zlib
, AGL, Cocoa, Kernel, QuickTime
}:
with stdenv.lib;
let fake = name: writeScriptBin name ''
#!${stdenv.shell}
echo >&2 "Faking call to ${name} with arguments:"
echo >&2 "$@"
''; in
stdenv.mkDerivation rec {
version = "3.0.2";
name = "wxmac-${version}";
@ -15,9 +22,19 @@ stdenv.mkDerivation rec {
patches = [ ./wx.patch ];
buildInputs = [ setfile rez derez expat libiconv libjpeg libpng libtiff zlib ];
buildInputs = [
expat libiconv libjpeg libpng libtiff zlib
AGL Cocoa Kernel QuickTime
(fake "Rez") (fake "Setfile") (fake "DeRez") # not open source
];
postPatch = ''
substituteInPlace configure --replace "-framework System" -lSystem
'';
configureFlags = [
"wx_cv_std_libfullpath=/var/empty"
"--with-macosx-version-min=10.7"
"--enable-unicode"
"--with-osx_cocoa"
"--enable-std_string"
@ -44,6 +61,8 @@ stdenv.mkDerivation rec {
./wx-config --libs
'';
NIX_CFLAGS_COMPILE = "-Wno-undef";
doCheck = true;
enableParallelBuilding = true;

View file

@ -108,7 +108,7 @@ with frameworks; with libs; {
# Umbrellas
Accelerate = [ CoreWLAN IOBluetooth ];
ApplicationServices = [ CF CoreServices CoreText ImageIO ];
Carbon = [ ApplicationServices CF CoreServices IOKit Security QuartzCore ];
Carbon = [ ApplicationServices CF CoreServices Foundation IOKit Security QuartzCore ];
CoreBluetooth = [];
CoreServices = [ CFNetwork CoreAudio CoreData CF DiskArbitration Security NetFS OpenDirectory ServiceManagement ];
IOBluetooth = [ IOKit ];

View file

@ -7,6 +7,9 @@ rec {
ForceFeedback = [
"/System/Library/Frameworks/ForceFeedback.framework"
];
AGL = [
"/System/Library/Frameworks/AGL.framework"
];
IOKit = [
"/System/Library/Frameworks/IOKit.framework"
];
@ -16,6 +19,9 @@ rec {
QuickLook = [
"/System/Library/Frameworks/QuickLook.framework"
];
Kernel = [
"/System/Library/Frameworks/Kernel.framework"
];
Quartz = [
"/System/Library/Frameworks/Quartz.framework"
"/System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo"

View file

@ -1,34 +0,0 @@
{ stdenv }:
# this tool only exists on darwin
assert stdenv.isDarwin;
stdenv.mkDerivation {
name = "derez";
src = "/usr/bin/DeRez";
unpackPhase = "true";
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out/bin"
ln -s $src "$out/bin"
'';
meta = with stdenv.lib; {
description = "Decompiles resources";
homepage = "https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/DeRez.1.html";
maintainers = [ maintainers.lnl7 ];
platforms = platforms.darwin;
longDescription = ''
The DeRez tool decompiles the resource fork of resourceFile according to the type declarations
supplied by the type declaration files. The resource description produced by this decompilation
contains the resource definitions (resource and data statements) associated with these type
declarations. If for some reason it cannot reproduce the appropriate resource statements, DeRez
generates hexadecimal data statements instead.
'';
};
}

View file

@ -1,33 +0,0 @@
{ stdenv }:
# this tool only exists on darwin
assert stdenv.isDarwin;
stdenv.mkDerivation {
name = "rez";
src = "/usr/bin/Rez";
unpackPhase = "true";
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out/bin"
ln -s $src "$out/bin"
'';
meta = with stdenv.lib; {
description = "Compiles resources";
homepage = "https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/Rez.1.html";
maintainers = [ maintainers.lnl7 ];
platforms = platforms.darwin;
longDescription = ''
The Rez tool compiles the resource fork of a file according to the textual description contained in
the resource description files. These resource description files must contain both the type
declarations and the resource definitions needed to compile the resources. This data can come
directly from the resource description files.
'';
};
}

View file

@ -1,33 +0,0 @@
{ stdenv }:
# this tool only exists on darwin
assert stdenv.isDarwin;
stdenv.mkDerivation {
name = "setfile";
src = "/usr/bin/SetFile";
unpackPhase = "true";
configurePhase = "true";
buildPhase = "true";
installPhase = ''
mkdir -p "$out/bin"
ln -s $src "$out/bin"
'';
meta = with stdenv.lib; {
description = "Set attributes of files and directories";
homepage = "http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/setfile.1.html";
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.darwin;
longDescription = ''
SetFile is a tool to set the file attributes on files in an HFS+
directory. It attempts to be similar to the setfile command in MPW. It can
apply rules to more than one file with the options apply- ing to all files
listed.
'';
};
}

View file

@ -614,13 +614,8 @@ let
oracle-instantclient = callPackage ../development/libraries/oracle-instantclient { };
derez = callPackage ../os-specific/darwin/derez { };
rez = callPackage ../os-specific/darwin/rez { };
reattach-to-user-namespace = callPackage ../os-specific/darwin/reattach-to-user-namespace {};
setfile = callPackage ../os-specific/darwin/setfile { };
install_name_tool = callPackage ../os-specific/darwin/install_name_tool { };
xcodeenv = callPackage ../development/mobile/xcodeenv { };
@ -8534,7 +8529,9 @@ let
withMesa = lib.elem system lib.platforms.mesaPlatforms;
};
wxmac = callPackage ../development/libraries/wxmac { };
wxmac = callPackage ../development/libraries/wxmac {
inherit (darwin.apple_sdk.frameworks) AGL Cocoa Kernel QuickTime;
};
wtk = callPackage ../development/libraries/wtk { };