mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
meson.eclass: add _meson_move_flags function
This is used to move flags from CC to CFLAGS, typically during a multilib build.
This commit is contained in:
@@ -198,6 +198,25 @@ meson_use() {
|
||||
usex "$1" "-D${2-$1}=true" "-D${2-$1}=false"
|
||||
}
|
||||
|
||||
# @FUNCTION: _meson_move_flags
|
||||
# @INTERNAL
|
||||
# @USAGE: PROG FLAGS
|
||||
# @DESCRIPTION:
|
||||
# Moves extra arguments from PROG to FLAGS.
|
||||
# For example:
|
||||
# CC="gcc -m32" -> CC="gcc" CFLAGS="-m32"
|
||||
_meson_move_flags() {
|
||||
local prog=${1}
|
||||
local flags=${2}
|
||||
local x=( ${!prog} )
|
||||
if [[ -n ${x[0]} ]]; then
|
||||
export ${prog}=${x[0]}
|
||||
fi
|
||||
if [[ -n ${x[1]} ]]; then
|
||||
export ${flags}="${x[@]:1}${!flags:+ }${!flags}"
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: meson_src_configure
|
||||
# @DESCRIPTION:
|
||||
# This is the meson_src_configure function.
|
||||
@@ -214,6 +233,18 @@ meson_src_configure() {
|
||||
--wrap-mode nodownload
|
||||
)
|
||||
|
||||
# Prevent multilib flags from leaking across ABIs
|
||||
local -x BUILD_CFLAGS=${BUILD_CFLAGS}
|
||||
local -x BUILD_CXXFLAGS=${BUILD_CXXFLAGS}
|
||||
|
||||
# Move multilib flags from CC to CFLAGS
|
||||
local -x CC=$(tc-getCC) CFLAGS=${CFLAGS}
|
||||
_meson_move_flags CC CFLAGS
|
||||
|
||||
# Move multilib flags from CXX to CXXFLAGS
|
||||
local -x CXX=$(tc-getCXX) CXXFLAGS=${CXXFLAGS}
|
||||
_meson_move_flags CXX CXXFLAGS
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
_meson_create_cross_file || die "unable to write meson cross file"
|
||||
mesonargs+=( --cross-file "${T}/meson.${CHOST}" )
|
||||
|
||||
Reference in New Issue
Block a user