diff options
-rw-r--r-- | modules/FindKDE4.cmake | 2 | ||||
-rw-r--r-- | modules/KDE4Macros.cmake | 108 |
2 files changed, 50 insertions, 60 deletions
diff --git a/modules/FindKDE4.cmake b/modules/FindKDE4.cmake index 1b8afbe6..71f35d94 100644 --- a/modules/FindKDE4.cmake +++ b/modules/FindKDE4.cmake @@ -45,7 +45,6 @@ set(KDE4_APPS_DIR /share/applnk) set(KDE4_CONFIG_DIR /share/config) set(KDE4_DATA_DIR /share/apps) set(KDE4_HTML_DIR /share/doc/HTML) -set(KDE4_ICON_DIR /share/icons) set(KDE4_KCFG_DIR /share/config.kcfg) set(KDE4_LIBS_HTML_DIR /share/doc/HTML) set(KDE4_LOCALE_DIR /share/locale) @@ -62,6 +61,7 @@ set(XDG_DIRECTORY_DIR /share/desktop-directories) # the following are directories where stuff will be installed to #set(KDE4_SYSCONF_INSTALL_DIR "/etc" CACHE STRING "The kde sysconfig install dir (default /etc)") +set(ICON_INSTALL_DIR "/share/icons" CACHE STRING "The icon install dir (default prefix/share/icons/)") set(KDE4_MAN_INSTALL_DIR "/man" CACHE STRING "The kde man install dir (default prefix/man/)") set(KDE4_INFO_INSTALL_DIR "/info" CACHE STRING "The kde info install dir (default prefix/info)") set(KDE4_LIB_INSTALL_DIR "/lib" CACHE STRING "The subdirectory relative to the install prefix where libraries will be installed (default is /lib)") diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index 6b485cba..613cc359 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -261,80 +261,69 @@ MACRO(KDE4_AUTOMOC) ENDMACRO(KDE4_AUTOMOC) -MACRO(KDE4_INSTALL_ICONS _theme _defaultpath ) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "# icon installations rules\n") - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "set(CMAKE_BACKWARDS_COMPATIBILITY \"2.2\") \n") +# only used internally by KDE4_INSTALL_ICONS +MACRO( _KDE4_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME) - FILE(GLOB _icons *.png) - foreach(_current_ICON ${_icons} ) - STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}") - STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}") - STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}") - # if the string doesn't match the pattern, the result is the full string, so all three have the same content - if( NOT ${_size} STREQUAL ${_name} ) - set(_icon_GROUP "actions") + # if the string doesn't match the pattern, the result is the full string, so all three have the same content + IF( NOT ${_group} STREQUAL ${_install_NAME} ) + SET(_icon_GROUP "actions") - if(${_group} STREQUAL "mime") - set(_icon_GROUP "mimetypes") - endif(${_group} STREQUAL "mime") + IF(${_group} STREQUAL "mime") + SET(_icon_GROUP "mimetypes") + ENDIF(${_group} STREQUAL "mime") - if(${_group} STREQUAL "filesys") - set(_icon_GROUP "filesystems") - endif(${_group} STREQUAL "filesys") + IF(${_group} STREQUAL "filesys") + SET(_icon_GROUP "filesystems") + ENDIF(${_group} STREQUAL "filesys") - if(${_group} STREQUAL "device") - set(_icon_GROUP "devices") - endif(${_group} STREQUAL "device") + IF(${_group} STREQUAL "device") + SET(_icon_GROUP "devices") + ENDIF(${_group} STREQUAL "device") - if(${_group} STREQUAL "app") - set(_icon_GROUP "apps") - endif(${_group} STREQUAL "app") + IF(${_group} STREQUAL "app") + SET(_icon_GROUP "apps") + ENDIF(${_group} STREQUAL "app") - if(${_group} STREQUAL "action") - set(_icon_GROUP "actions") - endif(${_group} STREQUAL "action") + IF(${_group} STREQUAL "action") + SET(_icon_GROUP "actions") + ENDIF(${_group} STREQUAL "action") # message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name}" ) - set(_ICON_INSTALL_NAME ${CMAKE_INSTALL_PREFIX}/${_defaultpath}/icons/${_theme}/${_size}x${_size}/${_icon_GROUP}/${_name}) - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "message(STATUS \"Installing ${_ICON_INSTALL_NAME}\") \n") - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "CONFIGURE_FILE( ${_current_ICON} ${_ICON_INSTALL_NAME} COPYONLY) \n") - endif( NOT ${_size} STREQUAL ${_name} ) - endforeach (_current_ICON) - FILE(GLOB _icons *.svgz) - foreach(_current_ICON ${_icons} ) - STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}") - STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}") - - set(_icon_GROUP "actions") - - if(${_group} STREQUAL "mime") - set(_icon_GROUP "mimetypes") - endif(${_group} STREQUAL "mime") + SET(_ICON_INSTALL_NAME ${_install_PATH}/${_icon_GROUP}/${_install_NAME}) + FILE(APPEND ${_install_SCRIPT} "MESSAGE(STATUS \"Installing ${_ICON_INSTALL_NAME}\") \n") + FILE(APPEND ${_install_SCRIPT} "CONFIGURE_FILE( ${_orig_NAME} ${_ICON_INSTALL_NAME} COPYONLY) \n") + ENDIF ( NOT ${_group} STREQUAL ${_install_NAME} ) - if(${_group} STREQUAL "filesys") - set(_icon_GROUP "filesystems") - endif(${_group} STREQUAL "filesys") +ENDMACRO( _KDE4_ADD_ICON_INSTALL_RULE ) - if(${_group} STREQUAL "device") - set(_icon_GROUP "devices") - endif(${_group} STREQUAL "device") - if(${_group} STREQUAL "app") - set(_icon_GROUP "apps") - endif(${_group} STREQUAL "app") - - if(${_group} STREQUAL "action") - set(_icon_GROUP "actions") - endif(${_group} STREQUAL "action") +MACRO(KDE4_INSTALL_ICONS _defaultpath _theme ) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "# icon installations rules\n") + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "set(CMAKE_BACKWARDS_COMPATIBILITY \"2.2\") \n") - set(_ICON_INSTALL_NAME ${CMAKE_INSTALL_PREFIX}/${_defaultpath}/icons/${_theme}/scalable/${_icon_GROUP}/${_name}) - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "message(STATUS \"Installing ${_ICON_INSTALL_NAME}\") \n") - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake "CONFIGURE_FILE( ${_current_ICON} ${_ICON_INSTALL_NAME} COPYONLY) \n") + # first the png icons + FILE(GLOB _icons *.png) + FOREACH(_current_ICON ${_icons} ) + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\1" _size "${_current_ICON}") + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\2" _group "${_current_ICON}") + STRING(REGEX REPLACE "^.*/[a-zA-Z]+([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" "\\3" _name "${_current_ICON}") + _KDE4_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake + ${CMAKE_INSTALL_PREFIX}/${_defaultpath}/${_theme}/${_size}x${_size} + ${_group} ${_current_ICON} ${_name}) + ENDFOREACH (_current_ICON) - endforeach (_current_ICON) + # and now the svg icons + FILE(GLOB _icons *.svgz) + FOREACH (_current_ICON ${_icons} ) + STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\1" _group "${_current_ICON}") + STRING(REGEX REPLACE "^.*/crsc\\-([a-z]+)\\-(.+\\.svgz)$" "\\2" _name "${_current_ICON}") + _KDE4_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake + ${CMAKE_INSTALL_PREFIX}/${_defaultpath}/${_theme}/scalable + ${_group} ${_current_ICON} ${_name}) + ENDFOREACH (_current_ICON) INSTALL(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake ) -ENDMACRO(KDE4_INSTALL_ICONS _theme _defaultpath) +ENDMACRO(KDE4_INSTALL_ICONS) # for the case that something should be added to every CMakeLists.txt at the top @@ -395,6 +384,7 @@ OPTION(KDE4_ENABLE_FINAL "Enable final all-in-one compilation") OPTION(KDE4_BUILD_TESTS "Build the tests") OPTION(KDE4_USE_QT_EMB "link to Qt-embedded, don't use X") + MACRO(KDE4_ADD_PLUGIN _target_NAME _with_PREFIX) #is the first argument is "WITH_PREFIX" then keep the standard "lib" prefix, otherwise set the prefix empty if (${_with_PREFIX} STREQUAL "WITH_PREFIX") |