diff --git a/configure.json b/configure.json
index 4801beb9433f45e56442a5c23c411a3b62fd0396..4b9288bbbaf6532dff0652e18403a86a2d2a49cf 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 a90b066875affc87e47020ad942392e1c9404999..f946240533cc6cf860a48e42b7dca03ac44e371b 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 019b77c49179cd00a636967096ae6807da8abbfa..df8aeb1ccf6f231271079a005ad65a6814910be2 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