From 6ea5d56ae81bc486a6deaf1bfedaa8bfbf734647 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@qt.io>
Date: Tue, 4 Apr 2017 12:53:06 +0200
Subject: [PATCH] Make optimize for size a visible configurable option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Can be enabled with --optimize-for-size and is enabled by default for
embedded builds.

Change-Id: I955fa57804c8b7e80bb82deb83deb94a9e2a7621
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
---
 configure.json                             | 7 +++++++
 tools/qmake/mkspecs/features/configure.prf | 5 ++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/configure.json b/configure.json
index ad9fd117c..62b56bbb1 100644
--- a/configure.json
+++ b/configure.json
@@ -10,6 +10,7 @@
         "options": {
             "alsa": "boolean",
             "embedded": "boolean",
+            "optimize-for-size": { "type": "boolean", "name": "optimize_size" },
             "ffmpeg": { "type": "enum", "name": "system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
             "opus": { "type": "enum", "name": "system-opus", "values": { "system": "yes", "qt": "no" } },
             "webp": { "type": "enum", "name": "system-webp", "values": { "system": "yes", "qt": "no" } },
@@ -79,6 +80,11 @@
             "purpose": "Enables the embedded build configuration",
             "output": [ "privateFeature" ]
         },
+        "optimize_size": {
+            "label": "Optimize for size",
+            "autoDetect": "tests.embedded",
+            "output": [ "privateFeature" ]
+        },
         "alsa": {
             "label": "ALSA",
             "condition": "config.unix && libs.alsa",
@@ -156,6 +162,7 @@
             "section": "Qt WebEngine",
             "entries": [
                 "embedded",
+                "optimize_size",
                 "pepper-plugins",
                 "printing-and-pdf",
                 "proprietary-codecs",
diff --git a/tools/qmake/mkspecs/features/configure.prf b/tools/qmake/mkspecs/features/configure.prf
index 768b86a30..86665274f 100644
--- a/tools/qmake/mkspecs/features/configure.prf
+++ b/tools/qmake/mkspecs/features/configure.prf
@@ -30,6 +30,7 @@ defineTest(runConfigure) {
         qtConfig(spellchecker): WEBENGINE_CONFIG += use_spellchecker
         qtConfig(webrtc): WEBENGINE_CONFIG += use_webrtc
         qtConfig(embedded): WEBENGINE_CONFIG += embedded_build
+        qtConfig(optimize_size): WEBENGINE_CONFIG += reduce_binary_size
         qtConfig(system-webp): WEBENGINE_CONFIG += use_system_libwebp
         else: WEBENGINE_CONFIG += use_bundled_libwebp
         qtConfig(system-opus): WEBENGINE_CONFIG += use_system_opus
@@ -37,7 +38,7 @@ defineTest(runConfigure) {
         qtConfig(system-ffmpeg): WEBENGINE_CONFIG += use_system_ffmpeg
         else: WEBENGINE_CONFIG += use_bundled_ffmpeg
     } else {
-        cross_compile: WEBENGINE_CONFIG += embedded_build
+        cross_compile: WEBENGINE_CONFIG += embedded_build reduce_binary_size
     }
     isQtMinimum(5, 9) {
         qtConfig(appstore-compliant): WEBENGINE_CONFIG += use_appstore_compliant_code
@@ -105,8 +106,6 @@ defineTest(runConfigure) {
         !contains(WEBENGINE_CONFIG, embedded_build) {
             packagesExist(nss): WEBENGINE_CONFIG += use_nss
             else: log("System NSS not found, BoringSSL will be used.$${EOL}")
-        } else {
-            WEBENGINE_CONFIG *= reduce_binary_size
         }
     }
 
-- 
GitLab