Signed-off-by: Andreas Sturmlechner <ast...@gentoo.org> --- eclass/cmake.eclass | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass index 43635d0ddf7..3c611071821 100644 --- a/eclass/cmake.eclass +++ b/eclass/cmake.eclass @@ -66,11 +66,23 @@ _CMAKE_ECLASS=1 : ${CMAKE_MAKEFILE_GENERATOR:=ninja} # @ECLASS-VARIABLE: CMAKE_REMOVE_MODULES_LIST +# @PRE_INHERIT +# @DEFAULT_UNSET # @DESCRIPTION: -# Array of CMake modules that will be removed in ${CMAKE_USE_DIR} -# (in EAPI-7: ${S}) during src_prepare, in order to force packages to use the -# system version. Set to empty to disable removing modules entirely. -: ${CMAKE_REMOVE_MODULES_LIST:=FindBLAS FindLAPACK} +# Array of .cmake modules to be removed in ${CMAKE_USE_DIR} (in EAPI-7: ${S}) +# during src_prepare, in order to force packages to use the system version. +# By default, contains "FindBLAS" and "FindLAPACK". +# Set to empty to disable removing modules entirely. +if [[ ${CMAKE_REMOVE_MODULES_LIST} ]]; then + if [[ ${EAPI} != 7 ]]; then + [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* ]] || + die "CMAKE_REMOVE_MODULES_LIST must be an array" + fi +else + if ! [[ ${CMAKE_REMOVE_MODULES_LIST@a} == *a* && ${#CMAKE_REMOVE_MODULES_LIST[@]} -eq 0 ]]; then + CMAKE_REMOVE_MODULES_LIST=( FindBLAS FindLAPACK ) + fi +fi # @ECLASS-VARIABLE: CMAKE_USE_DIR # @DESCRIPTION: @@ -355,10 +367,10 @@ cmake_src_prepare() { fi local modules_list - if [[ $(declare -p CMAKE_REMOVE_MODULES_LIST) == "declare -a"* ]]; then - modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) - else + if [[ ${EAPI} == 7 && $(declare -p CMAKE_REMOVE_MODULES_LIST) != "declare -a"* ]]; then modules_list=( ${CMAKE_REMOVE_MODULES_LIST} ) + else + modules_list=( "${CMAKE_REMOVE_MODULES_LIST[@]}" ) fi local name -- 2.33.0
signature.asc
Description: This is a digitally signed message part.