From 030b19f36e82cc005d21fab56e26c8b76c811ae7 Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 4 Nov 2009 15:01:49 +0100 Subject: Add src/tools/tools.pro, and use when building host tools for xcompiling Configure.exe would simply initiate a build for each of the tools in order. However, this would break certain distributed build systems, since they would return right away after initiating the make. Thus, sometimes moc et al. would try to link before bootstrap lib was built. Reviewed-by: Jason McDonald --- configure.exe | Bin 2170880 -> 1172992 bytes src/src.pro | 31 ++--------------- src/tools/tools.pro | 71 +++++++++++++++++++++++++++++++++++++++ tools/configure/configureapp.cpp | 5 +-- 4 files changed, 75 insertions(+), 32 deletions(-) create mode 100644 src/tools/tools.pro diff --git a/configure.exe b/configure.exe index dabf10c..04aefde 100755 Binary files a/configure.exe and b/configure.exe differ diff --git a/src/src.pro b/src/src.pro index 238f534..77605a8 100644 --- a/src/src.pro +++ b/src/src.pro @@ -8,17 +8,12 @@ wince*:{ } else:symbian { SRC_SUBDIRS += src_s60main src_corelib src_xml src_gui src_network src_sql src_testlib src_s60installs } else { - SRC_SUBDIRS += src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_network src_gui src_sql src_testlib + include(tools/tools.pro) + SRC_SUBDIRS += src_corelib src_xml src_network src_gui src_sql src_testlib !vxworks:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus - !cross_compile { - contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3 - } -} -win32:{ - SRC_SUBDIRS += src_activeqt - !wince*: SRC_SUBDIRS += src_tools_idc } +win32:SRC_SUBDIRS += src_activeqt contains(QT_CONFIG, opengl)|contains(QT_CONFIG, opengles1)|contains(QT_CONFIG, opengles2): SRC_SUBDIRS += src_opengl contains(QT_CONFIG, openvg): SRC_SUBDIRS += src_openvg @@ -40,14 +35,6 @@ src_s60installs.subdir = $$QT_SOURCE_TREE/src/s60installs src_s60installs.target = sub-s60installs src_winmain.subdir = $$QT_SOURCE_TREE/src/winmain src_winmain.target = sub-winmain -src_tools_bootstrap.subdir = $$QT_SOURCE_TREE/src/tools/bootstrap -src_tools_bootstrap.target = sub-tools-bootstrap -src_tools_moc.subdir = $$QT_SOURCE_TREE/src/tools/moc -src_tools_moc.target = sub-moc -src_tools_rcc.subdir = $$QT_SOURCE_TREE/src/tools/rcc -src_tools_rcc.target = sub-rcc -src_tools_uic.subdir = $$QT_SOURCE_TREE/src/tools/uic -src_tools_uic.target = sub-uic src_corelib.subdir = $$QT_SOURCE_TREE/src/corelib src_corelib.target = sub-corelib src_xml.subdir = $$QT_SOURCE_TREE/src/xml @@ -78,12 +65,8 @@ src_phonon.subdir = $$QT_SOURCE_TREE/src/phonon src_phonon.target = sub-phonon src_multimedia.subdir = $$QT_SOURCE_TREE/src/multimedia src_multimedia.target = sub-multimedia -src_tools_uic3.subdir = $$QT_SOURCE_TREE/src/tools/uic3 -src_tools_uic3.target = sub-uic3 src_activeqt.subdir = $$QT_SOURCE_TREE/src/activeqt src_activeqt.target = sub-activeqt -src_tools_idc.subdir = $$QT_SOURCE_TREE/src/tools/idc -src_tools_idc.target = sub-idc src_plugins.subdir = $$QT_SOURCE_TREE/src/plugins src_plugins.target = sub-plugins src_testlib.subdir = $$QT_SOURCE_TREE/src/testlib @@ -95,9 +78,6 @@ src_webkit.target = sub-webkit #CONFIG += ordered !wince*:!symbian:!ordered { - src_tools_moc.depends = src_tools_bootstrap - src_tools_rcc.depends = src_tools_bootstrap - src_tools_uic.depends = src_tools_bootstrap src_corelib.depends = src_tools_moc src_tools_rcc src_gui.depends = src_corelib src_tools_uic embedded: src_gui.depends += src_network @@ -115,8 +95,6 @@ src_webkit.target = sub-webkit src_qt3support.depends = src_gui src_xml src_network src_sql src_phonon.depends = src_gui src_multimedia.depends = src_gui - src_tools_uic3.depends = src_qt3support src_xml - src_tools_idc.depends = src_corelib src_tools_activeqt.depends = src_tools_idc src_gui src_plugins.depends = src_gui src_sql src_svg contains(QT_CONFIG, webkit) { @@ -141,8 +119,6 @@ sub_src_target.recurse_target = QMAKE_EXTRA_TARGETS += sub_src_target # This gives us a top level debug/release -EXTRA_DEBUG_TARGETS = -EXTRA_RELEASE_TARGETS = for(subname, SRC_SUBDIRS) { subdir = $$subname !isEmpty($${subname}.subdir):subdir = $$eval($${subname}.subdir) @@ -184,4 +160,3 @@ QMAKE_EXTRA_TARGETS += debug release } SUBDIRS += $$SRC_SUBDIRS - diff --git a/src/tools/tools.pro b/src/tools/tools.pro new file mode 100644 index 0000000..798bd0b --- /dev/null +++ b/src/tools/tools.pro @@ -0,0 +1,71 @@ +TEMPLATE = subdirs + +TOOLS_SUBDIRS = src_tools_bootstrap src_tools_moc src_tools_rcc src_tools_uic +!cross_compile { + contains(QT_CONFIG, qt3support): TOOLS_SUBDIRS += src_tools_uic3 + win32:!wince*: TOOLS_SUBDIRS += src_tools_idc +} + +# Set subdir and respective target name +src_tools_bootstrap.subdir = $$QT_SOURCE_TREE/src/tools/bootstrap +src_tools_bootstrap.target = sub-tools-bootstrap +src_tools_moc.subdir = $$QT_SOURCE_TREE/src/tools/moc +src_tools_moc.target = sub-moc +src_tools_rcc.subdir = $$QT_SOURCE_TREE/src/tools/rcc +src_tools_rcc.target = sub-rcc +src_tools_uic.subdir = $$QT_SOURCE_TREE/src/tools/uic +src_tools_uic.target = sub-uic +src_tools_uic3.subdir = $$QT_SOURCE_TREE/src/tools/uic3 +src_tools_uic3.target = sub-uic3 +src_tools_idc.subdir = $$QT_SOURCE_TREE/src/tools/idc +src_tools_idc.target = sub-idc + +# Set dependencies for each subdir +src_tools_moc.depends = src_tools_bootstrap +src_tools_rcc.depends = src_tools_bootstrap +src_tools_uic.depends = src_tools_bootstrap +src_tools_idc.depends = src_corelib # defined in parent pro, in any, if not ignored +src_tools_uic3.depends = src_qt3support src_xml # defined in parent pro, in any, if not ignored + +# Special handling, depending on type of project, if it used debug/release or only has one configuration +EXTRA_DEBUG_TARGETS = +EXTRA_RELEASE_TARGETS = +!symbian { + for(subname, TOOLS_SUBDIRS) { + subdir = $$subname + !isEmpty($${subname}.subdir):subdir = $$eval($${subname}.subdir) + subpro = $$subdir/$${basename(subdir)}.pro + !exists($$subpro):next() + subtarget = $$replace(subdir, [^A-Za-z0-9], _) + reg_src = $$replace(QT_SOURCE_TREE, \\\\, \\\\) + subdir = $$replace(subdir, $$reg_src, $$QT_BUILD_TREE) + subdir = $$replace(subdir, /, $$QMAKE_DIR_SEP) + subdir = $$replace(subdir, \\\\, $$QMAKE_DIR_SEP) + SUB_TEMPLATE = $$list($$fromfile($$subpro, TEMPLATE)) + !isEqual(subname, src_tools_bootstrap):if(isEqual($$SUB_TEMPLATE, lib) | isEqual($$SUB_TEMPLATE, subdirs) | isEqual(subname, src_tools_idc) | isEqual(subname, src_tools_uic3)):!separate_debug_info { + #debug + eval(debug-$${subtarget}.depends = $${subdir}\$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_DEBUG_TARGETS) + eval(debug-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) debug)) + EXTRA_DEBUG_TARGETS += debug-$${subtarget} + QMAKE_EXTRA_TARGETS += debug-$${subtarget} + #release + eval(release-$${subtarget}.depends = $${subdir}\$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_RELEASE_TARGETS) + eval(release-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) release)) + EXTRA_RELEASE_TARGETS += release-$${subtarget} + QMAKE_EXTRA_TARGETS += release-$${subtarget} + } else { #do not have a real debug target/release + #debug + eval(debug-$${subtarget}.depends = $${subdir}\$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_DEBUG_TARGETS) + eval(debug-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) first)) + EXTRA_DEBUG_TARGETS += debug-$${subtarget} + QMAKE_EXTRA_TARGETS += debug-$${subtarget} + #release + eval(release-$${subtarget}.depends = $${subdir}\$${QMAKE_DIR_SEP}$(MAKEFILE) $$EXTRA_RELEASE_TARGETS) + eval(release-$${subtarget}.commands = (cd $$subdir && $(MAKE) -f $(MAKEFILE) first)) + EXTRA_RELEASE_TARGETS += release-$${subtarget} + QMAKE_EXTRA_TARGETS += release-$${subtarget} + } + } +} + +SUBDIRS += $$TOOLS_SUBDIRS diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index f75b51b..5e11534 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3379,10 +3379,7 @@ void Configure::buildHostTools() QString pwd = QDir::currentPath(); QStringList hostToolsDirs; hostToolsDirs - << "src/tools/bootstrap" - << "src/tools/moc" - << "src/tools/rcc" - << "src/tools/uic"; + << "src/tools"; if(dictionary["XQMAKESPEC"].startsWith("wince")) hostToolsDirs << "tools/checksdk"; -- cgit v0.12