Major redesign of the build system. Also allow icons to be installed optionally:
[quassel.git] / src / CMakeLists.txt
1 # Builds the three main targets
2
3 add_subdirectory(common)
4 include_directories(common)
5 if(WANT_CORE OR WANT_MONO)
6   add_subdirectory(core)
7   include_directories(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(client)
14   include_directories(uisupport)
15   include_directories(qtui)
16 endif(WANT_QTCLIENT OR WANT_MONO)
17
18 if(WANT_CORE)
19   setup_qt4_variables(NETWORK SCRIPT SQL)
20   add_executable(quasselcore common/main.cpp ${COMMON_DEPS} ${CORE_DEPS})
21   set_target_properties(quasselcore PROPERTIES
22                                     COMPILE_FLAGS "-DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_CORE")
23   target_link_libraries(quasselcore mod_core mod_common
24                                     ${QUASSEL_QT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES})
25   install(TARGETS quasselcore RUNTIME DESTINATION ${BIN_INSTALL_DIR})
26 endif(WANT_CORE)
27
28 if(WANT_QTCLIENT)
29   setup_qt4_variables(${LINK_DBUS} GUI NETWORK)
30   add_executable(quasselclient WIN32 common/main.cpp ${COMMON_DEPS} ${CLIENT_DEPS})
31   set_target_properties(quasselclient PROPERTIES
32                                       COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DBUILD_QTUI")
33   target_link_libraries(quasselclient mod_qtui mod_uisupport mod_client mod_common
34                                       ${QUASSEL_QT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES})
35   install(TARGETS quasselclient RUNTIME DESTINATION ${BIN_INSTALL_DIR})
36 endif(WANT_QTCLIENT)
37
38 if(WANT_MONO)
39   setup_qt4_variables(${LINK_DBUS} GUI NETWORK SCRIPT SQL)
40   add_executable(quassel WIN32 common/main.cpp qtui/monoapplication.cpp ${COMMON_DEPS} ${CLIENT_DEPS} ${CORE_DEPS})
41   set_target_properties(quassel PROPERTIES
42                                 COMPILE_FLAGS "-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DBUILD_MONO")
43   target_link_libraries(quassel mod_qtui mod_uisupport mod_client mod_core mod_common
44                                 ${QUASSEL_QT_LIBRARIES} ${QUASSEL_SSL_LIBRARIES})
45   install(TARGETS quassel RUNTIME DESTINATION ${BIN_INSTALL_DIR})
46 endif(WANT_MONO)
47
48 # Build bundles for MacOSX
49 if(APPLE)
50   add_custom_command(TARGET quasselclient POST_BUILD
51                      COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py
52                              ${CMAKE_SOURCE_DIR} "Quassel Client" quasselclient)
53   add_custom_command(TARGET quassel POST_BUILD
54                      COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py
55                              ${CMAKE_SOURCE_DIR} "Quassel" quassel)
56   if(DEPLOY)
57     add_custom_command(TARGET quasselclient POST_BUILD
58                        COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Client)
59     add_custom_command(TARGET quasselcore POST_BUILD
60                        COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Core)
61   endif(DEPLOY)
62 endif(APPLE)