diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-02-09 12:00:15 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-03-01 16:05:00 +0000 |
commit | edd8f2840d85e35bbec905440b0b524d7e0d108e (patch) | |
tree | 14f453473b6c1cc0cfec1e1ff8a5b572e4c8de77 /src/core | |
parent | 5c42809274288811b386b3cb3cd08000777e37c8 (diff) |
Support cross-builds and alternative compilers with GN
Adds GN versions of the gyp_configure targets, to create custom
toolchains we can use to override compilers used by GN.
Change-Id: Ic3a9cb7e83f845180396faff632f72f9c24f3365
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/config/embedded_linux.pri | 5 | ||||
-rw-r--r-- | src/core/config/linux.pri | 79 | ||||
-rw-r--r-- | src/core/core_generator.pro | 2 |
3 files changed, 57 insertions, 29 deletions
diff --git a/src/core/config/embedded_linux.pri b/src/core/config/embedded_linux.pri index 853be7be9..89c9672e9 100644 --- a/src/core/config/embedded_linux.pri +++ b/src/core/config/embedded_linux.pri @@ -18,6 +18,11 @@ use?(gn) { use?(icecc) { gn_args += use_debug_fission=false } + + cross_compile:!host_build { + TOOLCHAIN_SYSROOT = $$[QT_SYSROOT] + !isEmpty(TOOLCHAIN_SYSROOT): gn_args += target_sysroot=\"$${TOOLCHAIN_SYSROOT}\" + } } GYP_CONFIG += \ diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri index 4854fae0d..7b8af34b0 100644 --- a/src/core/config/linux.pri +++ b/src/core/config/linux.pri @@ -22,36 +22,59 @@ use?(gn) { } gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): gn_args += no_delete_null_pointer_checks=true - - qtConfig(system-zlib): use?(system_minizip): gn_args += use_system_zlib=true use_system_minizip=true - qtConfig(system-png): gn_args += use_system_libpng=true - qtConfig(system-jpeg): gn_args += use_system_libjpeg=true - use?(system_harfbuzz): gn_args += use_system_harfbuzz=true - !use?(glib): gn_args += use_glib=false - qtConfig(pulseaudio) { - gn_args += use_pulseaudio=true - } else { - gn_args += use_pulseaudio=false - } - qtConfig(alsa) { - gn_args += use_alsa=true + host_build { + gn_args += custom_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:host\" + # Don't bother trying to use system libraries in this case + gn_args += use_glib=false + gn_args += use_system_libffi=false } else { - gn_args += use_alsa=false - } - packagesExist(libffi): gn_args += use_system_libffi=true - else: gn_args += use_system_libffi=false + gn_args += custom_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:target\" + cross_compile { + # FIXME: Try enabling snapshot again + gn_args += v8_use_snapshot=false + gn_args += host_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:host\" + gn_args += v8_snapshot_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:v8_snapshot\" + GN_HOST_CPU = $$gnArch($$QMAKE_HOST.arch) + GN_TARGET_CPU = $$gnArch($$QT_ARCH) + gn_args += host_cpu=\"$$GN_HOST_CPU\" target_cpu=\"$$GN_TARGET_CPU\" + } + !contains(QT_CONFIG, no-pkg-config) { + # Strip '>2 /dev/null' from $$pkgConfigExecutable() + PKGCONFIG = $$first($$list($$pkgConfigExecutable())) + gn_args += pkg_config=\"$$PKGCONFIG\" + } + + qtConfig(system-zlib): use?(system_minizip): gn_args += use_system_zlib=true use_system_minizip=true + qtConfig(system-png): gn_args += use_system_libpng=true + qtConfig(system-jpeg): gn_args += use_system_libjpeg=true + use?(system_harfbuzz): gn_args += use_system_harfbuzz=true + !use?(glib): gn_args += use_glib=false + qtConfig(pulseaudio) { + gn_args += use_pulseaudio=true + } else { + gn_args += use_pulseaudio=false + } + qtConfig(alsa) { + gn_args += use_alsa=true + } else { + gn_args += use_alsa=false + } + packagesExist(libffi): gn_args += use_system_libffi=true + else: gn_args += use_system_libffi=false + !packagesExist(libpci): gn_args += use_libpci=false - use?(system_libevent): gn_args += use_system_libevent=true - use?(system_libwebp): gn_args += use_system_libwebp=true - #use?(system_libsrtp): gn_args += use_system_libsrtp=true - use?(system_libxslt): gn_args += use_system_libxml=true use_system_libxslt=true - #use?(system_jsoncpp): gn_args += use_system_jsoncpp=true - #use?(system_opus): gn_args += use_system_opus=true - use?(system_snappy): gn_args += use_system_snappy=true - #use?(system_vpx): gn_args += use_system_libvpx=true - #use?(system_icu): gn_args += use_system_icu=true icu_use_data_file=false - #use?(system_ffmpeg): gn_args += use_system_ffmpeg=true - #use?(system_protobuf): gn_args += use_system_protobuf=true + use?(system_libevent): gn_args += use_system_libevent=true + use?(system_libwebp): gn_args += use_system_libwebp=true + #use?(system_libsrtp): gn_args += use_system_libsrtp=true + use?(system_libxslt): gn_args += use_system_libxml=true use_system_libxslt=true + #use?(system_jsoncpp): gn_args += use_system_jsoncpp=true + #use?(system_opus): gn_args += use_system_opus=true + use?(system_snappy): gn_args += use_system_snappy=true + #use?(system_vpx): gn_args += use_system_libvpx=true + #use?(system_icu): gn_args += use_system_icu=true icu_use_data_file=false + #use?(system_ffmpeg): gn_args += use_system_ffmpeg=true + #use?(system_protobuf): gn_args += use_system_protobuf=true + } } # linux_use_bundled_gold currently relies on a hardcoded relative path from chromium/src/out/(Release|Debug) diff --git a/src/core/core_generator.pro b/src/core/core_generator.pro index 9ea3f7246..c99e10ef8 100644 --- a/src/core/core_generator.pro +++ b/src/core/core_generator.pro @@ -40,7 +40,7 @@ RCC_DIR = $$OUT_PWD/$$getConfigDir()/.rcc # Assume that we want mobile touch and low-end hardware behaviors # whenever we are cross compiling. -cross_compile: DEFINES += QTWEBENGINE_EMBEDDED_SWITCHES +contains(WEBENGINE_CONFIG, embedded_build): DEFINES += QTWEBENGINE_EMBEDDED_SWITCHES qtConfig(egl): CONFIG += egl |