From: Pierre Ossman Date: Wed, 11 May 2022 10:39:58 +0000 (+0200) Subject: Automatically generate Windows icon file X-Git-Tag: v1.12.90~35^2~2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=df8eddfae66e3ead8ed0707cb5a6bdc97a319d75;p=tigervnc.git Automatically generate Windows icon file --- diff --git a/media/CMakeLists.txt b/media/CMakeLists.txt index 4bed4b6b..248e2213 100644 --- a/media/CMakeLists.txt +++ b/media/CMakeLists.txt @@ -1,14 +1,16 @@ -set(ICON_SIZES 16 22 24 32 48 64 128) +set(LINUX_ICON_SIZES 16 22 24 32 48 64 128) +set(WINDOWS_ICON_SIZES 16 24 32 48 256) find_program(CONVERT_EXECUTABLE convert) if(CONVERT_EXECUTABLE) - foreach(SIZE ${ICON_SIZES}) + set(ICON_FILES icons/tigervnc.ico) + foreach(SIZE ${LINUX_ICON_SIZES}) list(APPEND ICON_FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png) endforeach() add_custom_target(icons DEPENDS ${ICON_FILES}) - foreach(SIZE ${ICON_SIZES}) + foreach(SIZE ${LINUX_ICON_SIZES} ${WINDOWS_ICON_SIZES}) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc_${SIZE}.svg) set(ICON_SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc_${SIZE}.svg) else() @@ -21,4 +23,18 @@ if(CONVERT_EXECUTABLE) DEPENDS ${ICON_SRC_FILE} COMMENT "Generating icons/tigervnc_${SIZE}.png") endforeach() + + foreach(SIZE ${WINDOWS_ICON_SIZES}) + if(${SIZE} LESS_EQUAL 32) + list(APPEND ICO_LEGACY \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png -depth 4 -colors 16 \\\)) + list(APPEND ICO_LEGACY \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png -depth 8 -colors 256 \\\)) + endif() + list(APPEND ICO_NORMAL \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png \\\)) + list(APPEND ICO_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png) + endforeach() + add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.ico + COMMAND ${CONVERT_EXECUTABLE} ${ICO_LEGACY} ${ICO_NORMAL} + ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.ico + DEPENDS ${ICO_DEPENDS} + COMMENT "Generating icons/tigervnc.ico") endif() diff --git a/media/icons/tigervnc.ico b/media/icons/tigervnc.ico new file mode 100644 index 00000000..97aa02a2 Binary files /dev/null and b/media/icons/tigervnc.ico differ diff --git a/media/tigervnc.ico b/media/tigervnc.ico deleted file mode 100755 index b86033b7..00000000 Binary files a/media/tigervnc.ico and /dev/null differ diff --git a/vncviewer/vncviewer.rc.in b/vncviewer/vncviewer.rc.in index c87a5400..9fec92f3 100644 --- a/vncviewer/vncviewer.rc.in +++ b/vncviewer/vncviewer.rc.in @@ -70,7 +70,7 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_ICON ICON DISCARDABLE "@CMAKE_SOURCE_DIR@/media/tigervnc.ico" +IDI_ICON ICON DISCARDABLE "@CMAKE_SOURCE_DIR@/media/icons/tigervnc.ico" #endif // English (U.K.) resources /////////////////////////////////////////////////////////////////////////////