From 169a40d511165f6c3c9a71cd5c079786c22d2aca Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 24 Nov 2016 18:41:48 +0100 Subject: move generation of qconfig.cpp (and qt.conf) to qmake-based configure this moves us another step towards the "outer" configure doing just minimal bootstrapping of qmake. a challenge here was that so far, qmake itself needed qconfig.cpp. this was replaced by usage of a qt.conf file instead of compiled-in values. however, to make the executable still self-contained, that qt.conf is embedded into it (by simple appending of a fixed signature and the text file). the qmake with the embedded qt.conf is not used for the qt build itself, which instead relies on the qt.conf in bin/ as before. however, due to the missing built-in values, this file now needs to contain more information than before. but except for a minimal version that is needed to start up qmake/configure at all, that file is now also generated with qmake. as some of the newly set up properties are subsequently used by configure itself, qmake gains a (deliberately undocumented) function to reload the qt.conf after it's fully populated. unlike the old implementations, this one doesn't emit redundant qt.conf entries which match the hard-coded fallbacks. omitting them leads to leaner files which are more comprehensible. Started-by: Paolo Angelelli Change-Id: I4526ef64b3c89d9851e10f83965fe479ed7f39f6 Reviewed-by: Jake Petroules --- configure.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'configure.json') diff --git a/configure.json b/configure.json index 9c6248549e..537a6ff526 100644 --- a/configure.json +++ b/configure.json @@ -1,5 +1,7 @@ { "files": { + "builtinQtConf": "qmake/builtin-qt.conf", + "qconfigSource": "src/corelib/global/qconfig.cpp", "publicHeader": "src/corelib/global/qconfig.h", "privateHeader": "src/corelib/global/qconfig_p.h", "publicPro": "mkspecs/qconfig.pri", @@ -43,7 +45,7 @@ "libexecdir": "string", "plugindir": "string", "qmldir": "string", - "settingsdir": "string", + "settingsdir": { "type": "string", "name": "sysconfdir" }, "sysconfdir": "string", "testsdir": "string", "translationdir": "string", @@ -416,6 +418,9 @@ }, "features": { + "prepare": { + "output": [ "preparePaths" ] + }, "android-style-assets": { "label": "Android Style Assets", "condition": "config.android", @@ -967,6 +972,10 @@ }, "earlyReport": [ + { + "condition": "!features.prepare", + "comment": "This is not an actual report - instead, it activates the early setup." + }, { "type": "fatal", "condition": "!call.licenseCheck", -- cgit v1.2.3