-# FIXME: Add icons for windows as soon as we have merged with trunk (which has reorganized
-# the icon files):
-# Simply add the .rc file to the targets
-
-# Here comes the dirty part. Our targets need different Qt4 modules, i.e. different libs
-# and defines. We can't simply include UseQt4 several times, since definitions add up.
-# We workaround this by using our own macro to figure out what to add.
-
-# This macro sets variables for additional Qt modules.
-macro(setup_qt4_variables)
- set(QUASSEL_QT_DEFINITIONS ${QT_DEFINITIONS})
- set(QUASSEL_QT_LIBRARIES )
- foreach(qtmod ${ARGV})
- # This needs to be a string, not a list, otherwise set_target_properties screws up...
- set(QUASSEL_QT_DEFINITIONS "${QUASSEL_QT_DEFINITIONS} -DQT_${qtmod}_LIB")
- 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})
-endmacro(setup_qt4_variables)
-
-# Now we have everything, so just glue the right pieces together :)
-if(BUILD_CORE)
- setup_qt4_variables(NETWORK SCRIPT SQL)
- add_executable(quasselcore ${CMAKE_SOURCE_DIR}/src/common/main.cpp
- ${RC_SQL} ${RC_I18N} ${WIN32_RC})
- set_target_properties(quasselcore PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_DEFINITIONS} -DBUILD_CORE")
- target_link_libraries(quasselcore mod_core mod_common ${QUASSEL_QT_LIBRARIES})
-endif(BUILD_CORE)
-
-if(BUILD_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})
- set_target_properties(quasselclient PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_DEFINITIONS} -DBUILD_QTUI")
- target_link_libraries(quasselclient mod_qtui mod_uisupport mod_client mod_common ${QUASSEL_QT_LIBRARIES})
-endif(BUILD_QTCLIENT)
-
-if(BUILD_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})
- set_target_properties(quassel PROPERTIES COMPILE_FLAGS "${QUASSEL_QT_DEFINITIONS} -DBUILD_MONO")
- target_link_libraries(quassel mod_qtui mod_uisupport mod_client mod_core mod_common ${QUASSEL_QT_LIBRARIES})
-endif(BUILD_MONO)
+# This is dirty, but I haven't found a cleaner way to ensure that the generated .qrc files
+# (which will be removed with make clean) are regenerated :/
+set_directory_properties(PROPERTIES
+ ADDITIONAL_MAKE_CLEAN_FILES CMakeCache.txt)
+
+# 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})
+
+get_target_property(GENVERSION_EXECUTABLE genversion LOCATION)
+add_custom_target(genversion_run ALL ${GENVERSION_EXECUTABLE}
+ ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/src/version.gen)
+add_dependencies(genversion_run genversion)
+
+# Decide what to do with icons
+if(WANT_QTCLIENT OR WANT_MONO)
+ if(QUASSEL_ICONS MATCHES "External")
+ message(STATUS "Install Quassel icons to ${CMAKE_INSTALL_PREFIX}/share/apps/quassel")
+ else(QUASSEL_ICONS MATCHES "External")
+ set(QUASSEL_ICONS "Builtin")
+ message(STATUS "Compile Quassel icons into the binary")
+ endif(QUASSEL_ICONS MATCHES "External")
+
+ if(OXYGEN_ICONS MATCHES "External")
+ message(STATUS "Use system-installed Oxygen icon theme")
+ else(OXYGEN_ICONS MATCHES "External")
+ set(OXYGEN_ICONS "Builtin")
+ message(STATUS "Compile Oxygen icon theme subset into the binary")
+ endif(OXYGEN_ICONS MATCHES "External")
+endif(WANT_QTCLIENT OR WANT_MONO)
+
+# These variables will be added to the main targets (CORE, QTCLIENT, MONO)
+
+set(COMMON_DEPS ${RC_WIN32})
+set(CORE_DEPS )
+set(CLIENT_DEPS )
+set(KDE_DEPS )
+
+# Add needed subdirs - the order is important, since src needs some vars set by other dirs
+add_subdirectory(data)
+add_subdirectory(icons)
+#add_subdirectory(pics)
+add_subdirectory(i18n)
+add_subdirectory(src)