summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-03-08 22:23:30 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-14 19:49:38 +0100
commitd3d8ac354665687bd7c96e3f4b3c8b7e0d9c3172 (patch)
treed8787576dddd28d64559569997953ed9d677f37f
parent53571e02a1bb1c65ceb44444050af4526da0ff3a (diff)
don't bootstrap tools when not necessary
bootstrapping is only necessary if we are cross-compiling or have a circular build dependency. Change-Id: I17244457652ca9d4fc797043e57070c2ae3ee5d1 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--mkspecs/features/qt_build_config.prf3
-rw-r--r--mkspecs/features/qt_tool.prf9
-rw-r--r--src/dbus/qdbusconnection_p.h4
-rw-r--r--src/src.pro13
-rw-r--r--src/tools/moc/moc.pro1
-rw-r--r--src/tools/qdbuscpp2xml/qdbuscpp2xml.pro4
-rw-r--r--src/tools/qdbusxml2cpp/qdbusxml2cpp.pro4
-rw-r--r--src/tools/qdoc/qdoc.pro1
-rw-r--r--src/tools/rcc/rcc.pro1
9 files changed, 28 insertions, 12 deletions
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 4f5b62e1e5..c53bc960a2 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -39,6 +39,9 @@ mac {
}
}
+cross_compile: \
+ CONFIG += force_bootstrap
+
CONFIG += \
create_prl link_prl \
prepare_docs qt_docs_targets \
diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
index a49b3f25db..56ba1169a1 100644
--- a/mkspecs/features/qt_tool.prf
+++ b/mkspecs/features/qt_tool.prf
@@ -17,9 +17,9 @@ DESTDIR = $$MODULE_BASE_OUTDIR/bin
CONFIG += console
isEmpty(QMAKE_INFO_PLIST): CONFIG -= app_bundle
-host_build {
+host_build: QT -= gui # no host tool will ever use gui
+host_build:force_bootstrap {
!build_pass: CONFIG += release
- QT -= gui # no host tool will ever use gui
contains(QT, core(-private)?|xml) {
QT -= core core-private xml
QT += bootstrap-private
@@ -36,7 +36,8 @@ load(qt_common)
# If we are doing a prefix build, create a "module" pri which enables
# qtPrepareTool() to work with the non-installed build.
-!build_pass:prefix_build {
+# Non-bootstrapped tools always need this because of the environment setup.
+!build_pass:if(!host_build|!force_bootstrap|prefix_build) {
isEmpty(MODULE):MODULE = $$TARGET
@@ -46,7 +47,7 @@ load(qt_common)
load(resolve_target)
cmd = $$shell_path($$QMAKE_RESOLVED_TARGET)
- !host_build: qtAddTargetEnv(cmd)
+ !host_build|!force_bootstrap: qtAddTargetEnv(cmd)
TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h
index bef0b88f78..73c8dcf411 100644
--- a/src/dbus/qdbusconnection_p.h
+++ b/src/dbus/qdbusconnection_p.h
@@ -344,8 +344,8 @@ public:
// in qdbusmisc.cpp
extern int qDBusParametersForMethod(const QMetaMethod &mm, QVector<int> &metaTypes);
#endif // QT_BOOTSTRAPPED
-extern int qDBusParametersForMethod(const QList<QByteArray> &parameters, QVector<int>& metaTypes);
-extern bool qDBusCheckAsyncTag(const char *tag);
+extern Q_DBUS_EXPORT int qDBusParametersForMethod(const QList<QByteArray> &parameters, QVector<int>& metaTypes);
+extern Q_DBUS_EXPORT bool qDBusCheckAsyncTag(const char *tag);
#ifndef QT_BOOTSTRAPPED
extern bool qDBusInterfaceInObject(QObject *obj, const QString &interface_name);
extern QString qDBusInterfaceFromMetaObject(const QMetaObject *mo);
diff --git a/src/src.pro b/src/src.pro
index fd356f95fc..f775736406 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -13,7 +13,8 @@ src_tools_rcc.depends = src_tools_bootstrap
src_tools_uic.subdir = tools/uic
src_tools_uic.target = sub-uic
-src_tools_uic.depends = src_tools_bootstrap
+force_bootstrap: src_tools_uic.depends = src_tools_bootstrap
+else: src_tools_uic.depends = src_corelib
src_tools_qdoc.subdir = tools/qdoc
src_tools_qdoc.target = sub-qdoc
@@ -25,11 +26,13 @@ src_tools_bootstrap_dbus.depends = src_tools_bootstrap
src_tools_qdbusxml2cpp.subdir = tools/qdbusxml2cpp
src_tools_qdbusxml2cpp.target = sub-qdbusxml2cpp
-src_tools_qdbusxml2cpp.depends = src_tools_bootstrap_dbus
+force_bootstrap: src_tools_qdbusxml2cpp.depends = src_tools_bootstrap_dbus
+else: src_tools_qdbusxml2cpp.depends = src_dbus
src_tools_qdbuscpp2xml.subdir = tools/qdbuscpp2xml
src_tools_qdbuscpp2xml.target = sub-qdbuscpp2xml
-src_tools_qdbuscpp2xml.depends = src_tools_bootstrap_dbus
+force_bootstrap: src_tools_qdbuscpp2xml.depends = src_tools_bootstrap_dbus
+else: src_tools_qdbuscpp2xml.depends = src_dbus
src_winmain.subdir = $$PWD/winmain
src_winmain.target = sub-winmain
@@ -101,7 +104,9 @@ SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc src_corelib
win32:SUBDIRS += src_winmain
SUBDIRS += src_network src_sql src_xml src_testlib
contains(QT_CONFIG, dbus) {
- SUBDIRS += src_dbus src_tools_bootstrap_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml
+ SUBDIRS += src_dbus
+ force_bootstrap: SUBDIRS += src_tools_bootstrap_dbus
+ SUBDIRS += src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml
contains(QT_CONFIG, accessibility-atspi-bridge): \
src_platformsupport.depends += src_dbus src_tools_qdbusxml2cpp
src_plugins.depends += src_dbus src_tools_qdbusxml2cpp src_tools_qdbuscpp2xml
diff --git a/src/tools/moc/moc.pro b/src/tools/moc/moc.pro
index 3a6fd2a02d..d56c2805eb 100644
--- a/src/tools/moc/moc.pro
+++ b/src/tools/moc/moc.pro
@@ -1,4 +1,5 @@
option(host_build)
+CONFIG += force_bootstrap
DEFINES += QT_MOC QT_NO_CAST_FROM_ASCII QT_NO_CAST_FROM_BYTEARRAY QT_NO_COMPRESS
diff --git a/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro b/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro
index 96686e7cad..655158e457 100644
--- a/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro
+++ b/src/tools/qdbuscpp2xml/qdbuscpp2xml.pro
@@ -1,5 +1,7 @@
option(host_build)
-QT += bootstrap_dbus-private
+QT = core-private
+force_bootstrap: QT += bootstrap_dbus-private
+else: QT += dbus-private
DEFINES += QT_NO_CAST_FROM_ASCII
QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS
diff --git a/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro b/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro
index 6174cc0c25..dcc36c7913 100644
--- a/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro
+++ b/src/tools/qdbusxml2cpp/qdbusxml2cpp.pro
@@ -1,5 +1,7 @@
option(host_build)
-QT += bootstrap_dbus-private
+QT = core-private
+force_bootstrap: QT += bootstrap_dbus-private
+else: QT += dbus-private
DEFINES += QT_NO_CAST_FROM_ASCII
QMAKE_CXXFLAGS += $$QT_CFLAGS_DBUS
diff --git a/src/tools/qdoc/qdoc.pro b/src/tools/qdoc/qdoc.pro
index cd792e73e8..9db77b7b24 100644
--- a/src/tools/qdoc/qdoc.pro
+++ b/src/tools/qdoc/qdoc.pro
@@ -1,4 +1,5 @@
option(host_build)
+CONFIG += force_bootstrap # because of weird QLibraryInfo::location() reference
DEFINES += QDOC2_COMPAT \
QT_CRYPTOGRAPHICHASH_ONLY_SHA1
diff --git a/src/tools/rcc/rcc.pro b/src/tools/rcc/rcc.pro
index f4ad2f63d7..354747db01 100644
--- a/src/tools/rcc/rcc.pro
+++ b/src/tools/rcc/rcc.pro
@@ -1,4 +1,5 @@
option(host_build)
+CONFIG += force_bootstrap
DEFINES += QT_RCC QT_NO_CAST_FROM_ASCII