preparation for being able to build xquartz

This commit is contained in:
Jude Taylor 2015-09-17 14:42:54 -07:00
parent 1bc98b2e36
commit d78936131a
6 changed files with 61 additions and 44 deletions

View File

@ -2,6 +2,7 @@
, python, libxml2Python, file, expat, makedepend, xorg, llvm, libffi, libvdpau , python, libxml2Python, file, expat, makedepend, xorg, llvm, libffi, libvdpau
, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt , enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
, enableExtraFeatures ? false # not maintained , enableExtraFeatures ? false # not maintained
, darwin
}: }:
let let
@ -22,12 +23,20 @@ let
presentproto presentproto
libX11 libXext libxcb libXt libxshmfence libX11 libXext libxcb libXt libxshmfence
libffi libvdpau libffi libvdpau
] ++ stdenv.lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.OpenGL
darwin.apple_sdk.sdk
darwin.apple_sdk.libs.Xplugin
]; ];
postUnpack = '' postUnpack = ''
ln -s darwin $sourceRoot/configs/current ln -s darwin $sourceRoot/configs/current
''; '';
preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace bin/mklib --replace g++ clang++
'';
patches = [ patches = [
./patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch ./patches/0003-mesa-fix-per-level-max-texture-size-error-checking.patch
./patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch ./patches/0008-glsl-initialise-const-force-glsl-extension-warning-i.patch

View File

@ -120,7 +120,7 @@ in rec {
__propagatedImpureHostDeps = [ "/usr/lib/libXplugin.1.dylib" ]; __propagatedImpureHostDeps = [ "/usr/lib/libXplugin.1.dylib" ];
propagatedBuildInputs = with frameworks; [ propagatedBuildInputs = with frameworks; [
OpenGL ApplicationServices Carbon IOKit CoreFoundation CoreGraphics CoreServices CoreText OpenGL ApplicationServices Carbon IOKit CF CoreGraphics CoreServices CoreText
]; ];
installPhase = '' installPhase = ''
@ -144,9 +144,7 @@ in rec {
}; };
}; };
frameworks = (stdenv.lib.mapAttrs framework (import ./frameworks.nix { inherit frameworks libs; })) // { frameworks = stdenv.lib.mapAttrs framework (import ./frameworks.nix { inherit frameworks libs CF; });
CoreFoundation = CF;
};
inherit sdk; inherit sdk;
} }

View File

