summaryrefslogtreecommitdiffstats
path: root/qmake/qmake-aux.pro
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2016-11-24 18:41:48 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2016-12-13 18:56:12 +0000
commit169a40d511165f6c3c9a71cd5c079786c22d2aca (patch)
treeccb96350299aa64c2ec32da0c27b4ecb1a10a822 /qmake/qmake-aux.pro
parent42196f4061263d6d0e453c0561f7604cadc6d0a3 (diff)
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 <paolo.angelelli@qt.io> Change-Id: I4526ef64b3c89d9851e10f83965fe479ed7f39f6 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'qmake/qmake-aux.pro')
-rw-r--r--qmake/qmake-aux.pro20
1 files changed, 19 insertions, 1 deletions
diff --git a/qmake/qmake-aux.pro b/qmake/qmake-aux.pro
index 33a7fbfd2d..357ebc7367 100644
--- a/qmake/qmake-aux.pro
+++ b/qmake/qmake-aux.pro
@@ -6,6 +6,24 @@ QMAKE_DOCS = $$PWD/doc/qmake.qdocconf
# qmake binary
win32: EXTENSION = .exe
+
+!build_pass {
+ qmake_exe.target = $$OUT_PWD/qmake$$EXTENSION
+ qmake_exe.depends = ../bin/qmake$$EXTENSION builtin-qt.conf
+ equals(QMAKE_DIR_SEP, /): \
+ qmake_exe.commands = cat ../bin/qmake$$EXTENSION builtin-qt.conf > qmake$$EXTENSION && chmod +x qmake$$EXTENSION
+ else: \
+ qmake_exe.commands = copy /B ..\bin\qmake$$EXTENSION + builtin-qt.conf qmake$$EXTENSION
+ QMAKE_EXTRA_TARGETS += qmake_exe
+
+ QMAKE_CLEAN += builtin-qt.conf
+ QMAKE_DISTCLEAN += qmake$$EXTENSION
+
+ first.depends += qmake_exe
+ QMAKE_EXTRA_TARGETS += first
+}
+
qmake.path = $$[QT_HOST_BINS]
-qmake.files = $$OUT_PWD/../bin/qmake$$EXTENSION
+qmake.files = $$OUT_PWD/qmake$$EXTENSION
+qmake.CONFIG = no_check_exist executable
INSTALLS += qmake