mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-01 18:42:22 +02:00
eclass/cmake-multilib: Sync with gentoo
It's from gentoo commit e97c8246b1b81c5e79480af3e152fab5df4ff3d2.
This commit is contained in:
parent
907b109ff9
commit
9142c184e9
@ -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 <multilib@gentoo.org>
|
||||
# Michał Górny <mgorny@gentoo.org>
|
||||
# @AUTHOR:
|
||||
# Author: Michał Górny <mgorny@gentoo.org>
|
||||
# @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
|
||||
|
Loading…
x
Reference in New Issue
Block a user