File: Jisp.cmake

package info (click to toggle)
sim 0.9.5~svn20080806-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 18,108 kB
  • ctags: 11,570
  • sloc: cpp: 119,605; sh: 9,986; ansic: 3,312; perl: 2,752; lex: 1,533; makefile: 839; xml: 206; python: 56
file content (45 lines) | stat: -rw-r--r-- 1,415 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# a small macro to create one or more jisp archives
# ADD_JISP_ARCHIVE(jisp-subdir)

# search zip
MACRO(FIND_ZIP)
    IF(NOT ZIP_EXECUTABLE)
        FIND_PROGRAM(ZIP_EXECUTABLE zip)
        IF (NOT ZIP_EXECUTABLE)
          MESSAGE(FATAL_ERROR "zip not found - aborting")
        ENDIF (NOT ZIP_EXECUTABLE)
    ENDIF(NOT ZIP_EXECUTABLE)
ENDMACRO(FIND_ZIP)


MACRO(ADD_JISP_ARCHIVE subdir jisp_name _sources)
    FIND_ZIP()

    GET_FILENAME_COMPONENT(_in_dir ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/icondef.xml PATH)

    IF(EXISTS ${_in_dir}/icondef.xml)
        FILE(GLOB _in ${_in_dir}/*.png)
        SET(_in ${_in} ${_in_dir}/icondef.xml)

        IF(WIN32)
            GET_FILENAME_COMPONENT(_out ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/icons/${jisp_name} ABSOLUTE)
        ELSE(WIN32)
            GET_FILENAME_COMPONENT(_out ${CMAKE_CURRENT_BINARY_DIR}/${jisp_name} ABSOLUTE)
        ENDIF(WIN32)
    
        FILE(WRITE ${_out}.files "") 
        FOREACH(_file ${_in})
            FILE(APPEND ${_out}.files "${_file}\n")
        ENDFOREACH(_file ${_in})

        ADD_CUSTOM_COMMAND(
           OUTPUT ${_out}
            COMMAND ${ZIP_EXECUTABLE}
            -j -q -9 ${_out} -@ < ${_out}.files
            DEPENDS ${_in}
        )
        SET(${_sources} ${${_sources}} ${_out})

        INSTALL(FILES ${_out} DESTINATION  ${SIM_ICONS_DIR})
    ENDIF(EXISTS ${_in_dir}/icondef.xml)
ENDMACRO(ADD_JISP_ARCHIVE)