X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=CMakeLists.txt;h=d23405d10536fa3dbddc517cbbbb19bcdebacbbb;hp=cf1a80beb5afae5280dfa2a688615b9a6fbba17d;hb=862bfcc856d62e62617bcd3f43572968a54bb332;hpb=b49776c9ad0154988d28b9cba2bdae495f098399 diff --git a/CMakeLists.txt b/CMakeLists.txt index cf1a80be..d23405d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,15 @@ cmake_minimum_required(VERSION 2.4.7 FATAL_ERROR) # with 2.4, so... DUH! # cmake_policy(SET CMP0003 OLD) # suppress linker warnings +# Various options and variables that can be set on the command line +option(WANT_CORE "Build the core (server) binary" ON) +option(WANT_QTCLIENT "Build the Qt4 GUI client binary" ON) +option(WANT_MONO "Build the monolithic (all-in-one) binary" ON) + +set(STATIC 0 CACHE BOOL "Enable static building (might not be portable)") +set(QT "" CACHE STRING "Path to a Qt installation to use instead of the system Qt") +set(SPUTDEV CACHE STRING "Do not use!") + # Temporary if(STATICWIN) set(STATIC 1) @@ -43,10 +52,6 @@ endif(ansi) set(QT_MIN_VERSION "4.3.0") -option(WANT_CORE "Build the core (server) binary" ON) -option(WANT_QTCLIENT "Build the Qt4 GUI client binary" ON) -option(WANT_MONO "Build the monolithic (all-in-one) binary" ON) - # Enable mostly b0rked stuff (new ChatView), do not enable this unless you know what you do... if(SPUTDEV) add_definitions(-DSPUTDEV) @@ -56,11 +61,11 @@ endif(SPUTDEV) find_package(OpenSSL) # Select a Qt installation here, if you don't want to use system Qt -if(DEFINED QT) +if(QT) # FindQt4 will look for the qmake binary in $PATH, so we just prepend the Qt dir set(ENV{PATH} ${QT}/bin:$ENV{PATH}) #SET(QT_QMAKE_EXECUTABLE ${QT}/bin/qmake CACHE FILEPATH "" FORCE) -endif(DEFINED QT) +endif(QT) # Now that we have the correct $PATH, lets find Qt! find_package(Qt4 REQUIRED) @@ -132,7 +137,10 @@ endif(WIN32) # This macro sets variables for additional Qt modules. macro(setup_qt4_variables) set(QUASSEL_QT_LIBRARIES ) - foreach(qtmod CORE ${ARGV}) + IF(WIN32) + set(MAIN MAIN) + ENDIF(WIN32) + foreach(qtmod CORE ${ARGV} ${MAIN}) set(QUASSEL_QT_LIBRARIES ${QUASSEL_QT_LIBRARIES} ${QT_QT${qtmod}_LIBRARY} ${QT_${qtmod}_LIB_DEPENDENCIES}) endforeach(qtmod ${ARGV}) set(QUASSEL_QT_LIBRARIES ${QUASSEL_QT_LIBRARIES} ${QT_LIBRARIES}) @@ -151,8 +159,8 @@ endif(WANT_CORE) if(WANT_QTCLIENT) setup_qt4_variables(GUI NETWORK) - add_executable(quasselclient ${CMAKE_SOURCE_DIR}/src/common/main.cpp - ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_I18N} ${WIN32_RC}) + add_executable(quasselclient WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp + ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_I18N} ${WIN32_RC}) set_target_properties(quasselclient PROPERTIES COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DBUILD_QTUI") target_link_libraries(quasselclient mod_qtui mod_uisupport mod_client mod_common @@ -161,8 +169,8 @@ endif(WANT_QTCLIENT) if(WANT_MONO) setup_qt4_variables(GUI NETWORK SCRIPT SQL) - add_executable(quassel ${CMAKE_SOURCE_DIR}/src/common/main.cpp - ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_SQL} ${RC_I18N} ${WIN32_RC}) + add_executable(quassel WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp + ${RC_ICONS} ${RC_QUASSEL_ICONS} ${RC_SQL} ${RC_I18N} ${WIN32_RC}) set_target_properties(quassel PROPERTIES COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_MONO") target_link_libraries(quassel mod_qtui mod_uisupport mod_client mod_core mod_common