devtools: split meson build helper

No functional change intended, prepare for reusing this code.
The config and compilation parts are separated in helpers.
Unsetting CC is moved to the caller of the helper.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Luca Boccassi <bluca@debian.org>
This commit is contained in:
David Marchand 2020-02-02 22:08:33 +01:00 committed by Thomas Monjalon
parent 251d69a26e
commit d6f923ba4a

View File

@ -57,25 +57,27 @@ load_env () # <target compiler>
. $srcdir/devtools/load-devel-config
}
build () # <directory> <target compiler> <meson options>
config () # <dir> <builddir> <meson options>
{
builddir=$builds_dir/$1
dir=$1
shift
targetcc=$1
builddir=$1
shift
# skip build if compiler not available
command -v ${CC##* } >/dev/null 2>&1 || return 0
load_env $targetcc || return 0
if [ ! -f "$builddir/build.ninja" ] ; then
options="--werror -Dexamples=all"
for option in $DPDK_MESON_OPTIONS ; do
options="$options -D$option"
done
options="$options $*"
echo "$MESON $options $srcdir $builddir"
$MESON $options $srcdir $builddir
unset CC
if [ -f "$builddir/build.ninja" ] ; then
return
fi
options="--werror -Dexamples=all"
for option in $DPDK_MESON_OPTIONS ; do
options="$options -D$option"
done
options="$options $*"
echo "$MESON $options $dir $builddir"
$MESON $options $dir $builddir
}
compile () # <builddir>
{
builddir=$1
if [ -n "$TEST_MESON_BUILD_VERY_VERBOSE" ] ; then
# for full output from ninja use "-v"
echo "$ninja_cmd -v -C $builddir"
@ -90,6 +92,19 @@ build () # <directory> <target compiler> <meson options>
fi
}
build () # <directory> <target compiler> <meson options>
{
targetdir=$1
shift
targetcc=$1
shift
# skip build if compiler not available
command -v ${CC##* } >/dev/null 2>&1 || return 0
load_env $targetcc || return 0
config $srcdir $builds_dir/$targetdir $*
compile $builds_dir/$targetdir
}
if [ "$1" = "-vv" ] ; then
TEST_MESON_BUILD_VERY_VERBOSE=1
elif [ "$1" = "-v" ] ; then
@ -107,6 +122,7 @@ for c in gcc clang ; do
for s in static shared ; do
export CC="$CCACHE $c"
build build-$c-$s $c --default-library=$s
unset CC
done
done
@ -125,11 +141,13 @@ c=aarch64-linux-gnu-gcc
export CC="clang"
build build-arm64-host-clang $c $use_shared \
--cross-file $srcdir/config/arm/arm64_armv8_linux_gcc
unset CC
# all gcc/arm configurations
for f in $srcdir/config/arm/arm64_[bdo]*gcc ; do
export CC="$CCACHE gcc"
build build-$(basename $f | tr '_' '-' | cut -d'-' -f-2) $c \
$use_shared --cross-file $f
unset CC
done
# Test installation of the x86-default target, to be used for checking