Add a skeleton of a Description file which will describe the namespec.
[oxy-cursors.git] / src / cursors.cmake
blob80dd326c846388f1ff725cccb36f08047387ef38
1 macro(add_cursor cursor color theme dpi)
2     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/oxy-${theme}/svg/${cursor}.svg
3                        DEPENDS ${MAKE_SVG} ${CMAKE_CURRENT_SOURCE_DIR}/colors.in ${SVGDIR}/${cursor}.svg
4                        COMMAND ${CMAKE_COMMAND} -Dconfig=${CMAKE_CURRENT_SOURCE_DIR}/colors.in
5                                                 -Dinput=${SVGDIR}/${cursor}.svg
6                                                 -Doutput=${CMAKE_BINARY_DIR}/oxy-${theme}/svg/${cursor}.svg
7                                                 -P ${MAKE_SVG}
8                       )
9     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/oxy-${theme}/png/${cursor}.png
10                        DEPENDS ${CMAKE_BINARY_DIR}/oxy-${theme}/svg/${cursor}.svg
11                        COMMAND ${INKSCAPE} --without-gui --export-dpi=${dpi}
12                                            --export-png=${CMAKE_BINARY_DIR}/oxy-${theme}/png/${cursor}.png
13                                            ${CMAKE_BINARY_DIR}/oxy-${theme}/svg/${cursor}.svg
14                       )
15 endmacro(add_cursor)
17 macro(add_x_cursor theme cursor dpi)
18     set(inputs)
19     foreach(png ${${cursor}_inputs})
20         list(APPEND inputs ${CMAKE_BINARY_DIR}/oxy-${theme}/png/${png})
21     endforeach(png)
22     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/oxy-${theme}/config/${cursor}.in
23                        DEPENDS ${MAKE_CONFIG} ${CONFIGDIR}/${cursor}.in
24                        COMMAND ${CMAKE_COMMAND} -Dconfig=${CONFIGDIR}/${cursor}.in
25                                                 -Doutput=${CMAKE_BINARY_DIR}/oxy-${theme}/config/${cursor}.in
26                                                 -Ddpi=${dpi}
27                                                 -P ${MAKE_CONFIG}
28                       )
29     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/oxy-${theme}/cursors/${cursor}
30                        DEPENDS ${inputs} ${CMAKE_BINARY_DIR}/oxy-${theme}/config/${cursor}.in
31                        COMMAND ${XCURSORGEN} -p ${CMAKE_BINARY_DIR}/oxy-${theme}/png
32                                              ${CMAKE_BINARY_DIR}/oxy-${theme}/config/${cursor}.in
33                                              ${CMAKE_BINARY_DIR}/oxy-${theme}/cursors/${cursor}
34                       )
35 endmacro(add_x_cursor)
37 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/packages)
38 macro(add_theme color theme dpi)
39     file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/oxy-${theme}/png)
40     file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/oxy-${theme}/svg)
41     file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/oxy-${theme}/config)
42     file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/oxy-${theme}/cursors)
43     set(${theme}_cursors)
44     foreach(svg ${SVGS})
45         string(REGEX REPLACE ".*/" "" cursor ${svg})
46         string(REGEX REPLACE "[.]svg" "" cursor ${cursor})
47         add_cursor(${cursor} ${color} ${theme} ${dpi})
48     endforeach(svg)
49     foreach(cursor ${CURSORS})
50         add_x_cursor(${theme} ${cursor} ${dpi})
51         list(APPEND ${theme}_cursors ${CMAKE_BINARY_DIR}/oxy-${theme}/cursors/${cursor})
52     endforeach(cursor)
53     add_custom_target(theme-${theme} ALL DEPENDS ${${theme}_cursors})
54     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/oxy-${theme}/index.theme
55                        DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/index.theme
56                        COMMAND ${CMAKE_COMMAND} -E copy_if_different
57                                                    ${CMAKE_CURRENT_SOURCE_DIR}/index.theme
58                                                    ${CMAKE_BINARY_DIR}/oxy-${theme}/index.theme
59                       )
60     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/packages/oxy-${theme}.tar.bz2
61                        DEPENDS ${${theme}_cursors} ${CMAKE_BINARY_DIR}/oxy-${theme}/index.theme
62                        COMMAND ${TAR} cjf ${CMAKE_BINARY_DIR}/packages/oxy-${theme}.tar.bz2
63                                       oxy-${theme}/cursors
64                                       oxy-${theme}/index.theme
65                        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
66                       )
67     add_custom_target(package-${theme} DEPENDS ${CMAKE_BINARY_DIR}/packages/oxy-${theme}.tar.bz2)
68 endmacro(add_theme)