commit:     24edb3b8d156558891a0161defb28b522cb1b1a5
Author:     Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
AuthorDate: Sun Aug 21 18:23:47 2016 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Sun Aug 21 18:23:47 2016 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=24edb3b8

kde5.eclass: Add KDE_TEST="forceoptional-recursive" handling

Prime example: dev-util/kdevplatform with 24 test* subdirs

 eclass/kde5.eclass | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/eclass/kde5.eclass b/eclass/kde5.eclass
index 8c6a846..01d0f97 100644
--- a/eclass/kde5.eclass
+++ b/eclass/kde5.eclass
@@ -91,8 +91,10 @@ EXPORT_FUNCTIONS pkg_setup pkg_nofetch src_unpack 
src_prepare src_configure src_
 # For any other value, add test to IUSE and add a dependency on 
dev-qt/qttest:5.
 # If set to "optional", configure with -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=ON
 # when USE=!test.
-# If set to "forceoptional", remove a Qt5Test dependency from the root
-# CMakeLists.txt in addition to the above.
+# If set to "forceoptional", remove a Qt5Test dependency and comment test
+# subdirs from the root CMakeLists.txt in addition to the above.
+# If set to "forceoptional-recursive", remove a Qt5Test dependency and comment
+# test subdirs from *any* CMakeLists.txt in addition to the above.
 if [[ ${CATEGORY} = kde-frameworks ]]; then
        : ${KDE_TEST:=true}
 else
@@ -554,13 +556,17 @@ EOF
                if [[ ${KDE_TEST} = forceoptional ]] ; then
                        punt_bogus_dep Qt5 Test
                        # if forceoptional, also cover non-kde categories
-                       cmake_comment_add_subdirectory autotests
-                       cmake_comment_add_subdirectory test
-                       cmake_comment_add_subdirectory tests
+                       cmake_comment_add_subdirectory autotests test tests
+               elif [[ ${KDE_TEST} = forceoptional-recursive ]] ; then
+                       local d
+                       for d in $(find . -type d -name "autotests" -or -name 
"tests" -or -name "test"); do
+                               pushd ${d%/*} > /dev/null || die
+                                       punt_bogus_dep Qt5 Test
+                                       cmake_comment_add_subdirectory 
autotests test tests
+                               popd > /dev/null || die
+                       done
                elif [[ ${CATEGORY} = kde-frameworks || ${CATEGORY} = 
kde-plasma || ${CATEGORY} = kde-apps ]] ; then
-                       cmake_comment_add_subdirectory autotests
-                       cmake_comment_add_subdirectory test
-                       cmake_comment_add_subdirectory tests
+                       cmake_comment_add_subdirectory autotests test tests
                fi
        fi
 }

Reply via email to