diff options
author | Ruben Maher <ruben@maher.fyi> | 2020-08-19 21:55:11 +0900 |
---|---|---|
committer | Ruben Maher <ruben@maher.fyi> | 2020-08-19 21:57:45 +0900 |
commit | 68bf9101d7764297466041c67f72b2db4b998c26 (patch) | |
tree | e685b5ae98ecf8c31f928443ef939054c5d699b1 /pkgs/development/libraries/qt-5/modules | |
parent | 423361a6643d780175138bab3d0a57b284bbe267 (diff) |
qtwebengine: fix build for darwin
Diffstat (limited to 'pkgs/development/libraries/qt-5/modules')
-rw-r--r-- | pkgs/development/libraries/qt-5/modules/qtwebengine.nix | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix index 512060701e2dd..c0db5915b947d 100644 --- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix +++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix @@ -13,7 +13,7 @@ , systemd , enableProprietaryCodecs ? true , gn -, cups, darwin, openbsm, runCommand, xcbuild +, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin , ffmpeg_3 ? null , lib, stdenv }: @@ -51,6 +51,13 @@ qtModule { substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/standalone.gypi \ --replace /bin/echo ${coreutils}/bin/echo '' + # Prevent Chromium build script from making the path to `clang` relative to + # the build directory. `clang_base_path` is the value of `QMAKE_CLANG_DIR` + # from `src/core/config/mac_osx.pri`. + + optionalString stdenv.isDarwin '' + substituteInPlace ./src/3rdparty/chromium/build/toolchain/mac/BUILD.gn \ + --replace 'prefix = rebase_path("$clang_base_path/bin/", root_build_dir)' 'prefix = "$clang_base_path/bin/"' + '' # Patch library paths in Qt sources + '' sed -i \ @@ -69,32 +76,15 @@ qtModule { '' + optionalString stdenv.isDarwin ('' substituteInPlace src/core/config/mac_osx.pri \ - --replace /usr ${stdenv.cc} + --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"' '' + # Following is required to prevent a build error: + # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") '' substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \ --replace '$sysroot/usr' "${darwin.xnu}" '') + '' - - cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py -#!/usr/bin/env python -print("${darwin.apple_sdk.sdk}") -print("10.12.0") -EOF - - cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py -#!/usr/bin/env python -print('xcode_version="0910"') -print('xcode_version_int=910') -print('xcode_build="9B55"') -print('machine_os_build="17E199"') -print('sdk_path=""') -print('sdk_version="10.10"') -print('sdk_platform_path=""') -print('sdk_build="17B41"') -EOF - # 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]" @@ -111,8 +101,8 @@ EOF # TODO: investigate and fix properly "-march=westmere" ] ++ lib.optionals 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" + "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12" + "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12" # # Prevent errors like @@ -189,6 +179,7 @@ EOF CoreWLAN Quartz Cocoa + LocalAuthentication openbsm libunwind @@ -197,6 +188,21 @@ EOF buildInputs = optionals stdenv.isDarwin (with darwin; [ cups + # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py` + # to get some information about the host platform. + (writeScriptBin "sw_vers" '' + #!${stdenv.shell} + + while [ $# -gt 0 ]; do + case "$1" in + -buildVersion) echo "17E199";; + *) break ;; + + esac + shift + done + '') + # For sandbox.h include (runCommand "MacOS_SDK_sandbox.h" {} '' install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h |