diff options
Diffstat (limited to 'src/buildtools/config')
-rw-r--r-- | src/buildtools/config/common.pri | 15 | ||||
-rw-r--r-- | src/buildtools/config/linux.pri | 2 | ||||
-rw-r--r-- | src/buildtools/config/lipo.pri | 85 | ||||
-rw-r--r-- | src/buildtools/config/lipo_linking.pri | 15 | ||||
-rw-r--r-- | src/buildtools/config/mac_osx.pri | 6 | ||||
-rw-r--r-- | src/buildtools/config/support.pri | 20 | ||||
-rw-r--r-- | src/buildtools/config/windows.pri | 3 |
7 files changed, 131 insertions, 15 deletions
diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri index 85781d251..cf990c79b 100644 --- a/src/buildtools/config/common.pri +++ b/src/buildtools/config/common.pri @@ -14,25 +14,28 @@ gn_args += \ enable_nacl=false \ enable_remoting=false \ enable_reporting=false \ - enable_resource_whitelist_generation=false \ + enable_resource_allowlist_generation=false \ enable_swiftshader=false \ + enable_swiftshader_vulkan=false \ angle_enable_swiftshader=false \ - enable_web_auth=true \ enable_web_speech=false \ enable_widevine=true \ forbid_non_component_debug_builds=false \ has_native_accessibility=false \ safe_browsing_mode=0 \ + skia_use_dawn=false \ toolkit_views=false \ treat_warnings_as_errors=false \ use_allocator_shim=false \ use_allocator=\"none\" \ - use_custom_libcxx=false + use_custom_libcxx=false \ + chrome_pgo_phase=0 \ + enable_hangout_services_extension=true -# No closure compile supported at this time +# Closure compile requires Java gn_args += \ - closure_compile=false \ - optimize_webui=false + optimize_webui=false \ + enable_js_type_check=false # We always embed v8 startup data currently gn_args += \ diff --git a/src/buildtools/config/linux.pri b/src/buildtools/config/linux.pri index 56c18bdb5..7507d51ef 100644 --- a/src/buildtools/config/linux.pri +++ b/src/buildtools/config/linux.pri @@ -11,13 +11,13 @@ gn_args += \ use_cups=false \ use_gio=false \ use_gnome_keyring=false \ - linux_use_bundled_binutils=false \ use_udev=true \ use_bundled_fontconfig=false \ use_sysroot=false \ enable_session_service=false \ is_cfi=false \ use_ozone=true \ + use_x11=false \ ozone_auto_platforms=false \ ozone_platform_headless=false \ ozone_platform_external=true \ diff --git a/src/buildtools/config/lipo.pri b/src/buildtools/config/lipo.pri new file mode 100644 index 000000000..f065c8ee9 --- /dev/null +++ b/src/buildtools/config/lipo.pri @@ -0,0 +1,85 @@ +for(arch, QT_ARCHS) { + + linking_pri = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}.pri + + !include($$linking_pri) { + message("Could not find the linking information that gn should have generated.") + } + + # Do not precompile any headers. We are only interested in the linker step. + PRECOMPILED_HEADER = + + isEmpty(NINJA_OBJECTS): error("Missing object files from linking pri.") + isEmpty(NINJA_LFLAGS): error("Missing linker flags from linking pri") + isEmpty(NINJA_ARCHIVES): error("Missing archive files from linking pri") + isEmpty(NINJA_LIBS): error("Missing library files from linking pri") + NINJA_OBJECTS = $$eval($$list($$NINJA_OBJECTS)) + # Do manual response files + + + RSP_OBJECT_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_objects.rsp + for(object, NINJA_OBJECTS): RSP_OBJECTS_CONTENT += $$object + write_file($$RSP_OBJECT_FILE, RSP_OBJECTS_CONTENT) + RSP_ARCHIVE_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_archives.rsp + for(archive, NINJA_ARCHIVES): RSP_ARCHIVES_CONTENT += $$archive + write_file($$RSP_ARCHIVE_FILE, RSP_ARCHIVES_CONTENT) + RSP_LIBS_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_libs.rsp + for(lib, NINJA_LIBS): RSP_LIBS_CONTENT += $$lib + write_file($$RSP_LIBS_FILE, RSP_LIBS_CONTENT) + + unset(RSP_OBJECTS_CONTENT) + unset(RSP_ARCHIVES_CONTENT) + unset(RSP_LIBS_CONTENT) + unset(NINJA_OBJECTS) + unset(NINJA_LFLAGS) + unset(NINJA_ARCHIVES) + unset(NINJA_LIBS) +} + +LIPO_OUT_FILE = $$OUT_PWD/$$getConfigDir()/$${TARGET}.a +INPUT_FILE = . +lipo.name = lipo +lipo.output = $$LIPO_OUT_FILE +lipo.input = INPUT_FILE +lipo.CONFIG += target_predeps no_link +lipo.commands = lipo -create -output $$LIPO_OUT_FILE +QMAKE_EXTRA_COMPILERS += lipo + +include($$QTWEBENGINE_ROOT/src/buildtools/config/mac_osx.pri) + +for(arch, QT_ARCHS) { + + RSP_OBJECT_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_objects.rsp + OBJECT_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_objects.o + RSP_ARCHIVE_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_archives.rsp + ARCHIVE_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}_archives.o + OUT_FILE = $$OUT_PWD/$$arch/$$getConfigDir()/$${TARGET}.a + + intermediate_archive_$${arch}.name = build_intermediate_archive_$${arch} + intermediate_archive_$${arch}.output= $$OUT_FILE + intermediate_archive_$${arch}.input = INPUT_FILE + intermediate_archive_$${arch}.depends = $$RSP_OBJECT_FILE $$RSP_ARCHIVE_FILE $$NINJA_TARGETDEPS + intermediate_archive_$${arch}.CONFIG += target_predeps no_link + intermediate_archive_$${arch}.commands = \ + clang++ -r -nostdlib -arch $$arch \ + -mmacosx-version-min=$${QMAKE_MACOSX_DEPLOYMENT_TARGET} \ + -o $$OBJECT_FILE \ + -Wl,-keep_private_externs \ + @$$RSP_OBJECT_FILE ;\ + $$QMAKE_CC -r -nostdlib -arch $$arch \ + -mmacosx-version-min=$${QMAKE_MACOSX_DEPLOYMENT_TARGET} \ + -o $$ARCHIVE_FILE \ + -Wl,-keep_private_externs \ + -Wl,-all_load \ + @$$RSP_ARCHIVE_FILE ;\ + ar -crs $$OUT_FILE $$OBJECT_FILE $$ARCHIVE_FILE + lipo.depends += $$OUT_FILE + lipo.commands += $$OUT_FILE + QMAKE_EXTRA_COMPILERS += intermediate_archive_$$arch + + unset(RSP_OBJECT_FILE) + unset(OBJECT_FILE) + unset(RSP_ARCHVIE_FILE) + unset(OUT_FILE) +} + diff --git a/src/buildtools/config/lipo_linking.pri b/src/buildtools/config/lipo_linking.pri new file mode 100644 index 000000000..c65fef059 --- /dev/null +++ b/src/buildtools/config/lipo_linking.pri @@ -0,0 +1,15 @@ +include($$QTWEBENGINE_OUT_ROOT/src/buildtools/qtbuildtools-config.pri) +QT_FOR_CONFIG += buildtools-private + +LIPO_OUT_FILE = $$OUT_PWD/$$getConfigDir()/$${TARGET}.a +!static { + QMAKE_LFLAGS += $${LIPO_OUT_FILE} +} else { + LIBS_PRIVATE += $${LIPO_OUT_FILE} +} + +LIBS_PRIVATE += @$$OUT_PWD/$$QT_ARCH/$$getConfigDir()/$${TARGET}_libs.rsp + +qtConfig(webengine-noexecstack): QMAKE_LFLAGS += -Wl,-z,noexecstack + +POST_TARGETDEPS += $$LIPO_OUT_FILE diff --git a/src/buildtools/config/mac_osx.pri b/src/buildtools/config/mac_osx.pri index b53f91706..b82186083 100644 --- a/src/buildtools/config/mac_osx.pri +++ b/src/buildtools/config/mac_osx.pri @@ -34,5 +34,9 @@ gn_args += \ mac_deployment_target=\"$${QMAKE_MACOSX_DEPLOYMENT_TARGET}\" \ mac_sdk_min=\"$${QMAKE_MAC_SDK_VERSION_MAJOR_MINOR}\" \ use_external_popup_menu=false \ - angle_enable_vulkan=false + angle_enable_vulkan=false \ + fatal_linker_warnings=false +cross_compile:!host_build { + gn_args += target_cpu=\"$$gnArch($$QT_ARCH)\" +} diff --git a/src/buildtools/config/support.pri b/src/buildtools/config/support.pri index e192f8777..a9df3d243 100644 --- a/src/buildtools/config/support.pri +++ b/src/buildtools/config/support.pri @@ -21,7 +21,8 @@ defineReplace(qtwebengine_checkWebEngineCoreError) { !qtwebengine_checkForGperf(QtWebEngine):return(false) !qtwebengine_checkForBison(QtWebEngine):return(false) !qtwebengine_checkForFlex(QtWebEngine):return(false) - !qtwebengine_checkForPython2(QtWebengine):return(false) + !qtwebengine_checkForPython(QtWebEngine):return(false) + !qtwebengine_checkForNodejs(QtWebEngine):return(false) !qtwebengine_checkForSanitizer(QtWebEngine):return(false) linux:!qtwebengine_checkForPkgCfg(QtWebEngine):return(false) linux:!qtwebengine_checkForHostPkgCfg(QtWebEngine):return(false) @@ -50,7 +51,7 @@ defineReplace(qtwebengine_checkPdfError) { !qtwebengine_checkForGperf(QtPdf):return(false) !qtwebengine_checkForBison(QtPdf):return(false) !qtwebengine_checkForFlex(QtPdf):return(false) - !qtwebengine_checkForPython2(QtPdf):return(false) + !qtwebengine_checkForPython(QtPdf):return(false) !qtwebengine_checkForSanitizer(QtPdf):return(false) linux:!qtwebengine_checkForPkgCfg(QtPdf):return(false) linux:!qtwebengine_checkForHostPkgCfg(QtPdf):return(false) @@ -142,10 +143,19 @@ defineTest(qtwebengine_checkForFlex) { return(true) } -defineTest(qtwebengine_checkForPython2) { +defineTest(qtwebengine_checkForPython) { module = $$1 - !qtConfig(webengine-python2) { - qtwebengine_skipBuild("Python version 2 (2.7.5 or later) is required to build $${module}.") + !qtConfig(webengine-python) { + qtwebengine_skipBuild("Python version 2 (2.7.5 or later) or Python version 3 (3.6 or later) is required to build $${module}.") + return(false) + } + return(true) +} + +defineTest(qtwebengine_checkForNodejs) { + module = $$1 + !qtConfig(webengine-nodejs) { + qtwebengine_skipBuild("Nodejs is required to build $${module}.") return(false) } return(true) diff --git a/src/buildtools/config/windows.pri b/src/buildtools/config/windows.pri index bd236e1a5..f7b80e6e4 100644 --- a/src/buildtools/config/windows.pri +++ b/src/buildtools/config/windows.pri @@ -4,7 +4,6 @@ gn_args += \ use_sysroot=false \ enable_session_service=false \ ninja_use_custom_environment_files=false \ - is_multi_dll_chrome=false \ win_linker_timing=true \ com_init_check_hook_disabled=true \ heterogeneous_executables=true \ @@ -72,7 +71,7 @@ msvc:contains(QT_ARCH, "i386"):!usingMSVC32BitCrossCompiler() { msvc { equals(MSVC_VER, 15.0) { MSVS_VERSION = 2017 - } else: equals(MSVC_VER, 16.0) { + } else: versionAtLeast(MSVC_VER, 16.0) { MSVS_VERSION = 2019 } else { error("Visual Studio compiler version \"$$MSVC_VER\" is not supported by gn.") |