Kudos to bhughes and QtCentre for telling me about undocumented qmake options
to specify inter-subdir deps.
Minus points for the people who think that qmake documentation is not necessary
and can be omitted :p
#
# NOTE: To change the build configuration, you have to run 'make distclean' first!
#
# NOTE: To change the build configuration, you have to run 'make distclean' first!
-
-# Set project-wide config options
-
-#CONFIG = qt warn_on release
-
-# Check build configuration
-isEmpty(BUILD) {
- BUILD = all # build everything by default
-}
-
-contains(BUILD, all) {
- BUILD += qtclient core mono
-}
+TARGETS = qtclient core mono
-contains(BUILD, mono) {
- include(targets/monolithic.pri)
- BUILD_MODS *= $${MODULES}
- BUILD_TARGETS *= monolithic
-}
-
-contains(BUILD, core) {
- include(targets/core.pri)
- BUILD_MODS *= $${MODULES}
- BUILD_TARGETS *= core
-}
+# Check build configuration
+isEmpty(BUILD): BUILD = all # build everything by default
+contains(BUILD, all): BUILD = $${TARGETS}
-contains(BUILD, qtclient) {
- include(targets/qtclient.pri)
+# Find modules and targets to build
+for(target, TARGETS): contains(BUILD, $$target) {
+ include(targets/$${target}.pri)
BUILD_MODS *= $${MODULES}
BUILD_MODS *= $${MODULES}
- BUILD_TARGETS *= qtclient
+ BUILD_TARGETS *= $$target
-# First we build contrib stuff...
-# SUBDIRS += contrib/libqxt.pro # no deps to libqxt at the moment
-
-# Then we build all needed modules...
+# Now add modules and their deps
- SUBDIRS += modules/$${mod}.pro
+ include(../src/$${mod}/$${mod}.pri)
+ SUBDIRS += mod_$${mod}
+ eval(mod_$${mod}.file = modules/$${mod}.pro)
+ eval(mod_$${mod}.makefile = Makefile.mod_$${mod}) # This prevents distclean from removing our Makefile -_-
+ for(dep, DEPMOD): eval(mod_$${mod}.depends += mod_$${dep})
+ export(mod_$${mod}.file)
+ export(mod_$${mod}.makefile)
+ export(mod_$${mod}.depends)
-# ... followed by the binaries.
for(target, BUILD_TARGETS) {
for(target, BUILD_TARGETS) {
- SUBDIRS += targets/$${target}.pro
+ include(targets/$${target}.pri)
+ SUBDIRS += $${target}
+ eval($${target}.file = targets/$${target}.pro)
+ eval($${target}.makefile = Makefile.target_$${target})
+ for(mod, MODULES): eval($${target}.depends += mod_$${mod})
+ export($${target}.file)
+ export($${target}.makefile)
+ export($${target}.depends)
include(target.pri)
RESOURCES *= ../../src/icons/icons.qrc
include(target.pri)
RESOURCES *= ../../src/icons/icons.qrc
for(mod, MODULES) {
INCLUDEPATH *= $$SRCPATH/$$mod
LIBS *= -L../modules/$$dirname(mod) -l$$basename(mod)
for(mod, MODULES) {
INCLUDEPATH *= $$SRCPATH/$$mod
LIBS *= -L../modules/$$dirname(mod) -l$$basename(mod)
- PRE_TARGETDEPS *= ../modules/$$mod
+ #PRE_TARGETDEPS *= ../modules/$$mod
}
PRE_TARGETDEPS *= ../../version.inc
}
PRE_TARGETDEPS *= ../../version.inc
DEPMOD = common
QT_MOD = core network gui
DEPMOD = common
QT_MOD = core network gui
SRCS += buffer.cpp buffersettings.cpp clientbacklogmanager.cpp treemodel.cpp networkmodel.cpp buffermodel.cpp client.cpp clientsettings.cpp clientsyncer.cpp \
mappedselectionmodel.cpp selectionmodelsynchronizer.cpp
HDRS += buffer.h buffersettings.h clientbacklogmanager.h treemodel.h networkmodel.h buffermodel.h client.h clientsettings.h clientsyncer.h quasselui.h \
SRCS += buffer.cpp buffersettings.cpp clientbacklogmanager.cpp treemodel.cpp networkmodel.cpp buffermodel.cpp client.cpp clientsettings.cpp clientsyncer.cpp \
mappedselectionmodel.cpp selectionmodelsynchronizer.cpp
HDRS += buffer.h buffersettings.h clientbacklogmanager.h treemodel.h networkmodel.h buffermodel.h client.h clientsettings.h clientsyncer.h quasselui.h \
DEPMOD =
QT_MOD = network
DEPMOD =
QT_MOD = network
SRCS += backlogmanager.cpp bufferinfo.cpp buffersyncer.cpp bufferviewconfig.cpp bufferviewmanager.cpp global.cpp identity.cpp \
logger.cpp message.cpp settings.cpp signalproxy.cpp syncableobject.cpp \
util.cpp network.cpp ircuser.cpp ircchannel.cpp
SRCS += backlogmanager.cpp bufferinfo.cpp buffersyncer.cpp bufferviewconfig.cpp bufferviewmanager.cpp global.cpp identity.cpp \
logger.cpp message.cpp settings.cpp signalproxy.cpp syncableobject.cpp \
util.cpp network.cpp ircuser.cpp ircchannel.cpp
DEPMOD = common
QT_MOD = core network sql script
DEPMOD = common
QT_MOD = core network sql script
SRCS = core.cpp corebacklogmanager.cpp corebufferviewconfig.cpp corebufferviewmanager.cpp coresession.cpp coresettings.cpp networkconnection.cpp sqlitestorage.cpp abstractsqlstorage.cpp storage.cpp basichandler.cpp \
ircserverhandler.cpp userinputhandler.cpp ctcphandler.cpp coreusersettings.cpp sessionthread.cpp sslserver.cpp
HDRS = core.h corebacklogmanager.h corebufferviewconfig.h corebufferviewmanager.h coresession.h coresettings.h networkconnection.h sqlitestorage.h abstractsqlstorage.h storage.h basichandler.h \
SRCS = core.cpp corebacklogmanager.cpp corebufferviewconfig.cpp corebufferviewmanager.cpp coresession.cpp coresettings.cpp networkconnection.cpp sqlitestorage.cpp abstractsqlstorage.cpp storage.cpp basichandler.cpp \
ircserverhandler.cpp userinputhandler.cpp ctcphandler.cpp coreusersettings.cpp sessionthread.cpp sslserver.cpp
HDRS = core.h corebacklogmanager.h corebufferviewconfig.h corebufferviewmanager.h coresession.h coresettings.h networkconnection.h sqlitestorage.h abstractsqlstorage.h storage.h basichandler.h \
-DEPMOD = uisupport common client
+DEPMOD = client common uisupport
QT_MOD = core gui network
SRCS += aboutdlg.cpp bufferwidget.cpp chatitem.cpp chatline.cpp chatline-old.cpp chatscene.cpp chatview.cpp chatwidget.cpp \
QT_MOD = core gui network
SRCS += aboutdlg.cpp bufferwidget.cpp chatitem.cpp chatline.cpp chatline-old.cpp chatscene.cpp chatview.cpp chatwidget.cpp \
{ using namespace Global;
quasselVersion = "0.2.0-alpha5-pre";
{ using namespace Global;
quasselVersion = "0.2.0-alpha5-pre";
- quasselDate = "2008-04-01";
- quasselBuild = 685;
+ quasselDate = "2008-04-02";
+ quasselBuild = 686;
//! Minimum client build number the core needs
clientBuildNeeded = 642;
//! Minimum client build number the core needs
clientBuildNeeded = 642;