summaryrefslogtreecommitdiffstats
path: root/src/core/config/linux.pri
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/config/linux.pri')
-rw-r--r--src/core/config/linux.pri189
1 files changed, 136 insertions, 53 deletions
diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri
index b91e795ca..84ce73bfa 100644
--- a/src/core/config/linux.pri
+++ b/src/core/config/linux.pri
@@ -2,66 +2,149 @@ include(common.pri)
include($$QTWEBENGINE_OUT_ROOT/qtwebengine-config.pri)
QT_FOR_CONFIG += gui-private webengine-private
-# linux_use_bundled_gold currently relies on a hardcoded relative path from chromium/src/out/(Release|Debug)
-# Disable it along with the -Wl,--threads flag just in case gold isn't installed on the system.
-GYP_CONFIG += \
- linux_use_bundled_gold=0 \
- linux_use_bundled_binutils=0 \
- linux_use_gold_flags=0 \
-
-GYP_CONFIG += \
- toolkit_uses_gtk=0 \
- use_ash=0 \
- use_aura=1 \
- use_cairo=0 \
- use_clipboard_aurax11=0 \
- use_cups=0 \
- use_gconf=0 \
- use_gio=0 \
- use_gnome_keyring=0 \
- use_kerberos=0 \
- use_pango=0 \
- use_openssl=1 \
- use_allocator=none \
- use_experimental_allocator_shim=0
+gn_args += \
+ use_cups=false \
+ use_gconf=false \
+ use_gio=false \
+ use_gnome_keyring=false \
+ use_kerberos=false \
+ linux_use_bundled_binutils=false
use?(nss) {
- GYP_CONFIG += \
- use_nss_certs=1 \
- use_nss_verifier=1 \
- use_openssl_certs=0
+ gn_args += \
+ use_nss_certs=true \
+ use_openssl_certs=false
} else {
- GYP_CONFIG += \
- use_nss_certs=0 \
- use_nss_verifier=0 \
- use_openssl_certs=1
+ gn_args += \
+ use_nss_certs=false \
+ use_openssl_certs=true
}
+gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): gn_args += no_delete_null_pointer_checks=true
-gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): GYP_CONFIG += no_delete_null_pointer_checks=1
+clang {
+ clang_full_path = $$which($${QMAKE_CXX})
+ # Remove the "/bin/clang++" part.
+ clang_prefix = $$section(clang_full_path, /, 0, -3)
+ gn_args += \
+ is_clang=true \
+ clang_use_chrome_plugins=false \
+ clang_base_path=\"$${clang_prefix}\"
-qtConfig(system-zlib): use?(system_minizip): GYP_CONFIG += use_system_zlib=1
-qtConfig(system-png): GYP_CONFIG += use_system_libpng=1
-qtConfig(system-jpeg): GYP_CONFIG += use_system_libjpeg=1
-qtConfig(system-harfbuzz): use?(system_harfbuzz): GYP_CONFIG += use_system_harfbuzz=1
-!qtConfig(glib): GYP_CONFIG += use_glib=0
-qtConfig(pulseaudio) {
- GYP_CONFIG += use_pulseaudio=1
+ linux-clang-libc++: gn_args += use_libcxx=true
} else {
- GYP_CONFIG += use_pulseaudio=0
+ gn_args += \
+ is_clang=false
}
-qtConfig(alsa) {
- GYP_CONFIG += use_alsa=1
+
+cross_compile:!host_build {
+ TOOLCHAIN_SYSROOT = $$[QT_SYSROOT]
+ !isEmpty(TOOLCHAIN_SYSROOT): gn_args += target_sysroot=\"$${TOOLCHAIN_SYSROOT}\"
+}
+
+contains(QT_ARCH, "arm") {
+ # Extract ARM specific compiler options that we have to pass to gn,
+ # but let gn figure out a default if an option is not present.
+ MTUNE = $$extractCFlag("-mtune=.*")
+ !isEmpty(MTUNE): gn_args += arm_tune=\"$$MTUNE\"
+
+ MFLOAT = $$extractCFlag("-mfloat-abi=.*")
+ !isEmpty(MFLOAT): gn_args += arm_float_abi=\"$$MFLOAT\"
+
+ MARCH = $$extractCFlag("-march=.*")
+
+ MARMV = $$replace(MARCH, "armv",)
+ !isEmpty(MARMV) {
+ MARMV = $$split(MARMV,)
+ MARMV = $$member(MARMV, 0)
+ lessThan(MARMV, 6): error("$$MARCH architecture is not supported")
+ gn_args += arm_version=$$MARMV
+ }
+
+ !lessThan(MARMV, 8) {
+ gn_args += arm_use_neon=true
+ } else {
+ MFPU = $$extractCFlag("-mfpu=.*")
+ !isEmpty(MFPU):contains(MFPU, ".*neon.*") {
+ gn_args += arm_use_neon=true
+ } else {
+ gn_args += arm_use_neon=false
+ # If the toolchain does not explicitly specify to use NEON instructions
+ # we use arm_neon_optional for ARMv7
+ equals(MARMV, 7): gn_args += arm_optionally_use_neon=true
+ }
+ }
+
+ if(isEmpty(MARMV)|lessThan(MARMV, 7)):contains(QMAKE_CFLAGS, "-marm"): gn_args += arm_use_thumb=false
+ else: contains(QMAKE_CFLAGS, "-mthumb"): gn_args += arm_use_thumb=true
+}
+
+contains(QT_ARCH, "mips") {
+ MARCH = $$extractCFlag("-march=.*")
+ !isEmpty(MARCH) {
+ equals(MARCH, "mips32r6"): gn_args += mips_arch_variant=\"r6\"
+ else: equals(MARCH, "mips32r2"): gn_args += mips_arch_variant=\"r2\"
+ else: equals(MARCH, "mips32"): gn_args += mips_arch_variant=\"r1\"
+ } else {
+ contains(QMAKE_CFLAGS, "mips32r6"): gn_args += mips_arch_variant=\"r6\"
+ else: contains(QMAKE_CFLAGS, "mips32r2"): gn_args += mips_arch_variant=\"r2\"
+ else: contains(QMAKE_CFLAGS, "mips32"): gn_args += mips_arch_variant=\"r1\"
+ }
+
+ contains(QMAKE_CFLAGS, "-mmsa"): gn_args += mips_use_msa=true
+
+ contains(QMAKE_CFLAGS, "-mdsp2"): gn_args += mips_dsp_rev=2
+ else: contains(QMAKE_CFLAGS, "-mdsp"): gn_args += mips_dsp_rev=1
+}
+
+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 {
- GYP_CONFIG += use_alsa=0
+ gn_args += custom_toolchain=\"$$QTWEBENGINE_OUT_ROOT/src/toolchain:target\"
+ cross_compile {
+ 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
+ !packagesExist(xscrnsaver): gn_args += use_xscrnsaver=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): GYP_CONFIG += use_system_libevent=1
-use?(system_libwebp): GYP_CONFIG += use_system_libwebp=1
-use?(system_libsrtp): GYP_CONFIG += use_system_libsrtp=1
-use?(system_libxslt): GYP_CONFIG += use_system_libxml=1
-use?(system_jsoncpp): GYP_CONFIG += use_system_jsoncpp=1
-use?(system_opus): GYP_CONFIG += use_system_opus=1
-use?(system_snappy): GYP_CONFIG += use_system_snappy=1
-use?(system_vpx): GYP_CONFIG += use_system_libvpx=1
-use?(system_icu): GYP_CONFIG += use_system_icu=1 icu_use_data_file_flag=0
-use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1
-use?(system_protobuf): GYP_CONFIG += use_system_protobuf=1