X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2FCMakeLists.txt;h=19de1c4ade3462385aede91263b20ea71192512a;hp=31227039be6bef1cd7403b6ab933b8383b33b469;hb=2ee32e7f7707349d12c98181bbe6842f6d19f60e;hpb=15ee1478137bc748e27b0b06537973d8df04b9d7 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 31227039..19de1c4a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -6,44 +6,45 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.4.3 FATAL_ERROR) # Select if Quassel should be built in client, server or monolithic mode SET(BUILD "mono" CACHE STRING "Defines which Quassel parts are to be built. Can contain 'core', 'gui' and/or 'monolithic' (which is the default), or 'all' to build everything.") SET(BUILD_CORE ) -SET(BUILD_GUI ) +SET(BUILD_QTGUI ) SET(BUILD_MONO ) IF(BUILD MATCHES "core" OR BUILD MATCHES "all") SET(BUILD_CORE true) MESSAGE("Building Quassel core.") ENDIF(BUILD MATCHES "core" OR BUILD MATCHES "all") IF(BUILD MATCHES "gui" OR BUILD MATCHES "all") - SET(BUILD_GUI true) - MESSAGE("Building Quassel GUI.") + SET(BUILD_QTGUI true) + MESSAGE("Building Quassel GUI for Qt.") ENDIF(BUILD MATCHES "gui" OR BUILD MATCHES "all") IF(BUILD MATCHES "mono" OR BUILD MATCHES "all") SET(BUILD_MONO true) MESSAGE("Building monolithic Quassel.") ENDIF(BUILD MATCHES "mono" OR BUILD MATCHES "all") -IF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_GUI) +IF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_QTGUI) MESSAGE(FATAL_ERROR "\nYou have not selected which parts of Quassel I should build. Aborting.\nRun 'cmake -DBUILD=', where contains one or more of 'core', 'gui' or 'monolithic', or 'all' to build everything.\n") -ENDIF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_GUI) +ENDIF(NOT BUILD_MONO AND NOT BUILD_CORE AND NOT BUILD_QTGUI) -IF(BUILD_CORE OR BUILD_GUI) - MESSAGE(FATAL_ERROR "\nBuilding of standalone core or GUI not supported at this time. Please check back later.\n") -ENDIF(BUILD_CORE OR BUILD_GUI) +#IF(BUILD_CORE OR BUILD_QTGUI) +# MESSAGE(FATAL_ERROR "\nBuilding of standalone core or GUI not supported at this time. Please check back later.\n") +#ENDIF(BUILD_CORE OR BUILD_QTGUI) SET(CMAKE_BUILD_TYPE Debug) +SET(GCC_WARN "-Wall -Wextra -ansi -Wno-unused-parameter") # may not be portable! # Define files -SET(quassel_mono_SRCS common/main_mono.cpp) -SET(quassel_core_SRCS common/main_core.cpp) -SET(quassel_gui_SRCS common/main_gui.cpp ${common_SRCS}) +SET(quassel_mono_SRCS common/build_mono.cpp) +SET(quassel_core_SRCS common/build_core.cpp) +SET(quassel_qtgui_SRCS common/build_qtgui.cpp) SET(quassel_RCCS images/icons.qrc) -SET(quassel_DIRS common qtgui core) +SET(quassel_DIRS common client core qtgui) # Build correct absolute paths for subdirs to include SET(SDIRS "") FOREACH(dir ${quassel_DIRS}) SET(SDIRS ${SDIRS} "${CMAKE_CURRENT_SOURCE_DIR}/${dir}") ENDFOREACH(dir) -INCLUDE_DIRECTORIES(${SDIRS} client plugins) -#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) +INCLUDE_DIRECTORIES(${SDIRS} plugins contrib/qxt) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/qtgui) # so that ui files are found # We need Qt4 support. SET(QT_MIN_VERSION "4.3.0") # 4.3 is required for SSL, crypto and some other stuff @@ -53,12 +54,16 @@ FIND_PACKAGE(Qt4 REQUIRED) SET(QT_USE_QTXML true) SET(QT_USE_QTSQL true) SET(QT_USE_QTNETWORK true) +SET(QT_USE_QTUITOOLS true) SET(QT_DONT_USE_QTGUI true) # This is added later if GUI is requested INCLUDE(${QT_USE_FILE}) +ADD_DEFINITIONS(${GCC_WARN}) + # Define subdirs. CMake complains if a directory is added twice, so make sure this # does not happen in any combination of the requested targets. +ADD_SUBDIRECTORY(contrib/qxt) ADD_SUBDIRECTORY(common) IF(BUILD_CORE) ADD_SUBDIRECTORY(core) @@ -72,35 +77,33 @@ QT4_ADD_RESOURCES(_RCCS ${quassel_RCCS}) SET(TARGET_LIST ) IF(BUILD_CORE) - ADD_DEFINITIONS(-DBUILD_CORE) ADD_EXECUTABLE(quasselcore ${quassel_core_SRCS} ${_RCCS}) - TARGET_LINK_LIBRARIES(quasselcore core common ${QT_LIBRARIES}) + TARGET_LINK_LIBRARIES(quasselcore common core ${QT_LIBRARIES}) SET(TARGET_LIST ${TARGET_LIST} quasselcore) ENDIF(BUILD_CORE) -IF(BUILD_GUI OR BUILD_MONO) # OK, now we need QtGui! +IF(BUILD_QTGUI OR BUILD_MONO) # OK, now we need QtGui! REMOVE_DEFINITIONS(-DQT_CORE_LIB -DQT_GUI_LIB ${QT_DEFINITIONS}) SET(QT_DONT_USE_QTGUI "") SET(QT_INCLUDE_DIR "") SET(QT_LIBRARIES "") INCLUDE(${QT_USE_FILE}) + ADD_SUBDIRECTORY(client) ADD_SUBDIRECTORY(qtgui) IF(BUILD_MONO) - ADD_DEFINITIONS(-DBUILD_MONO) ADD_EXECUTABLE(quassel ${quassel_mono_SRCS} ${_RCCS}) - TARGET_LINK_LIBRARIES(quassel qtgui core common ${QT_LIBRARIES}) + TARGET_LINK_LIBRARIES(quassel common client core qtgui ${QT_LIBRARIES}) SET(TARGET_LIST ${TARGET_LIST} quassel) ENDIF(BUILD_MONO) - IF(BUILD_GUI) - ADD_DEFINITIONS(-DBUILD_GUI) - ADD_EXECUTABLE(quasselgui ${quassel_gui_SRCS} ${_RCCS}) - TARGET_LINK_LIBRARIES(quasselgui qtgui common ${QT_LIBRARIES}) - SET(TARGET_LIST ${TARGET_LIST} quasselgui) - ENDIF(BUILD_GUI) + IF(BUILD_QTGUI) + ADD_EXECUTABLE(quasselclient ${quassel_qtgui_SRCS} ${_RCCS}) + TARGET_LINK_LIBRARIES(quasselclient common client qtgui ${QT_LIBRARIES}) + SET(TARGET_LIST ${TARGET_LIST} quasselclient) + ENDIF(BUILD_QTGUI) -ENDIF(BUILD_GUI OR BUILD_MONO) +ENDIF(BUILD_QTGUI OR BUILD_MONO) INSTALL(TARGETS ${TARGET_LIST} RUNTIME DESTINATION bin