diff options
author | Mike Gilbert <floppym@gentoo.org> | 2018-05-12 12:41:17 -0400 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2018-05-24 00:46:53 -0400 |
commit | 0fe549260636840b96dfd3b9f55b5bbf7ea1d6a3 (patch) | |
tree | b0f25d3e98c54375ca3680730103d0e73fc37b72 /eclass | |
parent | meson.eclass: define {fortran,objc,objcpp}_link_args (diff) | |
download | gentoo-0fe549260636840b96dfd3b9f55b5bbf7ea1d6a3.tar.gz gentoo-0fe549260636840b96dfd3b9f55b5bbf7ea1d6a3.tar.bz2 gentoo-0fe549260636840b96dfd3b9f55b5bbf7ea1d6a3.zip |
meson.eclass: add _meson_move_flags function
This is used to move flags from CC to CFLAGS, typically during a
multilib build.
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/meson.eclass | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/eclass/meson.eclass b/eclass/meson.eclass index 06e76092a6b9..d15e3ff58795 100644 --- a/eclass/meson.eclass +++ b/eclass/meson.eclass @@ -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}" ) |