/[zanavi_public1]/navit/navit/xpm/CMakeLists.txt
ZANavi

Contents of /navit/navit/xpm/CMakeLists.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Fri Oct 28 21:19:04 2011 UTC (12 years, 5 months ago) by zoff99
File MIME type: text/plain
File size: 3567 byte(s)
import files
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})
8 else()
9 set(SCALE_ARGS)
10 endif()
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})
15 else()
16 set(SCALE_ARGS)
17 endif()
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})
21 if (${SCALE} EQUAL 0)
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})
24 endif()
25 set(COMMAND_ARGS ${NEW_SCALE} ${NEW_SCALE} ${IMAGE_INPUT} --output ${IMAGE_OUTPUT})
26 else()
27 message(FATAL_ERROR "no svg2png converter defined here.")
28 endif()
29
30 add_custom_command (
31 OUTPUT ${IMAGE_OUTPUT}
32 DEPENDS ${IMAGE_INPUT}
33 COMMAND ${IMAGE_CONVERTER_${FILE_TYPE}} ${COMMAND_ARGS}
34 )
35 endmacro()
36
37 macro(add_scale_targets IMAGE_SRC IMAGE_NAME)
38 string(REPLACE "," ";" SCALES "${ARGN}")
39 foreach (CURRENT_SCALE ${SCALES})
40 if (${CURRENT_SCALE} EQUAL 0)
41 set (IMAGE_DST ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}.png)
42 else()
43 set (IMAGE_DST ${CMAKE_CURRENT_BINARY_DIR}/${IMAGE_NAME}_${CURRENT_SCALE}_${CURRENT_SCALE}.png)
44 endif()
45
46 convert_to_png(
47 ${CMAKE_CURRENT_SOURCE_DIR}/${IMAGE_SRC}
48 ${IMAGE_DST}
49 ${CURRENT_SCALE}
50 )
51 list(APPEND IMAGE_TARGETS ${IMAGE_DST})
52 endforeach()
53 endmacro()
54
55 install(FILES desktop_icons/navit.desktop DESTINATION share/applications)
56 install(FILES desktop_icons/22x22/navit.png DESTINATION share/icons/hicolor/22x22/apps)
57 install(FILES desktop_icons/128x128/navit.png DESTINATION share/icons/hicolor/128x128/apps)
58 #install(FILES bench.xpm DESTINATION )
59
60 if (USE_SVG OR SVG2PNG)
61 FILE(GLOB SVG_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg" "*.svgz")
62
63 if(USE_SVG)
64 list(APPEND IMAGE_TARGETS ${SVG_FILES})
65 endif(USE_SVG)
66 if(SVG2PNG)
67 list(APPEND FILES_TO_PNG ${SVG_FILES})
68 endif(SVG2PNG)
69 endif()
70
71 FILE(GLOB XPM_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.xpm")
72 if(XPM2PNG)
73 list(APPEND FILES_TO_PNG ${XPM_FILES})
74 else()
75 list(APPEND IMAGE_TARGETS ${XPM_FILES})
76 endif(XPM2PNG)
77
78 foreach (IMAGE_SRC ${FILES_TO_PNG})
79 string(REGEX REPLACE ".[a-z]*\$" "" IMAGE ${IMAGE_SRC})
80
81 if ( IMAGE_SRC MATCHES ".*svgz*" )
82 if ( DEFINED svg2png_scaling_nav AND ${IMAGE} MATCHES "^nav_")
83 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling_nav})
84 elseif( DEFINED svg2png_scaling_flag AND ${IMAGE} MATCHES "^country_")
85 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling_flag})
86 elseif( DEFINED svg2png_scaling)
87 add_scale_targets(${IMAGE_SRC} ${IMAGE} ${svg2png_scaling})
88 endif()
89 else()
90 add_scale_targets(${IMAGE_SRC} ${IMAGE} 0)
91 endif()
92
93 endforeach()
94
95 add_custom_target(images ALL DEPENDS ${IMAGE_TARGETS})
96
97 install(
98 FILES ${IMAGE_TARGETS}
99 DESTINATION ${IMAGE_DIR}
100 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
101 )

   
Visit the ZANavi Wiki