From: Manuel Nickschas Date: Tue, 9 Oct 2007 20:27:45 +0000 (+0000) Subject: Preliminary check-in of qmake-based build system. This is not finished yet! X-Git-Tag: 0.1.0~142 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=d7052a3218b115ab68d24ea33e670ed26afd19ce Preliminary check-in of qmake-based build system. This is not finished yet! DO NOT TOUCH - DO NOT USE - DO NOT COMPLAIN - CMake is still enabled. --- diff --git a/Makefile b/Makefile deleted file mode 100644 index 81821bcf..00000000 --- a/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# This Makefile simply runs cmake from the build directory. -# This, of course, triggers an out-of-source build. -# Binaries are going to be in build/. - -default_target: default - -default: - @echo "To start an out-of-source build, change to the build/ directory" - @echo "and run 'cmake ..' to create standard Makefiles. You can then use" - @echo "'make' from the build/ directory to compile the project." - @echo - @echo "To create KDevelop3 project files instead, run 'cmake .. -GKDevelop3'" - @echo "from the build/ directory." - @echo - @echo "Please refer to the INSTALL file for more options, such as" - @echo "client/server builds." - @echo - -run_cmake: - cd build && cmake .. && make - -build_mono_windows: - cd build && cmake -DBUILD="mono" .. -G "MinGW Makefiles" && mingw32-make - -build_windows: - cd build && cmake -DBUILD="core gui" .. -G "MinGW Makefiles" && mingw32-make - -clean: - rm -rf build/* diff --git a/build/devbuild.sh b/build/devbuild.sh deleted file mode 100755 index b108ecd0..00000000 --- a/build/devbuild.sh +++ /dev/null @@ -1,4 +0,0 @@ -cmake ../src -make - -echo You can now run './quassel'. diff --git a/build/modules/client.pro b/build/modules/client.pro new file mode 100644 index 00000000..0cfe577b --- /dev/null +++ b/build/modules/client.pro @@ -0,0 +1,3 @@ +MODULE = client +include(module.pri) + diff --git a/build/modules/common.pro b/build/modules/common.pro new file mode 100644 index 00000000..62421978 --- /dev/null +++ b/build/modules/common.pro @@ -0,0 +1,3 @@ +MODULE = common +include(module.pri) + diff --git a/build/modules/contrib/qxt.pro b/build/modules/contrib/qxt.pro new file mode 100644 index 00000000..2403bd46 --- /dev/null +++ b/build/modules/contrib/qxt.pro @@ -0,0 +1,2 @@ +MODULE = contrib/qxt +include(../module.pri) diff --git a/build/modules/core.pro b/build/modules/core.pro new file mode 100644 index 00000000..64986f6f --- /dev/null +++ b/build/modules/core.pro @@ -0,0 +1,3 @@ +MODULE = core +include(module.pri) + diff --git a/build/modules/module.pri b/build/modules/module.pri new file mode 100644 index 00000000..9de04b06 --- /dev/null +++ b/build/modules/module.pri @@ -0,0 +1,55 @@ +TEMPLATE = lib +CONFIG += staticlib + +SRCPATH = ../../src # Path to sources relative to this file + +# Set paths according to MODULE +# We need to handle MODULE definitions like contrib/foo + +MODNAME = $$basename(MODULE) +MODPATH_PREFIX = $$dirname(MODULE) +!isEmpty(MODPATH_PREFIX) { + MODPATH_PREFIX ~= s,[^/]+,.. + #sprintf($$MODPATH_PREFIX%1 + SRCPATH = $$MODPATH_PREFIX/$$SRCPATH +} + +MODPATH = $$SRCPATH/$$MODULE # Path to the module files + +# Define build directories + +OBJECTS_DIR = $${MODNAME}.tmp +MOC_DIR = $${MODNAME}.tmp +UI_DIR = $${MODNAME}.tmp + +# Load module settings (files etc.) + +include($$MODPATH/$${MODNAME}.pri) + +# Define needed Qt modules + +QT -= gui +for(qtmod, QT_MOD) { + QT *= $$qtmod +} + +# Set includepath for needed Quassel modules + +for(dep, DEPMOD) { + INCLUDEPATH *= $$SRCPATH/$$dep +} +INCLUDEPATH *= $$MODPATH # and don't forget our own dir + +# Now prefix all filenames with the correct dirname + +for(src, SRCS) { + SOURCES *= $$MODPATH/$$src +} + +for(hdr, HDRS) { + HEADERS *= $$MODPATH/$$hdr +} + +for(frm, FRMS) { + FORMS *= $$MODPATH/$$frm +} diff --git a/build/modules/qtgui.pro b/build/modules/qtgui.pro new file mode 100644 index 00000000..d311433b --- /dev/null +++ b/build/modules/qtgui.pro @@ -0,0 +1,3 @@ +MODULE = qtgui +include(module.pri) + diff --git a/build/quassel.pro b/build/quassel.pro new file mode 100644 index 00000000..fd36ddac --- /dev/null +++ b/build/quassel.pro @@ -0,0 +1,30 @@ +isEmpty(BUILD) { + BUILD = all +} +contains(BUILD, all) { + BUILD += qtgui 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 +} + +TEMPLATE = subdirs + +for(mod, BUILD_MODS) { + SUBDIRS += modules/$${mod}.pro +} + +for(target, BUILD_TARGETS) { + SUBDIRS += targets/$${target}.pro +} + +CONFIG += qt warn_on diff --git a/build/targets/core.pri b/build/targets/core.pri new file mode 100644 index 00000000..502a7d6f --- /dev/null +++ b/build/targets/core.pri @@ -0,0 +1,4 @@ +# Modules for quasselcore +MODULES = core common contrib/qxt +QT -= gui +QT += network sql diff --git a/build/targets/core.pro b/build/targets/core.pro new file mode 100644 index 00000000..bbd10934 --- /dev/null +++ b/build/targets/core.pro @@ -0,0 +1,4 @@ +TARGET = quasselcore +DEFINES += BUILD_CORE +include(core.pri) +include(target.pri) diff --git a/build/targets/monolithic.pri b/build/targets/monolithic.pri new file mode 100644 index 00000000..4e8ebd7e --- /dev/null +++ b/build/targets/monolithic.pri @@ -0,0 +1,3 @@ +# Modules for monolithic client +MODULES = core qtgui client common contrib/qxt +QT += network sql diff --git a/build/targets/monolithic.pro b/build/targets/monolithic.pro new file mode 100644 index 00000000..d8a767ee --- /dev/null +++ b/build/targets/monolithic.pro @@ -0,0 +1,4 @@ +TARGET = quassel +DEFINES += BUILD_MONO +include(monolithic.pri) +include(target.pri) diff --git a/build/targets/target.pri b/build/targets/target.pri new file mode 100644 index 00000000..29a8f6c3 --- /dev/null +++ b/build/targets/target.pri @@ -0,0 +1,10 @@ +TEMPLATE = app +SRCPATH = ../../src +OBJECTS_DIR = $${TARGET}.tmp + +for(mod, MODULES) { + INCLUDEPATH *= $$SRCPATH/$$mod + LIBS *= -L../modules/$$dirname(mod) -l$$basename(mod) +} + +SOURCES = $$SRCPATH/common/main.cpp diff --git a/quassel.pro b/quassel.pro new file mode 100644 index 00000000..3c2b2646 --- /dev/null +++ b/quassel.pro @@ -0,0 +1,3 @@ +SUBDIRS += build/quassel.pro +TEMPLATE = subdirs +CONFIG += warn_on qt thread diff --git a/src/client/client.pri b/src/client/client.pri new file mode 100644 index 00000000..1b2148ab --- /dev/null +++ b/src/client/client.pri @@ -0,0 +1,4 @@ +DEPMOD = common contrib/qxt +QT_MOD = core network gui # gui is needed just for QColor... FIXME! +SRCS = buffer.cpp buffertreemodel.cpp client.cpp clientsettings.cpp treemodel.cpp +HDRS = buffer.h buffertreemodel.h client.h clientsettings.h treemodel.h diff --git a/src/common/common.pri b/src/common/common.pri new file mode 100644 index 00000000..f1360f99 --- /dev/null +++ b/src/common/common.pri @@ -0,0 +1,4 @@ +DEPMOD = contrib/qxt +QT_MOD = network +SRCS = global.cpp ircuser.cpp logger.cpp message.cpp settings.cpp signalproxy.cpp util.cpp +HDRS = global.h ircuser.h logger.h message.h quasselui.h settings.h signalproxy.h util.h diff --git a/src/contrib/qxt/qxt.pri b/src/contrib/qxt/qxt.pri new file mode 100644 index 00000000..0fdc081b --- /dev/null +++ b/src/contrib/qxt/qxt.pri @@ -0,0 +1,5 @@ +DEPMOD = +QT_MOD = core network +SRCS = qxtmetaobject.cpp qxtnull.cpp qxtrpcpeer.cpp +HDRS = qxtboundfunction.h qxtboundfunctionbase.h qxtglobal.h qxtmetaobject.h qxtnullable.h qxtnull.h qxtpimpl.h qxtrpcpeer.h +FRMS = diff --git a/src/core/core.pri b/src/core/core.pri new file mode 100644 index 00000000..03c1b8c5 --- /dev/null +++ b/src/core/core.pri @@ -0,0 +1,4 @@ +DEPMOD = common contrib/qxt +QT_MOD = core network sql +SRCS = core.cpp coresession.cpp server.cpp serverinfo.cpp sqlitestorage.cpp storage.cpp +HDRS = core.h coresession.h server.h serverinfo.h sqlitestorage.h storage.h diff --git a/src/qtgui/qtgui.pri b/src/qtgui/qtgui.pri new file mode 100644 index 00000000..699a63d5 --- /dev/null +++ b/src/qtgui/qtgui.pri @@ -0,0 +1,18 @@ +DEPMOD = common client contrib/qxt +QT_MOD = core gui network + +SRCS = bufferview.cpp bufferviewfilter.cpp bufferwidget.cpp channelwidgetinput.cpp chatline.cpp \ + chatwidget.cpp coreconnectdlg.cpp \ + guisettings.cpp identities.cpp mainwin.cpp qtgui.cpp serverlist.cpp settingsdlg.cpp style.cpp tabcompleter.cpp + +HDRS = bufferview.h bufferviewfilter.h bufferwidget.h channelwidgetinput.h chatline.h chatwidget.h coreconnectdlg.h \ + guisettings.h identities.h mainwin.h qtgui.h serverlist.h settingsdlg.h settingspage.h style.h tabcompleter.h + + +FORMNAMES = identitiesdlg.ui identitieseditdlg.ui networkeditdlg.ui mainwin.ui nickeditdlg.ui serverlistdlg.ui \ + servereditdlg.ui coreconnectdlg.ui bufferviewwidget.ui bufferwidget.ui settingsdlg.ui \ + buffermgmtpage.ui connectionpage.ui usermgmtpage.ui + +for(ui, FORMNAMES) { + FRMS += ui/$${ui} +}