From 9142c184e9ab99c09e6d93a6dc0be932162125de Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Tue, 21 Dec 2021 09:27:55 +0100 Subject: [PATCH] eclass/cmake-multilib: Sync with gentoo It's from gentoo commit e97c8246b1b81c5e79480af3e152fab5df4ff3d2. --- .../eclass/cmake-multilib.eclass | 70 ++++++++++++------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/sdk_container/src/third_party/portage-stable/eclass/cmake-multilib.eclass b/sdk_container/src/third_party/portage-stable/eclass/cmake-multilib.eclass index 2693d9c72e..b40157dc3f 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/cmake-multilib.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/cmake-multilib.eclass @@ -1,50 +1,62 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: cmake-multilib.eclass # @MAINTAINER: -# gx86-multilib team +# Michał Górny # @AUTHOR: # Author: Michał Górny -# @SUPPORTED_EAPIS: 6 7 -# @BLURB: cmake-utils wrapper for multilib builds +# @SUPPORTED_EAPIS: 7 8 +# @PROVIDES: cmake cmake-utils multilib-minimal +# @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'. +[[ ${EAPI} == 7 ]] && : ${CMAKE_ECLASS:=cmake-utils} # @ECLASS-VARIABLE: CMAKE_ECLASS +# @PRE_INHERIT # @DESCRIPTION: -# Default is "cmake-utils" for compatibility. Specify "cmake" for ebuilds -# that ported from cmake-utils.eclass to cmake.eclass already. -: ${CMAKE_ECLASS:=cmake-utils} +# Only "cmake" is supported in EAPI-8 and later. +# In EAPI-7, default is "cmake-utils" for compatibility. Specify "cmake" for +# ebuilds that ported to cmake.eclass already. +: ${CMAKE_ECLASS:=cmake} -case ${EAPI:-0} in - [67]) ;; - *) die "EAPI=${EAPI} is not supported" ;; +# @ECLASS-VARIABLE: _CMAKE_ECLASS_IMPL +# @INTERNAL +# @DESCRIPTION: +# TODO: Cleanup once EAPI-7 support is gone. +_CMAKE_ECLASS_IMPL=cmake + +case ${EAPI} in + 7|8) + 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 "${ECLASS}: EAPI=${EAPI:-0} is not supported" ;; esac 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 +if [[ -z ${_CMAKE_MULTILIB_ECLASS} ]]; then +_CMAKE_MULTILIB_ECLASS=1 -inherit ${CMAKE_ECLASS} multilib-minimal - -EXPORT_FUNCTIONS src_configure src_compile src_test src_install +inherit ${_CMAKE_ECLASS_IMPL} multilib-minimal cmake-multilib_src_configure() { local _cmake_args=( "${@}" ) @@ -53,7 +65,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 +75,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 +85,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 +95,9 @@ cmake-multilib_src_install() { } multilib_src_install() { - ${CMAKE_ECLASS}_src_install "${_cmake_args[@]}" + ${_CMAKE_ECLASS_IMPL}_src_install "${_cmake_args[@]}" } + +fi + +EXPORT_FUNCTIONS src_configure src_compile src_test src_install