diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-02-07 15:19:21 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-02-07 23:35:47 +0000 |
commit | e5013c05a2f845255debf94318ab38ecef1c186b (patch) | |
tree | bec11a0bd31d3432a16899e5539f1098f1c168a4 /nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix | |
parent | 4fc07c92ec07cafcf6d56143ea7334693143ef88 (diff) | |
parent | 2d2f10475138b7206572dc3ec288184df2be022e (diff) | |
download | nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar.gz nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar.bz2 nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar.lz nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar.xz nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.tar.zst nixlib-e5013c05a2f845255debf94318ab38ecef1c186b.zip |
Merge commit '2d2f10475138b7206572dc3ec288184df2be022e'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix | 87 |
1 files changed, 71 insertions, 16 deletions
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index ad54a49e50b7..ddb828323371 100644 --- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -12,9 +12,10 @@ , pciutils , systemd , enableProprietaryCodecs ? true -, gn, darwin, openbsm +, gn +, cups, darwin, openbsm, runCommand, xcbuild , ffmpeg ? null -, lib, stdenv # lib.optional, needsPax +, lib, stdenv }: with stdenv.lib; @@ -26,7 +27,7 @@ qtModule { qtInputs = [ qtdeclarative qtquickcontrols qtlocation qtwebchannel ]; nativeBuildInputs = [ bison coreutils flex git gperf ninja pkgconfig python2 which gn - ]; + ] ++ optional stdenv.isDarwin xcbuild; doCheck = true; outputs = [ "bin" "dev" "out" ]; @@ -42,9 +43,8 @@ qtModule { ( cd src/3rdparty/chromium; patchShebangs . ) '' # Patch Chromium build files - + '' - substituteInPlace ./src/3rdparty/chromium/build/common.gypi \ - --replace /bin/echo ${coreutils}/bin/echo + + optionalString (lib.versionOlder qtCompatVersion "5.12") '' + substituteInPlace ./src/3rdparty/chromium/build/common.gypi --replace /bin/echo ${coreutils}/bin/echo substituteInPlace ./src/3rdparty/chromium/v8/${if qt56 then "build" else "gypfiles"}/toolchain.gypi \ --replace /bin/echo ${coreutils}/bin/echo substituteInPlace ./src/3rdparty/chromium/v8/${if qt56 then "build" else "gypfiles"}/standalone.gypi \ @@ -66,33 +66,46 @@ qtModule { sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc '' - + optionalString stdenv.isDarwin '' + + optionalString stdenv.isDarwin ('' # Remove annoying xcode check substituteInPlace mkspecs/features/platform.prf \ - --replace "lessThan(QMAKE_XCODE_VERSION, 7.3)" false + --replace "lessThan(QMAKE_XCODE_VERSION, 7.3)" false \ + --replace "/usr/bin/xcodebuild" "xcodebuild" + + substituteInPlace src/3rdparty/chromium/build/mac_toolchain.py \ + --replace "/usr/bin/xcode-select" "xcode-select" + substituteInPlace src/core/config/mac_osx.pri \ --replace /usr ${stdenv.cc} \ --replace "isEmpty(QMAKE_MAC_SDK_VERSION)" false - # FIXME Needed with old Apple SDKs - # Abandon all hope ye who try to make sense of this. + '' + # TODO remove when new Apple SDK is in + + (if lib.versionOlder qtCompatVersion "5.11" then '' substituteInPlace src/3rdparty/chromium/base/mac/foundation_util.mm \ --replace "NSArray<NSString*>*" "NSArray*" substituteInPlace src/3rdparty/chromium/base/mac/sdk_forward_declarations.h \ --replace "NSDictionary<VNImageOption, id>*" "NSDictionary*" \ --replace "NSArray<VNRequest*>*" "NSArray*" \ --replace "typedef NSString* VNImageOption NS_STRING_ENUM" "typedef NSString* VNImageOption" + '' else '' + substituteInPlace src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Classes/Common/RTCFieldTrials.mm \ + --replace "NSDictionary<NSString *, NSString *> *" "NSDictionary*" + substituteInPlace src/3rdparty/chromium/third_party/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFieldTrials.h \ + --replace "NSDictionary<NSString *, NSString *> *" "NSDictionary*" + '') + + '' cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py #!/usr/bin/env python +print("${darwin.apple_sdk.sdk}") print("10.10.0") -print("") EOF cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py #!/usr/bin/env python -print('xcode_version="9.1"') -print('xcode_version_int=9') +print('xcode_version="0910"') +print('xcode_version_int=910') print('xcode_build="9B55"') print('machine_os_build="17E199"') print('sdk_path=""') @@ -101,12 +114,32 @@ print('sdk_platform_path=""') print('sdk_build="17B41"') EOF + substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ + --replace '$sysroot/usr' "${darwin.xnu}" + # Apple has some secret stuff they don't share with OpenBSM substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \ --replace "audit_token_to_pid(msg.trailer.msgh_audit)" "msg.trailer.msgh_audit.val[5]" - ''; - NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10"; + substituteInPlace src/3rdparty/chromium/sandbox/mac/BUILD.gn \ + --replace 'libs = [ "sandbox" ]' 'libs = [ "/usr/lib/libsandbox.1.dylib" ]' + ''); + + NIX_CFLAGS_COMPILE = + lib.optionalString stdenv.isDarwin [ + "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10" + "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10" + + # + # Prevent errors like + # /nix/store/xxx-apple-framework-CoreData/Library/Frameworks/CoreData.framework/Headers/NSEntityDescription.h:51:7: + # error: pointer to non-const type 'id' with no explicit ownership + # id** _kvcPropertyAccessors; + # + # TODO remove when new Apple SDK is in + # + "-fno-objc-arc" + ]; preConfigure = '' export NINJAFLAGS=-j$NIX_BUILD_CORES @@ -161,7 +194,10 @@ EOF # frameworks ApplicationServices + AVFoundation Foundation + ForceFeedback + GameController AppKit ImageCaptureCore CoreBluetooth @@ -174,15 +210,34 @@ EOF libunwind ]); + buildInputs = optionals stdenv.isDarwin (with darwin; [ + cups + + # For sandbox.h include + (runCommand "MacOS_SDK_sandbox.h" {} '' + install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h + '') + + # For: + # _NSDefaultRunLoopMode + # _OBJC_CLASS_$_NSDate + # _OBJC_CLASS_$_NSDictionary + # _OBJC_CLASS_$_NSRunLoop + # _OBJC_CLASS_$_NSURL + darwin.cf-private + ]); + + __impureHostDeps = optional stdenv.isDarwin "/usr/lib/libsandbox.1.dylib"; + dontUseNinjaBuild = true; dontUseNinjaInstall = true; + dontUseXcbuild = true; postInstall = lib.optionalString stdenv.isLinux '' cat > $out/libexec/qt.conf <<EOF [Paths] Prefix = .. EOF - paxmark m $out/libexec/QtWebEngineProcess ''; meta = with lib; { |