You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. set(LINUX_ICON_SIZES 16 22 24 32 48 64 128)
  2. set(WINDOWS_ICON_SIZES 16 24 32 48 256)
  3. set(MACOS_ICON_SIZES 16 32 128 256 512)
  4. find_program(CONVERT_EXECUTABLE convert)
  5. find_program(PNG2ICNS_EXECUTABLE png2icns)
  6. if(CONVERT_EXECUTABLE)
  7. set(ICON_FILES icons/tigervnc.ico)
  8. foreach(SIZE ${LINUX_ICON_SIZES})
  9. list(APPEND ICON_FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png)
  10. endforeach()
  11. if(PNG2ICNS_EXECUTABLE)
  12. list(APPEND ICON_FILES icons/tigervnc.icns)
  13. endif()
  14. add_custom_target(icons DEPENDS ${ICON_FILES})
  15. foreach(SIZE ${LINUX_ICON_SIZES} ${WINDOWS_ICON_SIZES} ${MACOS_ICON_SIZES})
  16. if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc_${SIZE}.svg)
  17. set(ICON_SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc_${SIZE}.svg)
  18. else()
  19. set(ICON_SRC_FILE ${CMAKE_CURRENT_SOURCE_DIR}/tigervnc_48.svg)
  20. endif()
  21. add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png
  22. COMMAND ${CONVERT_EXECUTABLE} -depth 8 -background transparent
  23. -size ${SIZE}x${SIZE} ${ICON_SRC_FILE}
  24. ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png
  25. DEPENDS ${ICON_SRC_FILE}
  26. COMMENT "Generating icons/tigervnc_${SIZE}.png")
  27. endforeach()
  28. foreach(SIZE ${WINDOWS_ICON_SIZES})
  29. if(${SIZE} LESS_EQUAL 32)
  30. list(APPEND ICO_LEGACY \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png -depth 4 -colors 16 \\\))
  31. list(APPEND ICO_LEGACY \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png -depth 8 -colors 256 \\\))
  32. endif()
  33. list(APPEND ICO_NORMAL \\\( ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png \\\))
  34. list(APPEND ICO_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png)
  35. endforeach()
  36. add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.ico
  37. COMMAND ${CONVERT_EXECUTABLE} ${ICO_LEGACY} ${ICO_NORMAL}
  38. ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.ico
  39. DEPENDS ${ICO_DEPENDS}
  40. COMMENT "Generating icons/tigervnc.ico")
  41. if(PNG2ICNS_EXECUTABLE)
  42. # FIXME: Should be a drop shadow here as well
  43. foreach(SIZE ${MACOS_ICON_SIZES})
  44. list(APPEND ICNS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc_${SIZE}.png)
  45. endforeach()
  46. add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.icns
  47. COMMAND ${PNG2ICNS_EXECUTABLE}
  48. ${CMAKE_CURRENT_SOURCE_DIR}/icons/tigervnc.icns ${ICNS_FILES}
  49. DEPENDS ${ICNS_FILES}
  50. COMMENT "Generating icons/tigervnc.icns")
  51. endif()
  52. endif()