diff options
| author | Kevin Funk <kfunk@kde.org> | 2017-08-07 15:50:25 +0200 | 
|---|---|---|
| committer | Kevin Funk <kfunk@kde.org> | 2017-08-07 22:25:47 +0200 | 
| commit | b99d2d2c5dedcaba9745dddc1dd7b8d4811babf1 (patch) | |
| tree | 593d114cfe6630a1404ecfd2e819be892ae06040 | |
| parent | 165465ee7116bbbd8c0dd2ae04c2037c45f208a8 (diff) | |
| download | extra-cmake-modules-b99d2d2c5dedcaba9745dddc1dd7b8d4811babf1.tar.gz extra-cmake-modules-b99d2d2c5dedcaba9745dddc1dd7b8d4811babf1.tar.bz2  | |
RFC: Make ECMAddTests respect BUILD_TESTING
Summary:
Use-case: Make building unit tests optional, by just following the CMake
BUILD_TESTING option.
The usual approach to conditionally build tests is to do:
```
if (BUILD_TESTING)
    add_executable(TestOne TestOne.cpp)
    target_link_libraries(TestOne my_library)
endif()
```
or:
```
if (BUILD_TESTING)
    add_subdirectory(tests)
endif()
```
This patch just turns all calls to ecm_add_test(...) into no-ops if
BUILD_TESTING=OFF.
See:
  https://cmake.org/cmake/help/v3.6/module/CTest.html
Reviewers: vkrause
Reviewed By: vkrause
Subscribers: kossebau, vkrause, elvisangelaccio, asturmlechner, apol, #frameworks, #build_system
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D7187
| -rw-r--r-- | modules/ECMAddTests.cmake | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/ECMAddTests.cmake b/modules/ECMAddTests.cmake index 96673888..c77a7aaf 100644 --- a/modules/ECMAddTests.cmake +++ b/modules/ECMAddTests.cmake @@ -49,6 +49,12 @@  # be given; this will be used for both the target and test names (and, as with  # ecm_add_tests(), the NAME_PREFIX argument will be prepended to the test name).  # +# If BUILD_TESTING is set to OFF, ecm_add_test will turn into a no-op and thus +# will not add any test-related targets +# +# BUILD_TESTING is created as a cache variable by the CTest module and by the +# :kde-module:`KDECMakeSettings` module. +#  #  # Since pre-1.0.0. @@ -84,6 +90,10 @@ include(ECMMarkAsTest)  include(ECMMarkNonGuiExecutable)  function(ecm_add_test) +  if(NOT BUILD_TESTING) +      return() # turn this function into a no-op +  endif() +    set(options GUI)    # TARGET_NAME_VAR and TEST_NAME_VAR are undocumented args used by    # ecm_add_tests  | 
