commit: 356cc0a6b2ae8f4a43f069c09e1fd5191460d485 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Sat Mar 6 17:01:22 2021 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Thu Mar 11 19:52:48 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=356cc0a6
cmake-multilib.eclass: Prepare for cmake.eclass default in future EAPI Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> eclass/cmake-multilib.eclass | 47 +++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/eclass/cmake-multilib.eclass b/eclass/cmake-multilib.eclass index 7319d6b0538..e6d8fe64a02 100644 --- a/eclass/cmake-multilib.eclass +++ b/eclass/cmake-multilib.eclass @@ -7,26 +7,41 @@ # @AUTHOR: # Author: Michał Górny <mgo...@gentoo.org> # @SUPPORTED_EAPIS: 7 -# @BLURB: cmake-utils wrapper for multilib builds +# @BLURB: cmake wrapper for multilib builds # @DESCRIPTION: -# The cmake-multilib.eclass provides a glue between cmake-utils.eclass(5) +# The cmake-multilib.eclass provides a glue between cmake.eclass(5) # and multilib-minimal.eclass(5), aiming to provide a convenient way # to build packages using cmake for multiple ABIs. # # Inheriting this eclass sets IUSE and exports default multilib_src_*() -# sub-phases that call cmake-utils phase functions for each ABI enabled. +# sub-phases that call cmake phase functions for each ABI enabled. # The multilib_src_*() functions can be defined in ebuild just like -# in multilib-minimal, yet they ought to call appropriate cmake-utils +# in multilib-minimal, yet they ought to call appropriate cmake # phase rather than 'default'. # @ECLASS-VARIABLE: CMAKE_ECLASS # @DESCRIPTION: -# Default is "cmake-utils" for compatibility. Specify "cmake" for ebuilds -# that ported from cmake-utils.eclass to cmake.eclass already. +# Default is "cmake-utils" for compatibility in EAPI-7. Specify "cmake" for +# ebuilds that ported to cmake.eclass already. Future EAPI is "cmake" only. : ${CMAKE_ECLASS:=cmake-utils} +# @ECLASS-VARIABLE: _CMAKE_ECLASS_IMPL +# @INTERNAL +# @DESCRIPTION: +# Default is "cmake" for future EAPI. Cleanup once EAPI-7 support is gone. +_CMAKE_ECLASS_IMPL=cmake + case ${EAPI:-0} in - 7) ;; + 7) + case ${CMAKE_ECLASS} in + cmake-utils|cmake) ;; + *) + eerror "Unknown value for \${CMAKE_ECLASS}" + die "Value ${CMAKE_ECLASS} is not supported" + ;; + esac + _CMAKE_ECLASS_IMPL=${CMAKE_ECLASS} + ;; *) die "EAPI=${EAPI} is not supported" ;; esac @@ -34,15 +49,7 @@ if [[ ${CMAKE_IN_SOURCE_BUILD} ]]; then die "${ECLASS}: multilib support requires out-of-source builds." fi -case ${CMAKE_ECLASS} in - cmake-utils|cmake) ;; - *) - eerror "Unknown value for \${CMAKE_ECLASS}" - die "Value ${CMAKE_ECLASS} is not supported" - ;; -esac - -inherit ${CMAKE_ECLASS} multilib-minimal +inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal EXPORT_FUNCTIONS src_configure src_compile src_test src_install @@ -53,7 +60,7 @@ cmake-multilib_src_configure() { } multilib_src_configure() { - ${CMAKE_ECLASS}_src_configure "${_cmake_args[@]}" + ${_CMAKE_ECLASS_IMPL}_src_configure "${_cmake_args[@]}" } cmake-multilib_src_compile() { @@ -63,7 +70,7 @@ cmake-multilib_src_compile() { } multilib_src_compile() { - ${CMAKE_ECLASS}_src_compile "${_cmake_args[@]}" + ${_CMAKE_ECLASS_IMPL}_src_compile "${_cmake_args[@]}" } cmake-multilib_src_test() { @@ -73,7 +80,7 @@ cmake-multilib_src_test() { } multilib_src_test() { - ${CMAKE_ECLASS}_src_test "${_cmake_args[@]}" + ${_CMAKE_ECLASS_IMPL}_src_test "${_cmake_args[@]}" } cmake-multilib_src_install() { @@ -83,5 +90,5 @@ cmake-multilib_src_install() { } multilib_src_install() { - ${CMAKE_ECLASS}_src_install "${_cmake_args[@]}" + ${_CMAKE_ECLASS_IMPL}_src_install "${_cmake_args[@]}" }