Browse Source

Automatically generate Windows icon file

tags/v1.12.90
Pierre Ossman 1 year ago
parent
commit
df8eddfae6
4 changed files with 20 additions and 4 deletions
  1. 19
    3
      media/CMakeLists.txt
  2. BIN
      media/icons/tigervnc.ico
  3. BIN
      media/tigervnc.ico
  4. 1
    1
      vncviewer/vncviewer.rc.in

+ 19
- 3
media/CMakeLists.txt View File

@@ -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()

BIN
media/icons/tigervnc.ico View File


BIN
media/tigervnc.ico View File


+ 1
- 1
vncviewer/vncviewer.rc.in View File

@@ -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
/////////////////////////////////////////////////////////////////////////////

Loading…
Cancel
Save