@ -2,76 +2,76 @@
# Epic weird knot-tying happening here. # Epic weird knot-tying happening here.
# TODO: clean up the process for generating this and include it # TODO: clean up the process for generating this and include it
{ frameworks, libs }: { frameworks, libs, CF }:
with frameworks; with libs; { with frameworks; with libs; {
AGL = [ Carbon OpenGL ]; AGL = [ Carbon OpenGL ];
AVFoundation = [ ApplicationServices CoreGraphics ]; AVFoundation = [ ApplicationServices CoreGraphics ];
AVKit = []; AVKit = [];
Accounts = []; Accounts = [];
AddressBook = [ Carbon CoreFoundation ]; AddressBook = [ Carbon CF ];
AppKit = [ AudioToolbox QuartzCore ]; AppKit = [ AudioToolbox QuartzCore ];
AppKitScripting = []; AppKitScripting = [];
AppleScriptKit = []; AppleScriptKit = [];
AppleScriptObjC = []; AppleScriptObjC = [];
AppleShareClientCore = [ CoreServices ]; AppleShareClientCore = [ CoreServices ];
AudioToolbox = [ AudioUnit CoreAudio CoreFoundation CoreMIDI ]; AudioToolbox = [ AudioUnit CoreAudio CF CoreMIDI ];
AudioUnit = [ Carbon CoreAudio CoreFoundation ]; AudioUnit = [ Carbon CoreAudio CF ];
AudioVideoBridging = [ Foundation ]; AudioVideoBridging = [ Foundation ];
Automator = []; Automator = [];
CFNetwork = [ CoreFoundation ]; CFNetwork = [ CF ];
CalendarStore = []; CalendarStore = [];
Cocoa = []; Cocoa = [];
Collaboration = []; Collaboration = [];
CoreAudio = [ CoreFoundation IOKit ]; CoreAudio = [ CF IOKit ];
CoreAudioKit = [ AudioUnit ]; CoreAudioKit = [ AudioUnit ];
CoreData = []; CoreData = [];
CoreGraphics = [ Accelerate CoreFoundation IOKit IOSurface SystemConfiguration ]; CoreGraphics = [ Accelerate CF IOKit IOSurface SystemConfiguration ];
CoreLocation = []; CoreLocation = [];
CoreMIDI = [ CoreFoundation ]; CoreMIDI = [ CF ];
CoreMIDIServer = []; CoreMIDIServer = [];
CoreMedia = [ ApplicationServices AudioToolbox CoreAudio CoreFoundation CoreGraphics CoreVideo ]; CoreMedia = [ ApplicationServices AudioToolbox CoreAudio CF CoreGraphics CoreVideo ];
CoreMediaIO = [ CoreFoundation CoreMedia ]; CoreMediaIO = [ CF CoreMedia ];
CoreText = [ CoreFoundation CoreGraphics ]; CoreText = [ CF CoreGraphics ];
CoreVideo = [ ApplicationServices CoreFoundation CoreGraphics IOSurface OpenGL ]; CoreVideo = [ ApplicationServices CF CoreGraphics IOSurface OpenGL ];
CoreWLAN = [ SecurityFoundation ]; CoreWLAN = [ SecurityFoundation ];
DVComponentGlue = [ CoreServices QuickTime ]; DVComponentGlue = [ CoreServices QuickTime ];
DVDPlayback = []; DVDPlayback = [];
DirectoryService = [ CoreFoundation ]; DirectoryService = [ CF ];
DiscRecording = [ CoreFoundation CoreServices IOKit ]; DiscRecording = [ CF CoreServices IOKit ];
DiscRecordingUI = []; DiscRecordingUI = [];
DiskArbitration = [ CoreFoundation IOKit ]; DiskArbitration = [ CF IOKit ];
DrawSprocket = [ Carbon ]; DrawSprocket = [ Carbon ];
EventKit = []; EventKit = [];
ExceptionHandling = []; ExceptionHandling = [];
FWAUserLib = []; FWAUserLib = [];
ForceFeedback = [ CoreFoundation IOKit ]; ForceFeedback = [ CF IOKit ];
Foundation = [ CoreFoundation Security ApplicationServices AppKit SystemConfiguration ]; Foundation = [ CF Security ApplicationServices AppKit SystemConfiguration ];
GLKit = [ CoreFoundation ]; GLKit = [ CF ];
GLUT = [ GL OpenGL ]; GLUT = [ GL OpenGL ];
GSS = []; GSS = [];
GameController = []; GameController = [];
GameKit = [ Foundation ]; GameKit = [ Foundation ];
ICADevices = [ Carbon CoreFoundation IOBluetooth ]; ICADevices = [ Carbon CF IOBluetooth ];
IMServicePlugIn = []; IMServicePlugIn = [];
IOBluetoothUI = [ IOBluetooth ]; IOBluetoothUI = [ IOBluetooth ];
IOKit = [ CoreFoundation ]; IOKit = [ CF ];
IOSurface = [ CoreFoundation IOKit xpc ]; IOSurface = [ CF IOKit xpc ];
ImageCaptureCore = []; ImageCaptureCore = [];
ImageIO = [ CoreFoundation CoreGraphics ]; ImageIO = [ CF CoreGraphics ];
InputMethodKit = [ Carbon ]; InputMethodKit = [ Carbon ];
InstallerPlugins = []; InstallerPlugins = [];
InstantMessage = []; InstantMessage = [];
JavaFrameEmbedding = []; JavaFrameEmbedding = [];
JavaScriptCore = [ CoreFoundation ]; JavaScriptCore = [ CF ];
Kerberos = []; Kerberos = [];
Kernel = [ CoreFoundation IOKit ]; Kernel = [ CF IOKit ];
LDAP = []; LDAP = [];
LatentSemanticMapping = [ Carbon CoreFoundation ]; LatentSemanticMapping = [ Carbon CF ];
MapKit = []; MapKit = [];
MediaAccessibility = [ CoreFoundation CoreGraphics CoreText QuartzCore ]; MediaAccessibility = [ CF CoreGraphics CoreText QuartzCore ];
MediaToolbox = [ AudioToolbox CoreFoundation CoreMedia ]; MediaToolbox = [ AudioToolbox CF CoreMedia ];
NetFS = [ CoreFoundation ]; NetFS = [ CF ];
OSAKit = [ Carbon ]; OSAKit = [ Carbon ];
OpenAL = []; OpenAL = [];
OpenCL = [ IOSurface OpenGL ]; OpenCL = [ IOSurface OpenGL ];
@ -81,7 +81,7 @@ with frameworks; with libs; {
PubSub = []; PubSub = [];
Python = [ ApplicationServices ]; Python = [ ApplicationServices ];
QTKit = [ QuickTime ]; QTKit = [ QuickTime ];
QuickLook = [ ApplicationServices CoreFoundation ]; QuickLook = [ ApplicationServices CF ];
QuickTime = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ]; QuickTime = [ ApplicationServices AudioUnit Carbon CoreAudio CoreServices OpenGL QuartzCore ];
Ruby = []; Ruby = [];
RubyCocoa = []; RubyCocoa = [];
@ -89,31 +89,31 @@ with frameworks; with libs; {
ScreenSaver = []; ScreenSaver = [];
Scripting = []; Scripting = [];
ScriptingBridge = []; ScriptingBridge = [];
Security = [ CoreFoundation IOKit ]; Security = [ CF IOKit ];
SecurityFoundation = []; SecurityFoundation = [];
SecurityInterface = [ Security ]; SecurityInterface = [ Security ];
ServiceManagement = [ CoreFoundation Security ]; ServiceManagement = [ CF Security ];
Social = []; Social = [];
SpriteKit = []; SpriteKit = [];
StoreKit = []; StoreKit = [];
SyncServices = []; SyncServices = [];
SystemConfiguration = [ CoreFoundation Security ]; SystemConfiguration = [ CF Security ];
TWAIN = [ Carbon ]; TWAIN = [ Carbon ];
Tcl = []; Tcl = [];
Tk = [ ApplicationServices Carbon X11 ]; Tk = [ ApplicationServices Carbon X11 ];
VideoDecodeAcceleration = [ CoreFoundation CoreVideo ]; VideoDecodeAcceleration = [ CF CoreVideo ];
VideoToolbox = [ CoreFoundation CoreMedia CoreVideo ]; VideoToolbox = [ CF CoreMedia CoreVideo ];
WebKit = [ ApplicationServices Carbon JavaScriptCore OpenGL X11 ]; WebKit = [ ApplicationServices Carbon JavaScriptCore OpenGL X11 ];
# Umbrellas # Umbrellas
Accelerate = [ CoreWLAN IOBluetooth ]; Accelerate = [ CoreWLAN IOBluetooth ];
ApplicationServices = [ CoreFoundation CoreServices CoreText ImageIO ]; ApplicationServices = [ CF CoreServices CoreText ImageIO ];
Carbon = [ ApplicationServices CoreFoundation CoreServices IOKit Security QuartzCore ]; Carbon = [ ApplicationServices CF CoreServices IOKit Security QuartzCore ];
CoreBluetooth = []; CoreBluetooth = [];
CoreServices = [ CFNetwork CoreAudio CoreData CoreFoundation DiskArbitration Security NetFS OpenDirectory ServiceManagement ]; CoreServices = [ CFNetwork CoreAudio CoreData CF DiskArbitration Security NetFS OpenDirectory ServiceManagement ];
IOBluetooth = [ IOKit ]; IOBluetooth = [ IOKit ];
JavaVM = []; JavaVM = [];
OpenDirectory = []; OpenDirectory = [];
Quartz = [ QuickLook ]; Quartz = [ QuickLook ];
QuartzCore = [ ApplicationServices CoreFoundation CoreVideo OpenCL ]; QuartzCore = [ ApplicationServices CF CoreVideo OpenCL ];
} }

View File

@ -47,8 +47,9 @@ appleDerivation {
''; '';
postInstall = '' postInstall = ''
# gross! convince apple to release this as part of CF # gross! convince apple to release these as part of CF
cp /System/Library/Frameworks/CoreFoundation.framework/Headers/CFAttributedString.h "$out/System/Library/Frameworks/CoreFoundation.framework/Headers" cp /System/Library/Frameworks/CoreFoundation.framework/Headers/{CFAttributedString,CFNotificationCenter}.h \
"$out/System/Library/Frameworks/CoreFoundation.framework/Headers"
mv $out/System/* $out mv $out/System/* $out
rmdir $out/System rmdir $out/System

View File

@ -93,6 +93,10 @@ in
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];
}; };
libAppleWM = attrs: attrs // {
propagatedBuildInputs = [ args.apple_sdk.frameworks.ApplicationServices ];
};
libXfont = attrs: attrs // { libXfont = attrs: attrs // {
propagatedBuildInputs = [ args.freetype ]; # propagate link reqs. like bzip2 propagatedBuildInputs = [ args.freetype ]; # propagate link reqs. like bzip2
# prevents "misaligned_stack_error_entering_dyld_stub_binder" # prevents "misaligned_stack_error_entering_dyld_stub_binder"

View File

@ -9225,6 +9225,11 @@ let
quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; }; quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; };
xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix { xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix {
inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig
libxslt expat libpng zlib perl mesa_drivers spice_protocol
dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook
autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman;
inherit (darwin) apple_sdk;
bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null; bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null;
mesa = mesa_noglu; mesa = mesa_noglu;
udev = if stdenv.isLinux then udev else null; udev = if stdenv.isLinux then udev else null;