+++ /dev/null
-
-# Phonon helper macros:
-#
-# macro (phonon_add_executable _target)
-# macro (PHONON_ADD_UNIT_TEST _test_NAME)
-# macro (PHONON_UPDATE_ICONCACHE)
-# macro (PHONON_UPDATE_ICONCACHE)
-# macro (_PHONON_ADD_ICON_INSTALL_RULE _install_SCRIPT _install_PATH _group _orig_NAME _install_NAME _l10n_SUBDIR)
-# macro (PHONON_INSTALL_ICONS _defaultpath )
-
-set(_global_add_executable_param)
-if (Q_WS_MAC)
- set(_global_add_executable_param MACOSX_BUNDLE)
-endif (Q_WS_MAC)
-if (WIN32)
- # no WIN32 here - all executables are command line executables
- set(_global_add_executable_param)
-endif (WIN32)
-
-macro(phonon_add_executable _target)
- set(_srcs ${ARGN})
- automoc4_add_executable(${_target} ${_global_add_executable_param} ${_srcs})
-endmacro(phonon_add_executable _target)
-
-macro (PHONON_ADD_UNIT_TEST _test_NAME)
- set(_srcList ${ARGN})
- set(_nogui)
- list(GET ${_srcList} 0 first_PARAM)
- set(_add_executable_param ${_global_add_executable_param})
- if(${first_PARAM} STREQUAL "NOGUI")
- set(_nogui "NOGUI")
- set(_add_executable_param)
- endif(${first_PARAM} STREQUAL "NOGUI")
-
- if (NOT PHONON_BUILD_TESTS)
- set(_add_executable_param ${_add_executable_param} EXCLUDE_FROM_ALL)
- endif (NOT PHONON_BUILD_TESTS)
-
- automoc4_add_executable(${_test_NAME} ${_add_executable_param} ${_srcList})
-
- if(NOT PHONON_TEST_OUTPUT)
- set(PHONON_TEST_OUTPUT plaintext)
- endif(NOT PHONON_TEST_OUTPUT)
- set(PHONON_TEST_OUTPUT ${PHONON_TEST_OUTPUT} CACHE STRING "The output to generate when running the QTest unit tests")
-
- set(using_qtest "")
- foreach(_filename ${_srcList})
- if(NOT using_qtest)
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_filename}")
- file(READ ${_filename} file_CONTENT)
- string(REGEX MATCH "QTEST_(KDE)?MAIN" using_qtest "${file_CONTENT}")
- endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_filename}")
- endif(NOT using_qtest)
- endforeach(_filename)
-
- set(_executable ${EXECUTABLE_OUTPUT_PATH}/${_test_NAME})
- if (Q_WS_MAC AND NOT _nogui)
- set(_executable ${EXECUTABLE_OUTPUT_PATH}/${_test_NAME}.app/Contents/MacOS/${_test_NAME})
- else (Q_WS_MAC AND NOT _nogui)
- # Use .shell wrapper where available, to use uninstalled libs.
- #if (UNIX)
- # set(_executable ${_executable}.shell)
- #endif (UNIX)
- endif (Q_WS_MAC AND NOT _nogui)
-
- if (using_qtest AND PHONON_TEST_OUTPUT STREQUAL "xml")
- add_test( ${_test_NAME} ${_executable} -xml -o ${_test_NAME}.tml)
- else (using_qtest AND PHONON_TEST_OUTPUT STREQUAL "xml")
- add_test( ${_test_NAME} ${_executable} )
- endif (using_qtest AND PHONON_TEST_OUTPUT STREQUAL "xml")
-
- if (NOT MSVC_IDE) #not needed for the ide
- # if the tests are EXCLUDE_FROM_ALL, add a target "buildtests" to build all tests
- if (NOT PHONON_BUILD_TESTS)
- get_directory_property(_buildtestsAdded BUILDTESTS_ADDED)
- if(NOT _buildtestsAdded)
- add_custom_target(buildtests)
- set_directory_properties(PROPERTIES BUILDTESTS_ADDED TRUE)
- endif(NOT _buildtestsAdded)
- add_dependencies(buildtests ${_test_NAME})
- endif (NOT PHONON_BUILD_TESTS)
- endif (NOT MSVC_IDE)
-endmacro (PHONON_ADD_UNIT_TEST)
-
-macro (PHONON_UPDATE_ICONCACHE)
- # Update mtime of hicolor icon theme dir.
- # We don't always have touch command (e.g. on Windows), so instead create
- # and delete a temporary file in the theme dir.
- install(CODE "
- set(DESTDIR_VALUE \"\$ENV{DESTDIR}\")
- if (NOT DESTDIR_VALUE)
- file(WRITE \"${ICON_INSTALL_DIR}/hicolor/temp.txt\" \"update\")
- file(REMOVE \"${ICON_INSTALL_DIR}/hicolor/temp.txt\")
- endif (NOT DESTDIR_VALUE)
- ")
-endmacro (PHONON_UPDATE_ICONCACHE)
-
-# a "map" of short type names to the directories
-# unknown names should give empty results
-# KDE 3 compatibility
-set(_PHONON_ICON_GROUP_mime "mimetypes")
-set(_PHONON_ICON_GROUP_filesys "places")
-set(_PHONON_ICON_GROUP_device "devices")
-set(_PHONON_ICON_GROUP_app "apps")
-set(_PHONON_ICON_GROUP_action "actions")
-# KDE 4 / icon naming specification compatibility
-set(_PHONON_ICON_GROUP_mimetypes "mimetypes")
-set(_PHONON_ICON_GROUP_places "places")
-set(_PHONON_ICON_GROUP_devices "devices")
-set(_PHONON_ICON_GROUP_apps "apps")
-set(_PHONON_ICON_GROUP_actions "actions")
-set(_PHONON_ICON_GROUP_categories "categories")
-set(_PHONON_ICON_GROUP_status "status")
-set(_PHONON_ICON_GROUP_emblems "emblems")
-set(_PHONON_ICON_GROUP_emotes "emotes")
-set(_PHONON_ICON_GROUP_animations "animations")
-set(_PHONON_ICON_GROUP_intl "intl")
-
-# a "map" of short theme names to the theme directory
-set(_PHONON_ICON_THEME_ox "oxygen")
-set(_PHONON_ICON_THEME_cr "crystalsvg")
-set(_PHONON_ICON_THEME_lo "locolor")
-set(_PHONON_ICON_THEME_hi "hicolor")
-
-macro (_PHONON_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} )
- set(_icon_GROUP ${_PHONON_ICON_GROUP_${_group}})
- if(NOT _icon_GROUP)
- set(_icon_GROUP "actions")
- endif(NOT _icon_GROUP)
-# 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 (_PHONON_ADD_ICON_INSTALL_RULE)
-
-
-macro (PHONON_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} )
- # since CMake 2.6 regex matches are stored in special variables CMAKE_MATCH_x, if it didn't match, they are empty
- string(REGEX MATCH "^.*/([a-zA-Z]+)([0-9]+)\\-([a-z]+)\\-(.+\\.png)$" _dummy "${_current_ICON}")
- set(_type "${CMAKE_MATCH_1}")
- set(_size "${CMAKE_MATCH_2}")
- set(_group "${CMAKE_MATCH_3}")
- set(_name "${CMAKE_MATCH_4}")
-
- set(_theme_GROUP ${_PHONON_ICON_THEME_${_type}})
- if( _theme_GROUP)
- _PHONON_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
- ${_defaultpath}/${_theme_GROUP}/${_size}x${_size}
- ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
- endif( _theme_GROUP)
- endforeach (_current_ICON)
-
- # mng icons
- file(GLOB _icons *.mng)
- foreach (_current_ICON ${_icons} )
- # since CMake 2.6 regex matches are stored in special variables CMAKE_MATCH_x, if it didn't match, they are empty
- string(REGEX MATCH "^.*/([a-zA-Z]+)([0-9]+)\\-([a-z]+)\\-(.+\\.mng)$" _dummy "${_current_ICON}")
- set(_type "${CMAKE_MATCH_1}")
- set(_size "${CMAKE_MATCH_2}")
- set(_group "${CMAKE_MATCH_3}")
- set(_name "${CMAKE_MATCH_4}")
-
- set(_theme_GROUP ${_PHONON_ICON_THEME_${_type}})
- if( _theme_GROUP)
- _PHONON_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
- ${_defaultpath}/${_theme_GROUP}/${_size}x${_size}
- ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
- endif( _theme_GROUP)
- endforeach (_current_ICON)
-
- # and now the svg icons
- file(GLOB _icons *.svgz)
- foreach (_current_ICON ${_icons} )
- # since CMake 2.6 regex matches are stored in special variables CMAKE_MATCH_x, if it didn't match, they are empty
- string(REGEX MATCH "^.*/([a-zA-Z]+)sc\\-([a-z]+)\\-(.+\\.svgz)$" _dummy "${_current_ICON}")
- set(_type "${CMAKE_MATCH_1}")
- set(_group "${CMAKE_MATCH_2}")
- set(_name "${CMAKE_MATCH_3}")
-
- set(_theme_GROUP ${_PHONON_ICON_THEME_${_type}})
- if( _theme_GROUP)
- _PHONON_ADD_ICON_INSTALL_RULE(${CMAKE_CURRENT_BINARY_DIR}/install_icons.cmake
- ${_defaultpath}/${_theme_GROUP}/scalable
- ${_group} ${_current_ICON} ${_name} ${_l10n_SUBDIR})
- endif( _theme_GROUP)
- endforeach (_current_ICON)
-
- phonon_update_iconcache()
-
-endmacro (PHONON_INSTALL_ICONS)
-