aboutsummaryrefslogtreecommitdiff
path: root/modules/KDE4Macros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'modules/KDE4Macros.cmake')
-rw-r--r--modules/KDE4Macros.cmake84
1 files changed, 49 insertions, 35 deletions
diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake
index 247eda79..fe08faa2 100644
--- a/modules/KDE4Macros.cmake
+++ b/modules/KDE4Macros.cmake
@@ -1,5 +1,5 @@
# for documentation look at FindKDE4Internal.cmake
-#
+
# this file contains the following macros:
# KDE4_ADD_UI_FILES
# KDE4_ADD_UI3_FILES
@@ -19,7 +19,7 @@
# KDE4_REMOVE_OBSOLETE_CMAKE_FILES
# KDE4_NO_ENABLE_FINAL
# KDE4_CREATE_HANDBOOK
-# KDE4_ADD_WIN32_APP_ICON (Use on Win32)
+# KDE4_ADD_APP_ICON
# KDE4_CREATE_MANPAGE
# Copyright (c) 2006, 2007, Alexander Neundorf, <neundorf@kde.org>
@@ -173,7 +173,7 @@ macro (KDE4_MOC_HEADERS _target_NAME)
# need to create moc_<filename>.cpp file using kde4automoc.cmake
# and add it to the target
if(_headers_to_moc)
- KDE4_SET_CUSTOM_TARGET_PROPERTY(${_target_NAME} AUTOMOC_HEADERS "${_headers_to_moc}")
+ kde4_set_custom_target_property(${_target_NAME} AUTOMOC_HEADERS "${_headers_to_moc}")
endif(_headers_to_moc)
endmacro (KDE4_MOC_HEADERS)
@@ -182,7 +182,7 @@ macro(KDE4_HANDLE_AUTOMOC _target_NAME _SRCS)
set(_moc_headers)
# first list all explicitly set headers
- KDE4_GET_CUSTOM_TARGET_PROPERTY(_headers_to_moc ${_target_NAME} AUTOMOC_HEADERS)
+ kde4_get_custom_target_property(_headers_to_moc ${_target_NAME} AUTOMOC_HEADERS)
if(NOT _headers_to_moc STREQUAL "NOTFOUND")
foreach(_header_to_moc ${_headers_to_moc})
get_filename_component(_abs_header ${_header_to_moc} ABSOLUTE)
@@ -218,8 +218,8 @@ macro(KDE4_HANDLE_AUTOMOC _target_NAME _SRCS)
if(_moc_files)
set(_automoc_source "${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_automoc.cpp")
- GET_DIRECTORY_PROPERTY(_moc_incs INCLUDE_DIRECTORIES)
- CONFIGURE_FILE(${KDE4_MODULE_DIR}/kde4automoc.files.in ${_automoc_source}.files)
+ get_directory_property(_moc_incs INCLUDE_DIRECTORIES)
+ configure_file(${KDE4_MODULE_DIR}/kde4automoc.files.in ${_automoc_source}.files)
add_custom_command(OUTPUT ${_automoc_source}
COMMAND ${KDE4_AUTOMOC_EXECUTABLE}
${_automoc_source}
@@ -270,7 +270,9 @@ macro (KDE4_CREATE_HANDBOOK _docbook)
DEPENDS ${_docs} ${_KDE4_MEINPROC_EXECUTABLE_DEP} ${_ssheet}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
- add_custom_target(handbook ALL DEPENDS ${_doc})
+ get_filename_component(_targ ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+ set(_targ "${_targ}-handbook")
+ add_custom_target(${_targ} ALL DEPENDS ${_doc})
if(KDE4_ENABLE_HTMLHANDBOOK)
set(_htmlDoc ${CMAKE_CURRENT_SOURCE_DIR}/index.html)
@@ -336,7 +338,9 @@ macro (KDE4_CREATE_MANPAGE _docbook _section)
COMMAND ${KDE4_MEINPROC_EXECUTABLE} --stylesheet ${_ssheet} --check ${_bootstrapOption} ${_input}
DEPENDS ${_input} ${_KDE4_MEINPROC_EXECUTABLE_DEP} ${_ssheet}
)
- add_custom_target(manpage ALL DEPENDS "${_outdoc}")
+ get_filename_component(_targ ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+ set(_targ "${_targ}-manpage")
+ add_custom_target(${_targ} ALL DEPENDS "${_outdoc}")
set(_args ${ARGN})
@@ -406,7 +410,7 @@ set(_KDE4_ICON_THEME_hi "hicolor")
# only used internally by KDE4_INSTALL_ICONS
-macro (_KDE4_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME)
+macro (_KDE4_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME _l10n_SUBDIR)
# 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} )
@@ -414,8 +418,8 @@ macro (_KDE4_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NA
if(NOT _icon_GROUP)
set(_icon_GROUP "actions")
endif(NOT _icon_GROUP)
-# message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name}" )
- install(FILES ${_orig_NAME} DESTINATION ${_install_PATH}/${_icon_GROUP}/ RENAME ${_install_NAME} )
+# message(STATUS "icon: ${_current_ICON} size: ${_size} group: ${_group} name: ${_name} l10n: ${_l10n_SUBDIR}")
+ install(FILES ${_orig_NAME} DESTINATION ${_install_PATH}/${_icon_GROUP}/${_l10n_SUBDIR}/ RENAME ${_install_NAME} )
endif (NOT ${_group} STREQUAL ${_install_NAME} )
endmacro (_KDE4_ADD_ICON_INSTALL_RULE)
@@ -423,6 +427,14 @@ endmacro (_KDE4_ADD_ICON_INSTALL_RULE)
macro (KDE4_INSTALL_ICONS _defaultpath )
+ # the l10n-subdir if language given as second argument (localized icon)
+ set(_lang ${ARGV1})
+ if(_lang)
+ set(_l10n_SUBDIR l10n/${_lang})
+ else(_lang)
+ set(_l10n_SUBDIR ".")
+ endif(_lang)
+
# first the png icons
file(GLOB _icons *.png)
foreach (_current_ICON ${_icons} )
@@ -435,7 +447,7 @@ macro (KDE4_INSTALL_ICONS _defaultpath )
if( _theme_GROUP)
_KDE4_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
${_defaultpath}/${_theme_GROUP}/${_size}x${_size}
- ${_group} ${_current_ICON} ${_name})
+ ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
endif( _theme_GROUP)
endforeach (_current_ICON)
@@ -451,7 +463,7 @@ macro (KDE4_INSTALL_ICONS _defaultpath )
if( _theme_GROUP)
_KDE4_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
${_defaultpath}/${_theme_GROUP}/${_size}x${_size}
- ${_group} ${_current_ICON} ${_name})
+ ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
endif( _theme_GROUP)
endforeach (_current_ICON)
@@ -466,7 +478,7 @@ macro (KDE4_INSTALL_ICONS _defaultpath )
if( _theme_GROUP)
_KDE4_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
${_defaultpath}/${_theme_GROUP}/scalable
- ${_group} ${_current_ICON} ${_name})
+ ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
endif( _theme_GROUP)
endforeach (_current_ICON)
@@ -537,15 +549,15 @@ macro (KDE4_HANDLE_RPATH_FOR_EXECUTABLE _target_NAME _type)
# set the RPATH related properties
if (NOT CMAKE_SKIP_RPATH)
if (${_type} STREQUAL "GUI")
- set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
+ set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
endif (${_type} STREQUAL "GUI")
if (${_type} STREQUAL "NOGUI")
- set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
+ set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH TRUE BUILD_WITH_INSTALL_RPATH TRUE)
endif (${_type} STREQUAL "NOGUI")
if (${_type} STREQUAL "RUN_UNINSTALLED")
- set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE)
+ set_target_properties(${_target_NAME} PROPERTIES SKIP_BUILD_RPATH FALSE BUILD_WITH_INSTALL_RPATH FALSE)
endif (${_type} STREQUAL "RUN_UNINSTALLED")
endif (NOT CMAKE_SKIP_RPATH)
@@ -1015,41 +1027,43 @@ endmacro (KDE4_ADD_WIN32_APP_ICON)
# example: KDE4_ADD_APP_ICON( myapp_sources "icons/oxygen/*/apps/myapp.png")
macro (KDE4_ADD_APP_ICON appsources pattern)
- STRING(REPLACE _SRCS "" target ${appsources})
+ string(REPLACE _SRCS "" target ${appsources})
if (WIN32)
find_program(PNG2ICO_EXECUTABLE NAMES png2ico)
find_program(WINDRES_EXECUTABLE NAMES windres)
if(MSVC)
set(WINDRES_EXECUTABLE TRUE)
- endif(MSVC)
+ endif(MSVC)
if (PNG2ICO_EXECUTABLE AND WINDRES_EXECUTABLE)
+ string(REPLACE "*" "(.*)" pattern_rx "${pattern}")
file(GLOB_RECURSE files "${pattern}")
- FOREACH (it ${files})
- if (it MATCHES ".*16.*" )
+ foreach (it ${files})
+ string(REGEX REPLACE "${pattern_rx}" "\\1" fn "${it}")
+ if (fn MATCHES ".*16.*" )
list (APPEND _icons ${it})
- endif (it MATCHES ".*16.*")
- if (it MATCHES ".*32.*" )
+ endif (fn MATCHES ".*16.*")
+ if (fn MATCHES ".*32.*" )
list (APPEND _icons ${it})
- endif (it MATCHES ".*32.*")
- if (it MATCHES ".*48.*" )
+ endif (fn MATCHES ".*32.*")
+ if (fn MATCHES ".*48.*" )
list (APPEND _icons ${it})
- endif (it MATCHES ".*48.*")
- if (it MATCHES ".*64.*" )
+ endif (fn MATCHES ".*48.*")
+ if (fn MATCHES ".*64.*" )
list (APPEND _icons ${it})
- endif (it MATCHES ".*64.*")
- if (it MATCHES ".*128.*" )
+ endif (fn MATCHES ".*64.*")
+ if (fn MATCHES ".*128.*" )
list (APPEND _icons ${it})
- endif (it MATCHES ".*128.*")
- ENDFOREACH (it)
+ endif (fn MATCHES ".*128.*")
+ endforeach (it)
if (_icons)
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${target})
- ADD_CUSTOM_COMMAND(OUTPUT ${_outfilename}.ico ${_outfilename}.rc
+ add_custom_command(OUTPUT ${_outfilename}.ico ${_outfilename}.rc
COMMAND ${PNG2ICO_EXECUTABLE} ARGS --rcfile ${_outfilename}.rc ${_outfilename}.ico ${_icons}
DEPENDS ${PNG2ICO_EXECUTABLE} ${_icons}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
if (MINGW)
- ADD_CUSTOM_COMMAND(OUTPUT ${_outfilename}_res.o
+ add_custom_command(OUTPUT ${_outfilename}_res.o
COMMAND ${WINDRES_EXECUTABLE} ARGS -i ${_outfilename}.rc -o ${_outfilename}_res.o --include-dir=${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${WINDRES_EXECUTABLE} ${_outfilename}.rc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@@ -1073,11 +1087,11 @@ macro (KDE4_ADD_APP_ICON appsources pattern)
if (SIPS_EXECUTABLE AND TIFF2ICNS_EXECUTABLE)
file(GLOB_RECURSE files "${pattern}")
# we can only test for the 128-icon like that - we don't use patterns anymore
- FOREACH (it ${files})
+ foreach (it ${files})
if (it MATCHES ".*128.*" )
set (_icon ${it})
endif (it MATCHES ".*128.*")
- ENDFOREACH (it)
+ endforeach (it)
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${target})
if (_icon)