diff options
author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-02-20 10:33:49 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-20 22:55:09 +0100 |
commit | aeed8ce504b47985ef317f2cfcd6f715916303fb (patch) | |
tree | 3e6d7ad4b2c2a8b6c7cb37916c1319ef52dc329b | |
parent | 008943132609e1a92e500decf391bc75da320d2f (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>
-rw-r--r-- | qt.pro | 159 |
1 files changed, 50 insertions, 109 deletions
@@ -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) |