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:
parent
251d69a26e
commit
d6f923ba4a
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user