Make compile on amd64 and friends
[quassel.git] / CMakeLists.txt
index 69945fc..c824609 100644 (file)
@@ -49,19 +49,8 @@ set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
 
 # Enable various flags on gcc
 if(CMAKE_COMPILER_IS_GNUCXX)
-  include(CheckCXXCompilerFlag)
-  check_cxx_compiler_flag(-Wall HAVE_WALL)
-  if(HAVE_WALL)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
-  endif(HAVE_WALL)
-  check_cxx_compiler_flag(-Wextra HAVE_WEXTRA)
-  if(HAVE_WEXTRA)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra")
-  endif(HAVE_WEXTRA)
-  check_cxx_compiler_flag(-ansi HAVE_ANSI)
-  if(HAVE_ANSI)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi")
-  endif(HAVE_ANSI)
+  # Let's just hope that all gccs support these options and skip the tests...
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi -Wall -Wextra -Wnon-virtual-dtor")
 endif(CMAKE_COMPILER_IS_GNUCXX)
 
 set(QT_MIN_VERSION "4.4.0")
@@ -112,7 +101,6 @@ if(HAVE_EXECINFO)
   add_definitions(-DHAVE_EXECINFO)
 endif(HAVE_EXECINFO)
 
-
 # Select a Qt installation here, if you don't want to use system Qt
 if(QT)
   # FindQt4 will look for the qmake binary in $PATH, so we just prepend the Qt dir
@@ -126,31 +114,48 @@ set(QT_DONT_USE_QTGUI 1)
 include(${QT_USE_FILE})
 include_directories(${QT_INCLUDES})
 
-# Set up OpenSSL
+# Setup OpenSSL
 if(WITH_OPENSSL)
   find_package(OpenSSL)
+else(WITH_OPENSSL)
+  message(STATUS "Disabling OpenSSL support")
 endif(WITH_OPENSSL)
+
 if(OPENSSL_FOUND)
   if(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL")
+    message(STATUS "Found OpenSSL support in Qt")
     add_definitions(-DHAVE_SSL)
     set(HAVE_SSL true)
+    set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_SSL)
+  else(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL")
+    message(STATUS "No OpenSSL support found in Qt, disabling")
   endif(NOT QT_DEFINITIONS MATCHES "QT_NO_OPENSSL")
 else(OPENSSL_FOUND)
   add_definitions(-DQT_NO_OPENSSL)
 endif(OPENSSL_FOUND)
 
-if(WITH_DBUS AND QT_QTDBUS_FOUND)
-  add_definitions(-DHAVE_DBUS)
-  set(LINK_DBUS DBUS)
-  set(HAVE_DBUS true)
-endif(WITH_DBUS AND QT_QTDBUS_FOUND)
+# Setup D-Bus support
+if(WITH_DBUS)
+  if(QT_QTDBUS_FOUND)
+    message(STATUS "Found QtDBus, enabling D-Bus support")
+    add_definitions(-DHAVE_DBUS)
+    set(LINK_DBUS DBUS)
+    set(HAVE_DBUS true)
+    set(MOC_DEFINES ${MOC_DEFINES} -DHAVE_DBUS)
+  else(QT_QTDBUS_FOUND)
+    message(STATUS "QtDBus not found, disabling D-Bus support")
+  endif(QT_QTDBUS_FOUND)
+else(WITH_DBUS)
+  message(STATUS "Disabling D-Bus support")
+endif(WITH_DBUS)
 
 # We need to create a version.gen
 # For this, we create our genversion binary and make sure it is run every time.
 add_executable(genversion ${CMAKE_SOURCE_DIR}/src/common/genversion.cpp)
 target_link_libraries(genversion ${QT_LIBRARIES} ${QT_CORE_LIB_DEPENDENCIES})
 
-add_custom_target(genversion_run ALL ${CMAKE_BINARY_DIR}/genversion
+get_target_property(GENVERSION_EXECUTABLE genversion LOCATION)
+add_custom_target(genversion_run ALL ${GENVERSION_EXECUTABLE}
                   ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/src/common/version.gen)
 add_dependencies(genversion_run genversion)
 
@@ -223,7 +228,7 @@ endmacro(setup_qt4_variables)
 # Now we have everything, so just glue the right pieces together :)
 if(WANT_CORE)
   setup_qt4_variables(NETWORK SCRIPT SQL)
-  add_executable(quasselcore ${CMAKE_SOURCE_DIR}/src/common/main.cpp
+  add_executable(quasselcore src/common/main.cpp
                              ${RC_SQL} ${RC_I18N} ${WIN32_RC})
   set_target_properties(quasselcore PROPERTIES 
                                     COMPILE_FLAGS "-DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_CORE")
@@ -233,7 +238,7 @@ endif(WANT_CORE)
 
 if(WANT_QTCLIENT)
   setup_qt4_variables(${LINK_DBUS} GUI NETWORK)
-  add_executable(quasselclient WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp
+  add_executable(quasselclient WIN32 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")
@@ -243,7 +248,7 @@ endif(WANT_QTCLIENT)
 
 if(WANT_MONO)
   setup_qt4_variables(${LINK_DBUS} GUI NETWORK SCRIPT SQL)
-  add_executable(quassel WIN32 ${CMAKE_SOURCE_DIR}/src/common/main.cpp
+  add_executable(quassel WIN32 src/common/main.cpp src/qtui/monoapplication.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")