aboutsummaryrefslogtreecommitdiffstats
path: root/qt.pro
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-02-20 10:33:49 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-20 22:55:09 +0100
commitaeed8ce504b47985ef317f2cfcd6f715916303fb (patch)
tree3e6d7ad4b2c2a8b6c7cb37916c1319ef52dc329b /qt.pro
parent008943132609e1a92e500decf391bc75da320d2f (diff)
semi-automate adding submodules
this way adding a module actually becomes a one-liner Change-Id: Ie31039d36e948094c3ec241758eaab330304b194 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'qt.pro')
-rw-r--r--qt.pro159
1 files changed, 50 insertions, 109 deletions
diff --git a/qt.pro b/qt.pro
index 0d118de0..9614e433 100644
--- a/qt.pro
+++ b/qt.pro
@@ -5,121 +5,62 @@ TEMPLATE = subdirs
CONFIG += prepare_docs qt_docs_targets testcase_targets
-module_qtbase.subdir = qtbase
-module_qtbase.target = module-qtbase
-
-module_qtsvg.subdir = qtsvg
-module_qtsvg.target = module-qtsvg
-module_qtsvg.depends = module_qtbase
-
-module_qtxmlpatterns.subdir = qtxmlpatterns
-module_qtxmlpatterns.target = module-qtxmlpatterns
-module_qtxmlpatterns.depends = module_qtbase
-
-module_qtscript.subdir = qtscript
-module_qtscript.target = module-qtscript
-module_qtscript.depends = module_qtbase
-
-module_qtjsbackend.subdir = qtjsbackend
-module_qtjsbackend.target = module-qtjsbackend
-module_qtjsbackend.depends = module_qtbase
-
-module_qtdeclarative.subdir = qtdeclarative
-module_qtdeclarative.target = module-qtdeclarative
-module_qtdeclarative.depends = module_qtbase module_qtjsbackend
-
-module_qtwebkit.file = qtwebkit/WebKit.pro
-module_qtwebkit.makefile = Makefile
-module_qtwebkit.depends = module_qtbase module_qtdeclarative
-module_qtwebkit.target = module-qtwebkit
-
-module_qtwebkit_examples_and_demos.subdir = qtwebkit-examples-and-demos
-module_qtwebkit_examples_and_demos.target = module-qtwebkit-examples-and-demos
-module_qtwebkit_examples_and_demos.depends = module_qtwebkit module_qttools
-
-module_qttools.subdir = qttools
-module_qttools.target = module-qttools
-module_qttools.depends = module_qtbase
-
-module_qttranslations.subdir = qttranslations
-module_qttranslations.target = module-qttranslations
-module_qttranslations.depends = module_qttools
-
-module_qtdoc.subdir = qtdoc
-module_qtdoc.target = module-qtdoc
-module_qtdoc.depends = module_qtbase module_qtdeclarative
-
-module_qtactiveqt.subdir = qtactiveqt
-module_qtactiveqt.target = module-qtactiveqt
-module_qtactiveqt.depends = module_qtbase
-
-module_qtqa.subdir = qtqa
-module_qtqa.target = module-qtqa
-module_qtqa.depends = module_qtbase
+defineReplace(moduleName) {
+ return(module_$$replace(1, -, _))
+}
-module_qtmultimedia.subdir = qtmultimedia
-module_qtmultimedia.target = module-qtmultimedia
-module_qtmultimedia.depends = module_qtbase
+# Arguments: module name, [mandatory deps], [optional deps], [project file]
+defineTest(addModule) {
+ mod = $$moduleName($$1)
+
+ isEmpty(4) {
+ !exists($$1/$${1}.pro): return(false)
+ $${mod}.subdir = $$1
+ export($${mod}.subdir)
+ } else {
+ !exists($$1/$${4}): return(false)
+ $${mod}.file = $$1/$$4
+ $${mod}.makefile = Makefile
+ export($${mod}.file)
+ export($${mod}.makefile)
+ }
-module_qtimageformats.subdir = qtimageformats
-module_qtimageformats.target = module-qtimageformats
-module_qtimageformats.depends = module_qtbase
+ for(d, 2): \
+ $${mod}.depends += $$moduleName($$d)
+ for(d, 3) {
+ dn = $$moduleName($$d)
+ contains(SUBDIRS, $$dn): \
+ $${mod}.depends += $$dn
+ }
+ !isEmpty($${mod}.depends): \
+ export($${mod}.depends)
-module_qtquick1.subdir = qtquick1
-module_qtquick1.target = module-qtquick1
-module_qtquick1.depends = module_qtbase module_qtscript
+ $${mod}.target = module-$$1
+ export($${mod}.target)
-module_qtgraphicaleffects.subdir = qtgraphicaleffects
-module_qtgraphicaleffects.target = module-qtgraphicaleffects
-module_qtgraphicaleffects.depends = module_qtbase module_qtdeclarative
+ SUBDIRS += $$mod
+ export(SUBDIRS)
+ return(true)
+}
# only qtbase is required to exist. The others may not - but it is the
# users responsibility to ensure that all needed dependencies exist, or
# it may not build.
-SUBDIRS = module_qtbase
-
-exists(qtsvg/qtsvg.pro) {
- SUBDIRS += module_qtsvg
- # These modules do not require qtsvg, but can use it if it is available
- module_qtdeclarative.depends += module_qtsvg
- module_qtquick1.depends += module_qtsvg
-}
-exists(qtxmlpatterns/qtxmlpatterns.pro) {
- SUBDIRS += module_qtxmlpatterns
- # These modules do not require qtxmlpatterns, but can use it if it is available
- module_qtdeclarative.depends += module_qtxmlpatterns
- module_qtquick1.depends += module_qtxmlpatterns
-}
-
-exists(qtjsbackend/qtjsbackend.pro): SUBDIRS += module_qtjsbackend
-exists(qtdeclarative/qtdeclarative.pro) {
- SUBDIRS += module_qtdeclarative
- # These modules do not require qtdeclarative, but can use it if it is available
- module_qttools.depends += module_qtdeclarative
- module_qtmultimedia.depends += module_qtdeclarative
-}
-exists(qtscript/qtscript.pro): SUBDIRS += module_qtscript
-exists(qtmultimedia/qtmultimedia.pro): SUBDIRS += module_qtmultimedia
-exists(qtactiveqt/qtactiveqt.pro) {
- SUBDIRS += module_qtactiveqt
- module_qttools.depends += module_qtactiveqt
-}
-exists(qtwebkit/WebKit.pro) {
- SUBDIRS += module_qtwebkit
- module_qttools.depends += module_qtwebkit
- module_qtquick1.depends += module_qtwebkit
- exists(qtwebkit-examples-and-demos/qtwebkit-examples-and-demos.pro) {
- SUBDIRS += module_qtwebkit_examples_and_demos
- }
-}
-exists(qttools/qttools.pro) {
- SUBDIRS += module_qttools
- module_qtquick1.depends += module_qttools
-}
-exists(qtquick1/qtquick1.pro): SUBDIRS += module_qtquick1
-exists(qtimageformats/qtimageformats.pro): SUBDIRS += module_qtimageformats
-exists(qtgraphicaleffects/qtgraphicaleffects.pro): SUBDIRS += module_qtgraphicaleffects
-exists(qttranslations/qttranslations.pro): SUBDIRS += module_qttranslations
-exists(qtdoc/qtdoc.pro): SUBDIRS += module_qtdoc
-exists(qtqa/qtqa.pro): SUBDIRS += module_qtqa
+addModule(qtbase)
+addModule(qtsvg, qtbase)
+addModule(qtxmlpatterns, qtbase)
+addModule(qtjsbackend, qtbase)
+addModule(qtdeclarative, qtjsbackend, qtsvg qtxmlpatterns)
+addModule(qtmultimedia, qtbase, qtdeclarative)
+addModule(qtactiveqt, qtbase)
+addModule(qtwebkit, qtdeclarative, , WebKit.pro)
+addModule(qttools, qtbase, qtdeclarative qtactiveqt qtwebkit)
+addModule(qtwebkit-examples-and-demos, qtwebkit qttools)
+addModule(qtimageformats, qtbase)
+addModule(qtgraphicaleffects, qtdeclarative)
+addModule(qtscript, qtbase)
+addModule(qtquick1, qtscript, qtsvg qtxmlpatterns qtwebkit qttools)
+addModule(qttranslations, qttools)
+addModule(qtdoc, qtdeclarative)
+addModule(qtqa, qtbase)