From 98f356364275b03ea8f91c62fe6b45934751baf6 Mon Sep 17 00:00:00 2001 From: Daniel Adler Date: Mon, 5 Aug 2024 17:30:51 +0200 Subject: [PATCH] test/standalone-cmake test script improvements --- test/standalone-cmake/cpp-flat/main.cpp | 4 +- test/standalone-cmake/test.sh | 63 +++++++++---------------- 2 files changed, 24 insertions(+), 43 deletions(-) diff --git a/test/standalone-cmake/cpp-flat/main.cpp b/test/standalone-cmake/cpp-flat/main.cpp index a220d44..22c17d3 100644 --- a/test/standalone-cmake/cpp-flat/main.cpp +++ b/test/standalone-cmake/cpp-flat/main.cpp @@ -7,6 +7,8 @@ #include "objectbox-model.h" #include "task.obx.hpp" +#include + int main(int argc, char* args[]) { // create_obx_model() provided by objectbox-model.h @@ -24,7 +26,7 @@ int main(int argc, char* args[]) box.put(*task); // Update } - printf("Your task has ID=%llu, text=%s\n", + printf("Your task has ID=%" PRIu64 ", text=%s\n", id, box.get(id)->text.c_str()); diff --git a/test/standalone-cmake/test.sh b/test/standalone-cmake/test.sh index 3d882a8..a746706 100755 --- a/test/standalone-cmake/test.sh +++ b/test/standalone-cmake/test.sh @@ -4,11 +4,12 @@ set -xeuo pipefail topdir=$(dirname "$(readlink -f "$0")") projects=("cpp-flat") -uname=`uname` - single_generators=() multi_generators=() +variants=("default" "insource") +variant_flags=("-DDO_INSOURCE=FALSE" "-DDO_INSOURCE=TRUE") + # Auto-detect tools on path: if [ `command -v ninja` ]; then @@ -47,53 +48,31 @@ clean() configure_and_build_projects() { generator=$1 - echo "*** cmake single-config generator: $generator" - label=`echo $generator | tr ' ' '_'` - for project in $projects; do - echo "*** project: $project" - srcdir=$topdir/$project - builddir=$topdir/build/$label/$project/default - clean $srcdir - echo "** cmake single-config generator: $generator (default out-of-source)" - cmake -S $srcdir -B $builddir -G "$generator" - cmake --build $builddir - builddir=$topdir/build/$label/$project/insource - clean $srcdir - echo "** cmake single-config generator: $generator (in-source)" - cmake -S $srcdir -B $builddir -G "$generator" -DDO_INSOURCE=TRUE - cmake --build $builddir - done -} - -configure_and_build_projects_multi() -{ - generator=$1 - echo "*** cmake multi-config generator: $generator" label=`echo $generator | tr ' ' '_'` + echo "*** cmake generator: $generator" + shift 1 for project in $projects; do echo "*** project: $project" srcdir=$topdir/$project - builddir=$topdir/build/$label/$project/default - clean $srcdir - echo "** cmake multi-config generator: $generator (default out-of-source)" - cmake -S $srcdir -B $builddir -G "$generator" - cmake --build $builddir --config Debug - cmake --build $builddir --config Release - builddir=$topdir/build/$label/$project/insource - clean $srcdir - echo "** cmake multi-config generator: $generator (in-source)" - cmake -S $srcdir -B $builddir -G "$generator" -DDO_INSOURCE=TRUE - cmake --build $builddir --config Debug - cmake --build $builddir --config Release + for ((i=0; i < ${#variants[@]} ; ++i)); do + variant=${variants[$i]} + configure_flags=${variant_flags[$i]} + builddir=$topdir/build/$label/$project/$variant + clean $srcdir + echo "** $generator-$project-$variant" + cmake -S $srcdir -B $builddir -G "$generator" ${configure_flags} + for config in "$@"; do + cmake --build $builddir "$config" + done + done done } - -echo "**** single-config cmake generators:" -for single_generator in "${single_generators[@]}"; do - configure_and_build_projects "$single_generator" -done echo "**** multi-config cmake generators:" for multi_generator in "${multi_generators[@]}"; do - configure_and_build_projects_multi "$multi_generator" + configure_and_build_projects "$multi_generator" "--config Release" "--config Debug" +done +echo "**** single-config cmake generators:" +for single_generator in "${single_generators[@]}"; do + configure_and_build_projects "$single_generator" "--config Debug" done