toolchain-funcs.eclass: Add tc-check-min_ver()

Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2024-12-13 19:00:16 +01:00
parent 219477c9c1
commit 10b4b09766

View File

@@ -647,6 +647,50 @@ _tc-has-openmp() {
return ${ret}
}
# @FUNCTION: tc-check-min_ver
# @USAGE: <gcc or clang> <minimum version>
# @DESCRIPTION:
# Minimum version of active GCC or Clang to require.
#
# You should test for any necessary minimum version in pkg_pretend in order to
# warn the user of required toolchain changes. You must still check for it at
# build-time, e.g.
# @CODE
# pkg_pretend() {
# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0
# }
#
# pkg_setup() {
# [[ ${MERGE_TYPE} != binary ]] && tc-check-min_ver gcc 13.2.0
# }
# @CODE
tc-check-min_ver() {
do_check() {
debug-print "Compiler version check for ${1}"
debug-print "Detected: ${2}"
debug-print "Required: ${3}"
if ver_test ${2} -lt ${3}; then
eerror "Your current compiler is too old for this package!"
die "Active compiler is too old for this package (found ${1} ${2})."
fi
}
case ${1} in
gcc)
tc-is-gcc || return
do_check GCC $(gcc-version) ${2}
;;
clang)
tc-is-clang || return
do_check Clang $(clang-version) ${2}
;;
*)
eerror "Unknown first parameter for ${FUNCNAME} - must be gcc or clang"
die "${FUNCNAME}: Parameter ${1} unknown"
;;
esac
}
# @FUNCTION: tc-check-openmp
# @DESCRIPTION:
# Test for OpenMP support with the current compiler and error out with