diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/ECMMarkAsTest.cmake | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/modules/ECMMarkAsTest.cmake b/modules/ECMMarkAsTest.cmake new file mode 100644 index 00000000..5d359a61 --- /dev/null +++ b/modules/ECMMarkAsTest.cmake @@ -0,0 +1,32 @@ +# - Function for marking targets as being only for testing +# This module provides the function ECM_MARK_AS_TEST(). +# +# The ECM_MARK_AS_TEST function is used to indicate that a target should only +# be built if the BUILD_TESTING option (provided by CTest) is enabled. +# +# ECM_MARK_AS_TEST( target1 target2 ... targetN ) +# +# If BUILD_TESTING is False, then targets marked as tests are exluded from +# the ALL target. They are all part of the 'buildtests' target though, so +# even if building with BUILD_TESTING set to False, it is possible to build +# all tests by invoking the 'buildtests' target. + +if (NOT BUILD_TESTING) +    get_property(_buildtestsAdded GLOBAL PROPERTY BUILDTESTS_ADDED) +    if(NOT _buildtestsAdded) +        add_custom_target(buildtests) +        set_property(GLOBAL PROPERTY BUILDTESTS_ADDED TRUE) +    endif() +endif() + +function(ecm_mark_as_test) +  if (NOT BUILD_TESTING) +    foreach(_target ${ARGN}) +      set_target_properties(${_target} +        PROPERTIES +        EXCLUDE_FROM_ALL 1 +      ) +      add_dependencies(buildtests ${_target}) +    endforeach() +  endif() +endfunction() | 
