X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fmain%2FCMakeLists.txt;fp=src%2Fmain%2FCMakeLists.txt;h=60efe515392af70e851bdcf2d362625b817819fd;hp=0000000000000000000000000000000000000000;hb=4ce53949ab7d52a49ae79b8817bd3aa50fada0d1;hpb=48d41896ba35eafc64b4cb00e446d6123b3502cb diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt new file mode 100644 index 00000000..60efe515 --- /dev/null +++ b/src/main/CMakeLists.txt @@ -0,0 +1,55 @@ +# Convenience function to avoid boilerplate +function(setup_executable _target _define) + set_target_properties(${_target} PROPERTIES + COMPILE_FLAGS ${_define} + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} + ) + target_link_libraries(${_target} PRIVATE ${ARGN}) + install(TARGETS ${_target} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endfunction() + +# We need to initialize the appropriate resources, so let's give our main.cpp some hints +if (EMBED_DATA) + set_source_files_properties(main.cpp PROPERTIES COMPILE_DEFINITIONS EMBED_DATA) +endif() + +# Build the executables +if (WANT_CORE) + add_executable(quasselcore main.cpp) + setup_executable(quasselcore -DBUILD_CORE Qt5::Core Quassel::Core) +endif() + +if (WANT_CLIENT OR WANT_QTCLIENT) + add_executable(quasselclient WIN32 main.cpp) + setup_executable(quasselclient -DBUILD_QTUI Qt5::Core Qt5::Gui Quassel::QtUi) + if (WITH_KDE) + target_link_libraries(quasselclient PRIVATE KF5::CoreAddons) + endif() +endif() + +if (WANT_MONO) + add_executable(quassel WIN32 main.cpp monoapplication.cpp) + setup_executable(quassel -DBUILD_MONO Qt5::Core Qt5::Gui Quassel::Core Quassel::QtUi) + if (WITH_KDE) + target_link_libraries(quassel PRIVATE KF5::CoreAddons) + endif() +endif() + +# Build bundles for MacOSX +if (APPLE) + add_custom_command(TARGET quasselclient POST_BUILD + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py + ${CMAKE_SOURCE_DIR} "Quassel Client" ${CMAKE_BINARY_DIR}/quasselclient) + + add_custom_command(TARGET quassel POST_BUILD + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py + ${CMAKE_SOURCE_DIR} "Quassel" ${CMAKE_BINARY_DIR}/quassel) + if (DEPLOY) + add_custom_command(TARGET quasselclient POST_BUILD WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Client ${CMAKE_BINARY_DIR} qsvgicon) + add_custom_command(TARGET quasselcore POST_BUILD WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Core ${CMAKE_BINARY_DIR}) + add_custom_command(TARGET quassel POST_BUILD WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makePackage.sh Mono ${CMAKE_BINARY_DIR} qsvgicon) + endif() +endif()