diff options
-rw-r--r-- | modules/FindKDE4Internal.cmake | 15 | ||||
-rw-r--r-- | modules/KDE4Macros.cmake | 22 |
2 files changed, 35 insertions, 2 deletions
diff --git a/modules/FindKDE4Internal.cmake b/modules/FindKDE4Internal.cmake index bfcd1f07..1857f0cc 100644 --- a/modules/FindKDE4Internal.cmake +++ b/modules/FindKDE4Internal.cmake @@ -178,6 +178,21 @@ # Equivalent to ADD_LIBRARY(), but additionally it supports KDE4_ENABLE_FINAL # and under Windows it adds a -DMAKE_<name>_LIB definition to the compilation. # +# KDE4_ADD_UNIT_TEST (testname [TESTNAME targetname] file1 ... fileN) +# add a unit test, which is executed when running make test +# it will be built with RPATH poiting to the build dir +# The targets are always created, but only built for the "all" +# target if the option KDE4_BUILD_TESTS is enabled. Otherwise the rules for the target +# are created but not built by default. You can build them by manually building the target. +# The name of the target can be specified using TESTNAME <targetname>, if it is not given +# the macro will default to the <testname> +# +# KDE4_ADD_TEST_EXECUTABLE (name file1 ... fileN) +# add an test executable +# it will be built with RPATH poiting to the build dir +# The targets are always created, but only built for the "all" +# target if the option KDE4_BUILD_TESTS is enabled. Otherwise the rules for the target +# are created but not built by default. You can build them by manually building the target. # KDE4_INSTALL_ICONS( path theme) # Installs all png and svgz files in the current directory to the icon # directoy given in path, in the subdirectory for the given icon theme. diff --git a/modules/KDE4Macros.cmake b/modules/KDE4Macros.cmake index 0988291b..9e5494a6 100644 --- a/modules/KDE4Macros.cmake +++ b/modules/KDE4Macros.cmake @@ -742,13 +742,31 @@ macro (KDE4_ADD_KDEINIT_EXECUTABLE _target_NAME ) endmacro (KDE4_ADD_KDEINIT_EXECUTABLE) +# add a unit test, which is executed when running make test +# it will be built with RPATH poiting to the build dir +# The targets are always created, but only built for the "all" +# target if the option KDE4_BUILD_TESTS is enabled. Otherwise the rules for the target +# are created but not built by default. You can build them by manually building the target. +# The name of the target can be specified using TESTNAME <testname>, if it is not given +# the macro will default to the <name> +macro (KDE4_ADD_UNIT_TEST _test_NAME) + set(_srcList ${ARGN}) + set(_targetName ${_test_NAME}) + if( ${ARGV1} STREQUAL "TESTNAME" ) + set(_targetName ${ARGV2}) + LIST(REMOVE_AT _srcList 0 1) + endif( ${ARGV1} STREQUAL "TESTNAME" ) + kde4_add_test_executable( ${_test_NAME} ${_srcList} ) + get_target_property(_target_OUTPUT_PATH ${_test_NAME} EXECUTABLE_OUTPUT_PATH) + add_test( ${_targetName} ${_target_OUTPUT_PATH}/${_test_NAME} ) +endmacro (KDE4_ADD_UNIT_TEST) # add an test executable # it will be built with RPATH poiting to the build dir # The targets are always created, but only built for the "all" # target if the option KDE4_BUILD_TESTS is enabled. Otherwise the rules for the target # are created but not built by default. You can build them by manually building the target. -macro (KDE4_ADD_TEST _target_NAME) +macro (KDE4_ADD_TEST_EXECUTABLE _target_NAME) set(_add_executable_param) @@ -770,7 +788,7 @@ macro (KDE4_ADD_TEST _target_NAME) target_link_libraries(${_target_NAME} ${QT_QTMAIN_LIBRARY}) endif (WIN32) -endmacro (KDE4_ADD_TEST) +endmacro (KDE4_ADD_TEST_EXECUTABLE) macro (KDE4_ADD_EXECUTABLE _target_NAME) |