From f7032b40a28f844e4a94633bbc077b1953ef0ed4 Mon Sep 17 00:00:00 2001 From: Michal Klocek <michal.klocek@qt.io> Date: Tue, 13 Aug 2019 15:37:15 +0200 Subject: [PATCH] Add jumbo builds to configure system Adds new feature webenigne-jumbo-build which indicates merge limit for jumbo build, usage: qmake <src> -- --webengine-jumbo-build=8 Change-Id: I7607a83772b53f6db57eb12559989a91f991ce93 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> --- configure.json | 22 ++++++++++++++++++++-- configure.pri | 20 ++++++++++++++++++++ src/core/config/common.pri | 13 +++++++++---- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/configure.json b/configure.json index 4801beb94..4b9288bbb 100644 --- a/configure.json +++ b/configure.json @@ -10,7 +10,8 @@ ], "commandline": { "options": { - "webengine-core": "boolean" + "webengine-core": "boolean", + "webengine-jumbo-build": { "type": "optionalString", "name": "merge_limit"} } }, "libraries": { @@ -139,6 +140,11 @@ "webengine-xcb": { "label": "qtbase xcb", "type": "detectXcb" + }, + "webengine-jumbo-build": { + "label": "jumbo build merge limit", + "type": "detectJumboBuild", + "log": "merge_limit" } }, "features": { @@ -266,6 +272,14 @@ "label": "winversion", "condition": "config.win32 && tests.webengine-winversion", "output": [ "privateFeature" ] + }, + "webengine-jumbo-build": { + "label": "jumbo build merge batch", + "condition": "tests.webengine-jumbo-build", + "output": [ + "privateFeature", + { "type": "varAssign", "name": "QMAKE_JUMBO_MERGE_LIMIT", "value": "tests.webengine-jumbo-build.merge_limit" } + ] } }, "report": [ @@ -305,7 +319,11 @@ "section": "Build Tools", "entries": [ "webengine-system-ninja", - "webengine-system-gn" + "webengine-system-gn", + { + "message": "Jumbo Build Merge Limit", + "type": "jumboBuild" + } ] }, { diff --git a/configure.pri b/configure.pri index a90b06687..f94624053 100644 --- a/configure.pri +++ b/configure.pri @@ -22,6 +22,26 @@ defineTest(isPythonVersionSupported) { return(false) } +defineTest(qtConfTest_detectJumboBuild) { + mergeLimit = $$eval(config.input.merge_limit) + mergeLimit = $$find(mergeLimit, "\\d") + isEmpty(mergeLimit): mergeLimit = 0 + qtLog("Setting jumbo build merge batch limit to $${mergeLimit}.") + $${1}.merge_limit = $$mergeLimit + export($${1}.merge_limit) + $${1}.cache += merge_limit + export($${1}.cache) + + return(true) +} + +defineTest(qtConfReport_jumboBuild) { + mergeLimit = $$eval(config.input.merge_limit) + mergeLimit = $$find(mergeLimit, "\d") + isEmpty(mergeLimit): mergeLimit = "no" + qtConfReportPadded($${1}, $$mergeLimit) +} + defineTest(qtConfTest_detectPython2) { python = $$qtConfFindInPath("python2$$EXE_SUFFIX") isEmpty(python) { diff --git a/src/core/config/common.pri b/src/core/config/common.pri index 019b77c49..df8aeb1cc 100644 --- a/src/core/config/common.pri +++ b/src/core/config/common.pri @@ -28,10 +28,15 @@ gn_args += \ safe_browsing_mode=0 \ optimize_webui=false -!win32: gn_args += \ - use_jumbo_build=true \ - jumbo_file_merge_limit=8 \ - jumbo_build_excluded="[\"browser\"]" +greaterThan(QMAKE_JUMBO_MERGE_LIMIT,0) { + gn_args += \ + use_jumbo_build=true \ + jumbo_file_merge_limit=$$QMAKE_JUMBO_MERGE_LIMIT +} + +!greaterThan(QMAKE_JUMBO_MERGE_LIMIT,8) { + gn_args += jumbo_build_excluded="[\"browser\"]" +} qtConfig(webengine-printing-and-pdf) { gn_args += enable_basic_printing=true enable_print_preview=true -- GitLab