Skip to content

Commit

Permalink
test/standalone-cmake test script improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
dan-obx committed Aug 5, 2024
1 parent 0624a86 commit 98f3563
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 43 deletions.
4 changes: 3 additions & 1 deletion test/standalone-cmake/cpp-flat/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
#include "objectbox-model.h"
#include "task.obx.hpp"

#include <cinttypes>

int main(int argc, char* args[])
{
// create_obx_model() provided by objectbox-model.h
Expand All @@ -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());

Expand Down
63 changes: 21 additions & 42 deletions test/standalone-cmake/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

0 comments on commit 98f3563

Please sign in to comment.