mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-18 10:27:00 +02:00
eclass/llvm: Sync with Gentoo
It's from Gentoo commit 8599d81ad63fc46bf04061c99292f1814e022333.
This commit is contained in:
parent
f598342f7f
commit
d72742215e
@ -87,11 +87,11 @@ DEPEND="!!sys-devel/llvm:0"
|
|||||||
# Correct values of LLVM slots, newest first.
|
# Correct values of LLVM slots, newest first.
|
||||||
declare -g -r _LLVM_KNOWN_SLOTS=( {16..8} )
|
declare -g -r _LLVM_KNOWN_SLOTS=( {16..8} )
|
||||||
|
|
||||||
# @FUNCTION: get_llvm_prefix
|
# @FUNCTION: get_llvm_slot
|
||||||
# @USAGE: [-b|-d] [<max_slot>]
|
# @USAGE: [-b|-d] [<max_slot>]
|
||||||
# @DESCRIPTION:
|
# @DESCRIPTION:
|
||||||
# Find the newest LLVM install that is acceptable for the package,
|
# Find the newest LLVM install that is acceptable for the package,
|
||||||
# and print an absolute path to it.
|
# and print its major version number (i.e. slot).
|
||||||
#
|
#
|
||||||
# If -b is specified, the checks are performed relative to BROOT,
|
# If -b is specified, the checks are performed relative to BROOT,
|
||||||
# and BROOT-path is returned. This is appropriate when your package
|
# and BROOT-path is returned. This is appropriate when your package
|
||||||
@ -114,7 +114,7 @@ declare -g -r _LLVM_KNOWN_SLOTS=( {16..8} )
|
|||||||
# is acceptable, false otherwise. If llvm_check_deps() is not defined,
|
# is acceptable, false otherwise. If llvm_check_deps() is not defined,
|
||||||
# the function defaults to checking whether sys-devel/llvm:${LLVM_SLOT}
|
# the function defaults to checking whether sys-devel/llvm:${LLVM_SLOT}
|
||||||
# is installed.
|
# is installed.
|
||||||
get_llvm_prefix() {
|
get_llvm_slot() {
|
||||||
debug-print-function ${FUNCNAME} "${@}"
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
local hv_switch=-d
|
local hv_switch=-d
|
||||||
@ -126,23 +126,12 @@ get_llvm_prefix() {
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
local prefix=
|
if [[ ${EAPI} == 6 ]]; then
|
||||||
if [[ ${EAPI} != 6 ]]; then
|
|
||||||
case ${hv_switch} in
|
|
||||||
-b)
|
|
||||||
prefix=${BROOT}
|
|
||||||
;;
|
|
||||||
-d)
|
|
||||||
prefix=${ESYSROOT}
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
case ${hv_switch} in
|
case ${hv_switch} in
|
||||||
-b)
|
-b)
|
||||||
die "${FUNCNAME} -b is not supported in EAPI ${EAPI}"
|
die "${FUNCNAME} -b is not supported in EAPI ${EAPI}"
|
||||||
;;
|
;;
|
||||||
-d)
|
-d)
|
||||||
prefix=${EPREFIX}
|
|
||||||
hv_switch=
|
hv_switch=
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -168,7 +157,7 @@ get_llvm_prefix() {
|
|||||||
has_version ${hv_switch} "sys-devel/llvm:${slot}" || continue
|
has_version ${hv_switch} "sys-devel/llvm:${slot}" || continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${prefix}/usr/lib/llvm/${slot}"
|
echo "${slot}"
|
||||||
return
|
return
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -180,6 +169,31 @@ get_llvm_prefix() {
|
|||||||
die "No LLVM slot${1:+ <= ${1}} satisfying the package's dependencies found installed!"
|
die "No LLVM slot${1:+ <= ${1}} satisfying the package's dependencies found installed!"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: get_llvm_prefix
|
||||||
|
# @USAGE: [-b|-d] [<max_slot>]
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Find the newest LLVM install that is acceptable for the package,
|
||||||
|
# and print an absolute path to it.
|
||||||
|
#
|
||||||
|
# The options and behavior is the same as for get_llvm_slot.
|
||||||
|
get_llvm_prefix() {
|
||||||
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
|
local prefix=${EPREFIX}
|
||||||
|
if [[ ${EAPI} != 6 ]]; then
|
||||||
|
case ${1} in
|
||||||
|
-b)
|
||||||
|
prefix=${BROOT}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
prefix=${ESYSROOT}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${prefix}/usr/lib/llvm/$(get_llvm_slot "${@}")"
|
||||||
|
}
|
||||||
|
|
||||||
# @FUNCTION: llvm_fix_clang_version
|
# @FUNCTION: llvm_fix_clang_version
|
||||||
# @USAGE: <variable-name>...
|
# @USAGE: <variable-name>...
|
||||||
# @DESCRIPTION:
|
# @DESCRIPTION:
|
||||||
@ -256,12 +270,16 @@ llvm_pkg_setup() {
|
|||||||
debug-print-function ${FUNCNAME} "${@}"
|
debug-print-function ${FUNCNAME} "${@}"
|
||||||
|
|
||||||
if [[ ${MERGE_TYPE} != binary ]]; then
|
if [[ ${MERGE_TYPE} != binary ]]; then
|
||||||
|
LLVM_SLOT=$(get_llvm_slot "${LLVM_MAX_SLOT}")
|
||||||
|
|
||||||
llvm_fix_clang_version CC CPP CXX
|
llvm_fix_clang_version CC CPP CXX
|
||||||
# keep in sync with profiles/features/llvm/make.defaults!
|
# keep in sync with profiles/features/llvm/make.defaults!
|
||||||
llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
|
llvm_fix_tool_path ADDR2LINE AR AS LD NM OBJCOPY OBJDUMP RANLIB
|
||||||
llvm_fix_tool_path READELF STRINGS STRIP
|
llvm_fix_tool_path READELF STRINGS STRIP
|
||||||
|
|
||||||
local llvm_path=$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin
|
local prefix=${EPREFIX}
|
||||||
|
[[ ${EAPI} != 6 ]] && prefix=${ESYSROOT}
|
||||||
|
local llvm_path=${prefix}/usr/lib/llvm/${LLVM_SLOT}/bin
|
||||||
local IFS=:
|
local IFS=:
|
||||||
local split_path=( ${PATH} )
|
local split_path=( ${PATH} )
|
||||||
local new_path=()
|
local new_path=()
|
||||||
|
Loading…
Reference in New Issue
Block a user