commit:     06d50c76fcc5d796c53c6ac4b1c0857f47eea3ef
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Aug  8 07:17:31 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Aug  8 07:17:31 2017 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=06d50c76

kde-frameworks/extra-cmake-modules: Backport fix to ECMAddTests.cmake

Respecting BUILD_TESTING will enable us to drop a lot of eclass magic.

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 .../extra-cmake-modules-5.37.0.ebuild              |  2 +
 .../extra-cmake-modules-5.37.0-ecmaddtest.patch    | 74 ++++++++++++++++++++++
 2 files changed, 76 insertions(+)

diff --git 
a/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.37.0.ebuild 
b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.37.0.ebuild
index a1079a5899..231e84818f 100644
--- a/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.37.0.ebuild
+++ b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-5.37.0.ebuild
@@ -31,6 +31,8 @@ RDEPEND="
        app-arch/libarchive[bzip2]
 "
 
+PATCHES=( "${FILESDIR}/${P}-ecmaddtest.patch" )
+
 python_check_deps() {
        has_version "dev-python/sphinx[${PYTHON_USEDEP}]"
 }

diff --git 
a/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.37.0-ecmaddtest.patch
 
b/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.37.0-ecmaddtest.patch
new file mode 100644
index 0000000000..fe86754188
--- /dev/null
+++ 
b/kde-frameworks/extra-cmake-modules/files/extra-cmake-modules-5.37.0-ecmaddtest.patch
@@ -0,0 +1,74 @@
+From b99d2d2c5dedcaba9745dddc1dd7b8d4811babf1 Mon Sep 17 00:00:00 2001
+From: Kevin Funk <kf...@kde.org>
+Date: Mon, 7 Aug 2017 15:50:25 +0200
+Subject: 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
+---
+ modules/ECMAddTests.cmake | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/modules/ECMAddTests.cmake b/modules/ECMAddTests.cmake
+index 9667388..c77a7aa 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
+-- 
+cgit v0.11.2

Reply via email to