Generate icons correctly on macOS

This commit is contained in:
Berkus Decker 2017-11-27 03:41:31 +02:00
parent 1525413c90
commit 559c381e68
2 changed files with 20 additions and 4 deletions

View File

@ -566,11 +566,25 @@ endif()
add_definitions(-DTDESKTOP_DISABLE_CRASH_REPORTS) add_definitions(-DTDESKTOP_DISABLE_CRASH_REPORTS)
if (APPLE) if (APPLE)
set(MACOSX_BUNDLE_ICON_FILE Icon.iconset) set(MACOSX_BUNDLE_ICON_FILE Icon.icns)
set_source_files_properties("Telegram/Images.xcassets/${MACOSX_BUNDLE_ICON_FILE}"
add_custom_command(
COMMENT "Generating icon file"
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/${MACOSX_BUNDLE_ICON_FILE}
COMMAND
iconutil -c icns -o ${CMAKE_CURRENT_BINARY_DIR}/${MACOSX_BUNDLE_ICON_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets/Icon.iconset/
WORKING_DIRECTORY .
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets/Icon.iconset
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/Telegram/Images.xcassets/Icon.iconset
)
add_custom_target(iconset_output
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${MACOSX_BUNDLE_ICON_FILE})
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${MACOSX_BUNDLE_ICON_FILE}
PROPERTIES PROPERTIES
MACOSX_PACKAGE_LOCATION Resources) MACOSX_PACKAGE_LOCATION Resources)
set(APPLE_BUNDLE_SRC "Telegram/Images.xcassets/${MACOSX_BUNDLE_ICON_FILE}") set(APPLE_BUNDLE_SRC ${CMAKE_CURRENT_BINARY_DIR}/${MACOSX_BUNDLE_ICON_FILE})
endif() endif()
add_executable(Telegram WIN32 MACOSX_BUNDLE add_executable(Telegram WIN32 MACOSX_BUNDLE
@ -603,6 +617,8 @@ target_link_libraries(Telegram
add_dependencies(Telegram boxes_styles_output) add_dependencies(Telegram boxes_styles_output)
if (APPLE) if (APPLE)
add_dependencies(Telegram iconset_output)
set_target_properties(Telegram set_target_properties(Telegram
PROPERTIES PROPERTIES
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Telegram.plist MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Telegram.plist

View File

@ -24,7 +24,7 @@
<key>CFBundleTypeRole</key> <key>CFBundleTypeRole</key>
<string>Viewer</string> <string>Viewer</string>
<key>CFBundleURLIconFile</key> <key>CFBundleURLIconFile</key>
<string>Icon.icns</string> <string>${MACOSX_BUNDLE_ICON_FILE}</string>
<key>CFBundleURLName</key> <key>CFBundleURLName</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleURLSchemes</key> <key>CFBundleURLSchemes</key>