When a target compilation is broken, one way to skip the target is to uninstall the associated toolchain. But it is not always possible and you end up with hacking the script to avoid this target until a fix is ready.
It is also often quicker to check a fix on a failing target before checking compilation on all targets. Introduce a variable to select targets. Example: $ DPDK_BUILD_TEST_TARGETS=build-x86-mingw \ ./devtools/test-meson-builds.sh ninja: Entering directory `/home/dmarchan/builds/build-x86-mingw' [...] Found ninja-1.10.1 at /usr/bin/ninja [19/19] Linking target examples/dpdk-helloworld.exe Signed-off-by: David Marchand <david.march...@redhat.com> --- devtools/test-meson-builds.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index c11ae87e0d..3e88e8291e 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -92,6 +92,15 @@ load_env () # <target compiler> command -v $targetcc >/dev/null 2>&1 || return 1 } +target_is_selected() +{ + if [ -z "${DPDK_BUILD_TEST_TARGETS:-}" ]; then + return 0 + fi + target_filter=" $DPDK_BUILD_TEST_TARGETS " + ! [ "${target_filter##* $1 }" = "${target_filter}" ] +} + config () # <dir> <builddir> <meson options> { dir=$1 @@ -149,6 +158,7 @@ install_target () # <builddir> <installdir> build () # <directory> <target cc | cross file> <ABI check> [meson options] { targetdir=$1 + target_is_selected $targetdir || return 0 shift crossfile= [ -r $1 ] && crossfile=$1 || targetcc=$1 @@ -271,6 +281,8 @@ for f in $srcdir/config/ppc/ppc* ; do build $targetdir $f ABI $use_shared done +target_is_selected build-x86-default || exit 0 + # Test installation of the x86-default target, to be used for checking # the sample apps build using the pkg-config file for cflags and libs load_env cc -- 2.23.0