Basic implementation of indicators.
[quassel.git] / src / CMakeLists.txt
1 # Builds the three main targets
2
3 add_subdirectory(common)
4 include_directories(BEFORE common)
5 if(WANT_CORE OR WANT_MONO)
6   add_subdirectory(core)
7   include_directories(BEFORE core)
8 endif(WANT_CORE OR WANT_MONO)
9 if(WANT_QTCLIENT OR WANT_MONO)
10   add_subdirectory(client)
11   add_subdirectory(uisupport)
12   add_subdirectory(qtui)
13   include_directories(BEFORE client)
14   include_directories(BEFORE uisupport)
15   include_directories(BEFORE qtui)
16 #  if(HAVE_KDE)
17 #    add_subdirectory(kdeui)
18 #    include_directories(kdeui)
19 #    set(LINK_KDE mod_kdeui)
20 #  endif(HAVE_KDE)
21
22   if(STATIC)
23     link_directories(${QT_PLUGINS_DIR}/imageformats)
24     set(CLIENT_LIBS qjpeg qgif)
25   endif(STATIC)
26
27 endif(WANT_QTCLIENT OR WANT_MONO)
28
29 include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) # for version.gen
30
31 # Add resources. Can't be done in other subdirs apparently.
32 # Note that these variables need to contain paths relative to src/ (this dir)
33 qt4_add_resources(CLIENT_DEPS ${CLIENT_RCS})
34 qt4_add_resources(CORE_DEPS ${CORE_RCS})
35 qt4_add_resources(COMMON_DEPS ${COMMON_RCS})
36
37 if(WANT_CORE)
38   setup_qt4_variables(NETWORK SCRIPT SQL)
39   add_executable(quasselcore common/main.cpp ${COMMON_DEPS} ${CORE_DEPS})
40   add_dependencies(quasselcore i18n genversion_run)
41   set_target_properties(quasselcore PROPERTIES
42                                     COMPILE_FLAGS "-DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_CORE"
43                                     OUTPUT_NAME ../quasselcore)
44   target_link_libraries(quasselcore mod_core mod_common
45                                     ${QUASSEL_QT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES})
46   install(TARGETS quasselcore RUNTIME DESTINATION ${BIN_INSTALL_DIR})
47 endif(WANT_CORE)
48
49 if(WANT_QTCLIENT)
50   setup_qt4_variables(${LINK_DBUS} GUI NETWORK ${LINK_WEBKIT})
51   add_executable(quasselclient WIN32 common/main.cpp ${COMMON_DEPS} ${CLIENT_DEPS})
52   add_dependencies(quasselclient i18n genversion_run)
53   set_target_properties(quasselclient PROPERTIES
54                                       COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DBUILD_QTUI"
55                                       OUTPUT_NAME ../quasselclient)
56   target_link_libraries(quasselclient ${LINK_KDE} mod_qtui mod_uisupport mod_client mod_common ${CLIENT_LIBS}
57                                       ${QUASSEL_QT_LIBRARIES} ${QUASSEL_KDE_LIBRARIES} ${QUASSEL_SSL_LIBRARIES} ${PHONON_LIBS} ${INDICATEQT_LIBRARIES})
58   install(TARGETS quasselclient RUNTIME DESTINATION ${BIN_INSTALL_DIR})
59 endif(WANT_QTCLIENT)
60
61 if(WANT_MONO)
62   setup_qt4_variables(${LINK_DBUS} GUI NETWORK SCRIPT SQL ${LINK_WEBKIT})
63   qt4_wrap_cpp(MOC qtui/monoapplication.h)
64   add_executable(quassel WIN32 common/main.cpp qtui/monoapplication.cpp ${MOC} ${COMMON_DEPS} ${CLIENT_DEPS} ${CORE_DEPS})
65   add_dependencies(quassel i18n genversion_run)
66   set_target_properties(quassel PROPERTIES
67                                 COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_MONO"
68                                 OUTPUT_NAME ../quassel)
69   target_link_libraries(quassel mod_qtui mod_uisupport mod_client mod_core mod_common ${CLIENT_LIBS}
70                                 ${QUASSEL_QT_LIBRARIES} ${QUASSEL_KDE_LIBRARIES} ${QUASSEL_SSL_LIBRARIES} ${PHONON_LIBS} ${INDICATEQT_LIBRARIES})
71   install(TARGETS quassel RUNTIME DESTINATION ${BIN_INSTALL_DIR})
72 endif(WANT_MONO)
73
74 # Build bundles for MacOSX
75 if(APPLE)
76   add_custom_command(TARGET quasselclient POST_BUILD
77                      COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py
78                              ${CMAKE_SOURCE_DIR} "Quassel Client" ../quasselclient)
79   add_custom_command(TARGET quassel POST_BUILD
80                      COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py
81                              ${CMAKE_SOURCE_DIR} "Quassel" ../quassel)
82   if(DEPLOY)
83     add_custom_command(TARGET quasselclient POST_BUILD
84                        COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Client ..)
85     add_custom_command(TARGET quasselcore POST_BUILD
86                        COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Core ..)
87   endif(DEPLOY)
88 endif(APPLE)