1 macro(convert_to_png IMAGE_INPUT IMAGE_OUTPUT SCALE)
2 get_filename_component(FILE_EXT ${IMAGE_INPUT} EXT)
3 string(TOUPPER ${FILE_EXT} FILE_TYPE)
4 string(REGEX REPLACE "^\\." "" FILE_TYPE ${FILE_TYPE})
5 if(${IMAGE_CONVERTER_${FILE_TYPE}} MATCHES "rsvg-convert")
6 if (${SCALE} GREATER 0)
7 set(SCALE_ARGS --width=${SCALE} --height=${SCALE})
11 set(COMMAND_ARGS ${SCALE_ARGS} --output ${IMAGE_OUTPUT} ${IMAGE_INPUT})
12 elseif(${IMAGE_CONVERTER_${FILE_TYPE}} MATCHES "convert")
13 if (${SCALE} GREATER 0)
14 set(SCALE_ARGS -resize ${SCALE}x${SCALE})
18 set(COMMAND_ARGS -background none ${IMAGE_INPUT} ${SCALE_ARGS} ${IMAGE_OUTPUT})
19 elseif(${IMAGE_CONVERTER_${FILE_TYPE}} MATCHES "ksvgtopng")
20 set (NEW_SCALE ${SCALE})
22 file(STRINGS ${IMAGE_INPUT} NEW_SCALE_LINE REGEX "[^-]width=\"[0-9pxt.]*\"")
23 string(REGEX REPLACE ".*width=\"([0-9]*).*" "\\1" NEW_SCALE ${NEW_SCALE_LINE})
25 set(COMMAND_ARGS ${NEW_SCALE} ${NEW_SCALE} ${IMAGE_INPUT} --output ${IMAGE_OUTPUT})
26 elseif(${IMAGE_CONVERTER_${FILE_TYPE}} MATCHES "inkscape")
27 if (${SCALE} GREATER 0)
28 set(SCALE_ARGS --export-width=${SCALE} --export-height=${SCALE})
32 set(COMMAND_ARGS --without-gui --export-background-opacity=0 --export-png ${IMAGE_OUTPUT} ${SCALE_ARGS} ${IMAGE_INPUT})
34 message(FATAL_ERROR "no svg2png converter defined here.")
38 OUTPUT ${IMAGE_OUTPUT}
39 DEPENDS ${IMAGE_INPUT}
40 COMMAND ${IMAGE_CONVERTER_${FILE_TYPE}} ${COMMAND_ARGS}
44 macro(add_scale_targets IMAGE_SRC IMAGE_NAME)
45 string(REPLACE "," ";" SCALES "${ARGN}")
46 foreach (CURRENT_SCALE ${SCALES})
47 if (${CURRENT_SCALE} EQUAL 0)
48 set (IMAGE_DST ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}.png)
50 set (IMAGE_DST ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}_${CURRENT_SCALE}_${CURRENT_SCALE}.png)
54 ${CMAKE_CURRENT_SOURCE_DIR}/${IMAGE_SRC}
58 list(APPEND IMAGE_TARGETS ${IMAGE_DST})
62 install(FILES desktop_icons/navit.desktop DESTINATION share/applications)
63 install(FILES desktop_icons/22x22/navit.png DESTINATION share/icons/hicolor/22x22/apps)
64 install(FILES desktop_icons/128x128/navit.png DESTINATION share/icons/hicolor/128x128/apps)
65 #install(FILES bench.xpm DESTINATION )
67 if (USE_SVG OR SVG2PNG)
68 FILE(GLOB SVG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg" "*.svgz")
71 list(APPEND IMAGE_TARGETS ${SVG_FILES})
74 list(APPEND FILES_TO_PNG ${SVG_FILES})
78 FILE(GLOB XPM_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.xpm")
80 list(APPEND FILES_TO_PNG ${XPM_FILES})
82 list(APPEND IMAGE_TARGETS ${XPM_FILES})
85 foreach (IMAGE_SRC ${FILES_TO_PNG})
86 string(REGEX REPLACE ".[a-z]*\$" "" IMAGE ${IMAGE_SRC})
88 if ( IMAGE_SRC MATCHES ".*svgz*" )
89 if ( DEFINED svg2png_scaling_nav AND ${IMAGE} MATCHES "^nav_")
90 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling_nav})
91 elseif( DEFINED svg2png_scaling_flag AND ${IMAGE} MATCHES "^country_")
92 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling_flag})
93 elseif( DEFINED svg2png_scaling)
94 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling})
97 add_scale_targets(${IMAGE_SRC} ${IMAGE} 0)
102 add_custom_target(images ALL DEPENDS ${IMAGE_TARGETS})
103 add_custom_target(images_resource COMMAND mkdir -p ../resources/share/navit/xpm COMMAND cp ${IMAGE_TARGETS} ../resources/share/navit/xpm)
104 add_dependencies(images_resource images)
107 FILES ${IMAGE_TARGETS}
108 DESTINATION ${IMAGE_DIR}
109 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