X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fmain%2FCMakeLists.txt;h=b5aa96364fa7b19fbb68b74c6be609c62a843f2c;hp=df3d765a471e48e103ae4ca371225e1b4442af23;hb=e868433618defabcbdc078745e6d19dd9573c005;hpb=b5c64cce8e7813090809a3e4de8f88e148f84392 diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index df3d765a..b5aa9636 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -8,27 +8,40 @@ function(setup_executable _target _define) 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() - if (HAVE_UMASK) - set_source_files_properties(main.cpp PROPERTIES COMPILE_DEFINITIONS HAVE_UMASK) + set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_DEFINITIONS HAVE_UMASK) endif() if (WITH_BUNDLED_ICONS) set_property(SOURCE main.cpp APPEND PROPERTY COMPILE_DEFINITIONS WITH_BUNDLED_ICONS) endif() +# Windows icon resource +if(WIN32) + if(MINGW) + find_program(WINDRES_EXECUTABLE NAMES windres) + if(WINDRES_EXECUTABLE) + exec_program(windres + ARGS "-i ${CMAKE_SOURCE_DIR}/pics/win32.rc" + "-o ${CMAKE_CURRENT_BINARY_DIR}/win32.o" + "--include-dir=${CMAKE_SOURCE_DIR}/pics" + ) + set(WIN_RC ${CMAKE_CURRENT_BINARY_DIR}/win32.o) + endif() + else() + set(WIN_RC ${CMAKE_SOURCE_DIR}/pics/win32.rc) + endif() +endif() + + # Build the executables if (WANT_CORE) - add_executable(quasselcore main.cpp) + add_executable(quasselcore main.cpp ${WIN_RC}) setup_executable(quasselcore -DBUILD_CORE Qt5::Core Quassel::Core) endif() -if (WANT_CLIENT OR WANT_QTCLIENT) - add_executable(quasselclient WIN32 main.cpp) +if (WANT_QTCLIENT) + add_executable(quasselclient WIN32 main.cpp ${WIN_RC}) setup_executable(quasselclient -DBUILD_QTUI Qt5::Core Qt5::Gui Quassel::QtUi) if (WITH_KDE) target_link_libraries(quasselclient PRIVATE KF5::CoreAddons) @@ -36,7 +49,7 @@ if (WANT_CLIENT OR WANT_QTCLIENT) endif() if (WANT_MONO) - add_executable(quassel WIN32 main.cpp monoapplication.cpp) + add_executable(quassel WIN32 main.cpp monoapplication.cpp ${WIN_RC}) setup_executable(quassel -DBUILD_MONO Qt5::Core Qt5::Gui Quassel::Core Quassel::QtUi) if (WITH_KDE) target_link_libraries(quassel PRIVATE KF5::CoreAddons) @@ -45,19 +58,29 @@ 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) + if (WANT_QTCLIENT) + 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) + endif() + if (WANT_MONO) + add_custom_command(TARGET quassel POST_BUILD + COMMAND ${CMAKE_SOURCE_DIR}/scripts/build/macosx_makebundle.py + ${CMAKE_SOURCE_DIR} "Quassel" ${CMAKE_BINARY_DIR}/quassel) + endif() - 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) + if (WANT_QTCLIENT) + 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) + endif() + if (WANT_CORE) + 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}) + endif() + if (WANT_MONO) + 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() endif()