diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index d2bf4e6b9..153cbea05 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -67,11 +67,6 @@ if(UNIX AND NOT APPLE AND NOT HAIKU) install(FILES linux/${APP_ID}.appdata.xml DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo) endif(UNIX AND NOT APPLE AND NOT HAIKU) -if(APPLE) - install(FILES macosx/Assets.car DESTINATION ${DATA_INSTALL_DIR}) - install(FILES macosx/keepassxc.icns DESTINATION ${DATA_INSTALL_DIR}) -endif() - if(WIN32) install(FILES windows/qt.conf DESTINATION ${BIN_INSTALL_DIR}) endif() diff --git a/share/macosx/Info.plist.cmake b/share/macosx/Info.plist.cmake index 59549f2cc..adbdec756 100644 --- a/share/macosx/Info.plist.cmake +++ b/share/macosx/Info.plist.cmake @@ -13,11 +13,11 @@ CFBundleExecutable ${PROGNAME} CFBundleIconFile - keepassxc.icns + ${MACOSX_BUNDLE_ICON_NAME}.icns CFBundleIconName - keepassxc + ${MACOSX_BUNDLE_ICON_NAME} CFBundleIdentifier - org.keepassxc.keepassxc + ${MACOSX_BUNDLE_IDENTIFIER} CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fcc29784d..3aa82dc30 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -421,7 +421,12 @@ if(WIN32) endif() # Main Executable Definition +add_executable(${PROGNAME} main.cpp) +target_link_libraries(${PROGNAME} keepassxc_gui) +set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON) + if(WIN32) + set_target_properties(${PROGNAME} PROPERTIES WIN32 ON) include(GenerateProductVersion) generate_product_version( WIN32_ResourceFiles @@ -432,20 +437,24 @@ if(WIN32) VERSION_PATCH ${KEEPASSXC_VERSION_PATCH} ) list(APPEND WIN32_ResourceFiles "${CMAKE_SOURCE_DIR}/share/windows/icon.rc") -endif() + target_sources(${PROGNAME} PUBLIC ${WIN32_ResourceFiles}) -add_executable(${PROGNAME} WIN32 main.cpp ${WIN32_ResourceFiles}) -target_link_libraries(${PROGNAME} keepassxc_gui) -set_target_properties(${PROGNAME} PROPERTIES ENABLE_EXPORTS ON) - -# macOS App Bundle -if(APPLE AND WITH_APP_BUNDLE) - install(FILES ${CMAKE_SOURCE_DIR}/share/macosx/embedded.provisionprofile DESTINATION ${BUNDLE_INSTALL_DIR}) - configure_file(${CMAKE_SOURCE_DIR}/share/macosx/Info.plist.cmake ${CMAKE_CURRENT_BINARY_DIR}/Info.plist) +elseif(APPLE AND WITH_APP_BUNDLE) + set(MACOSX_BUNDLE_IDENTIFIER org.keepassxc.keepassxc) + set(MACOSX_BUNDLE_ICON_NAME keepassxc) + configure_file("${CMAKE_SOURCE_DIR}/share/macosx/Info.plist.cmake" ${CMAKE_CURRENT_BINARY_DIR}/Info.plist) + install(FILES "${CMAKE_SOURCE_DIR}/share/macosx/embedded.provisionprofile" DESTINATION ${BUNDLE_INSTALL_DIR}) + set(MACOSX_BUNDLE_RESOURCE_FILES + "${CMAKE_SOURCE_DIR}/share/macosx/Assets.car" + "${CMAKE_SOURCE_DIR}/share/macosx/keepassxc.icns" + ) set_target_properties(${PROGNAME} PROPERTIES MACOSX_BUNDLE ON - MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_BINARY_DIR}/Info.plist - CPACK_BUNDLE_APPLE_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/share/macosx/keepassxc.entitlements") + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" + CPACK_BUNDLE_APPLE_ENTITLEMENTS "${CMAKE_SOURCE_DIR}/share/macosx/keepassxc.entitlements" + RESOURCE "${MACOSX_BUNDLE_RESOURCE_FILES}" + ) + target_sources(${PROGNAME} PUBLIC ${MACOSX_BUNDLE_RESOURCE_FILES}) if(QT_MAC_USE_COCOA AND EXISTS "${QT_LIBRARY_DIR}/Resources/qt_menu.nib") install(DIRECTORY "${QT_LIBRARY_DIR}/Resources/qt_menu.nib"