diff options
Diffstat (limited to 'src/core/config/linux.pri')
-rw-r--r-- | src/core/config/linux.pri | 189 |
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 |