From b7bec845e2da25ec3a75d3a315dd0aa5bd07b159 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 1 Feb 2012 13:25:14 +0100 Subject: Add the ecm_mark_as_test macro. This is for cases when adding targets that are only part of the testing infrastructure so that they can be built conditionally or not at all. --- modules/ECMMarkAsTest.cmake | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 modules/ECMMarkAsTest.cmake (limited to 'modules/ECMMarkAsTest.cmake') 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() -- cgit v1.2.1