3 # CMAKE_MINIMUM_REQUIRED(VERSION 2.4.2)
5 # Select if Quassel should be built in client, server or monolithic mode
6 SET(BUILD "mono" CACHE STRING "Defines which Quassel parts are to be built. Can contain 'core', 'gui' and/or 'monolithic' (which is the default).")
10 IF(BUILD MATCHES "core")
12 MESSAGE(STATUS "Building Quassel core.")
13 ENDIF(BUILD MATCHES "core")
14 IF(BUILD MATCHES "gui")
16 MESSAGE(STATUS "Building Quassel GUI.")
17 ENDIF(BUILD MATCHES "gui")
18 IF(BUILD MATCHES "mono")
20 MESSAGE(STATUS "Building monolithic Quassel.")
21 ENDIF(BUILD MATCHES "mono")
22 IF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_GUI)
23 MESSAGE(FATAL_ERROR "You have not selected which parts of Quassel I should build. Aborting.\nRun 'cmake -DBUILD=<part>', where <part> contains one or more of 'core', 'gui' or 'monolithic'.")
24 ENDIF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_GUI)
27 SET(quassel_mono_SRCS main/main_mono.cpp)
28 SET(quassel_core_SRCS main/main_core.cpp)
29 #SET(quassel_gui_SRCS main/main_gui.cpp ${common_SRCS})
30 SET(quassel_RCCS images/icons.qrc)
31 SET(quassel_DIRS main gui core network)
33 # Build correct absolute paths for subdirs to include
35 FOREACH(dir ${quassel_DIRS})
36 SET(SDIRS ${SDIRS} "${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
38 INCLUDE_DIRECTORIES(${SDIRS})
40 # We need Qt4 support.
41 FIND_PACKAGE(Qt4 REQUIRED)
43 # Set needed libraries
44 SET(QT_USE_QTXML true)
45 SET(QT_USE_QTNETWORK true)
46 SET(QT_DONT_USE_QTGUI true) # This is added later if GUI is requested
47 INCLUDE(${QT_USE_FILE})
49 ADD_SUBDIRECTORY(main)
50 QT4_ADD_RESOURCES(_RCCS ${quassel_RCCS})
53 ADD_DEFINITIONS(-DBUILD_CORE)
54 ADD_SUBDIRECTORY(network)
55 ADD_SUBDIRECTORY(core)
56 ADD_EXECUTABLE(quasselcore ${quassel_core_SRCS} ${_RCCS})
57 TARGET_LINK_LIBRARIES(quasselcore core network main ${QT_LIBRARIES})
60 IF(BUILD_GUI OR BUILD_MONO) # OK, now we need QtGui!
61 REMOVE_DEFINITIONS(-DQT_CORE_LIB -DQT_GUI_LIB ${QT_DEFINITIONS})
62 SET(QT_DONT_USE_QTGUI "")
63 SET(QT_INCLUDE_DIR "")
65 INCLUDE(${QT_USE_FILE})
68 ADD_DEFINITIONS(-DBUILD_MONO)
70 ADD_SUBDIRECTORY(network)
71 ADD_SUBDIRECTORY(core)
72 ADD_EXECUTABLE(quassel ${quassel_mono_SRCS} ${_RCCS})
73 TARGET_LINK_LIBRARIES(quassel gui core network main ${QT_LIBRARIES})
77 ADD_DEFINITIONS(-DBUILD_GUI)
79 ADD_EXECUTABLE(quasselgui ${quassel_gui_SRCS} ${_RCCS})
80 TARGET_LINK_LIBRARIES(quasselgui gui main ${QT_LIBRARIES})
83 ENDIF(BUILD_GUI OR BUILD_MONO)