Preliminary check-in of qmake-based build system. This is not finished yet!
authorManuel Nickschas <sputnick@quassel-irc.org>
Tue, 9 Oct 2007 20:27:45 +0000 (20:27 +0000)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 9 Oct 2007 20:27:45 +0000 (20:27 +0000)
DO NOT TOUCH - DO NOT USE - DO NOT COMPLAIN - CMake is still enabled.

20 files changed:
Makefile [deleted file]
build/devbuild.sh [deleted file]
build/modules/client.pro [new file with mode: 0644]
build/modules/common.pro [new file with mode: 0644]
build/modules/contrib/qxt.pro [new file with mode: 0644]
build/modules/core.pro [new file with mode: 0644]
build/modules/module.pri [new file with mode: 0644]
build/modules/qtgui.pro [new file with mode: 0644]
build/quassel.pro [new file with mode: 0644]
build/targets/core.pri [new file with mode: 0644]
build/targets/core.pro [new file with mode: 0644]
build/targets/monolithic.pri [new file with mode: 0644]
build/targets/monolithic.pro [new file with mode: 0644]
build/targets/target.pri [new file with mode: 0644]
quassel.pro [new file with mode: 0644]
src/client/client.pri [new file with mode: 0644]
src/common/common.pri [new file with mode: 0644]
src/contrib/qxt/qxt.pri [new file with mode: 0644]
src/core/core.pri [new file with mode: 0644]
src/qtgui/qtgui.pri [new file with mode: 0644]

diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 81821bc..0000000
--- 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 (executable)
index b108ecd..0000000
+++ /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 (file)
index 0000000..0cfe577
--- /dev/null
@@ -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 (file)
index 0000000..6242197
--- /dev/null
@@ -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 (file)
index 0000000..2403bd4
--- /dev/null
@@ -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 (file)
index 0000000..64986f6
--- /dev/null
@@ -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 (file)
index 0000000..9de04b0
--- /dev/null
@@ -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 (file)
index 0000000..d311433
--- /dev/null
@@ -0,0 +1,3 @@
+MODULE = qtgui
+include(module.pri)
+
diff --git a/build/quassel.pro b/build/quassel.pro
new file mode 100644 (file)
index 0000000..fd36dda
--- /dev/null
@@ -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 (file)
index 0000000..502a7d6
--- /dev/null
@@ -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 (file)
index 0000000..bbd1093
--- /dev/null
@@ -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 (file)
index 0000000..4e8ebd7
--- /dev/null
@@ -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 (file)
index 0000000..d8a767e
--- /dev/null
@@ -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 (file)
index 0000000..29a8f6c
--- /dev/null
@@ -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 (file)
index 0000000..3c2b264
--- /dev/null
@@ -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 (file)
index 0000000..1b2148a
--- /dev/null
@@ -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 (file)
index 0000000..f1360f9
--- /dev/null
@@ -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 (file)
index 0000000..0fdc081
--- /dev/null
@@ -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 (file)
index 0000000..03c1b8c
--- /dev/null
@@ -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 (file)
index 0000000..699a63d
--- /dev/null
@@ -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}
+}