Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
7753557
Regenerate Makefile.dep
zayenz Oct 28, 2026
29a74cf
Classify headers for documentation statistics
zayenz Oct 28, 2026
6c2a18f
Rewrite the 6.5.0 changelog entries
zayenz Oct 28, 2026
7676dec
Move worker-control and build details into the reference docs
zayenz Oct 28, 2026
d067d35
Escape at signs in Doxygen changelog credits
zayenz Oct 28, 2026
d325efd
Require Doxygen 1.18 and expand the test-harness documentation
zayenz Oct 28, 2026
878d3dd
Document the updated open-list interfaces and test helper
zayenz Oct 28, 2026
8ad413c
Consolidate arithmetic and extensional test coverage
zayenz Oct 28, 2026
aa42675
Make FlatZinc test cases discriminate constraint behavior
zayenz Oct 28, 2026
7f25123
Compare restart float output numerically
zayenz Oct 28, 2026
ed3ca8a
Ignore stale stop decisions in parallel search
zayenz Oct 28, 2026
7d2a1d5
Simplify search and incremental constraint tests
zayenz Oct 28, 2026
45f2001
Fix fault-test space ownership and remove redundant fault hooks
zayenz Oct 28, 2026
33c08c5
Relax exact actor counts in float power tests
zayenz Oct 28, 2026
9b1974f
Return from every path of the Boolean constant test
zayenz Oct 28, 2026
28fe0ef
Trim duplicate build and public test-harness checks
zayenz Oct 28, 2026
ce1c35e
Make negated CI checks fail the job
zayenz Oct 28, 2026
1216c11
Release brancher filter and print callbacks on disposal
zayenz Oct 28, 2026
fa9a4f3
Check actor type before accessing the trace recorder
zayenz Oct 28, 2026
b33d377
Keep kernel list end markers as ActorLink pointers
zayenz Oct 28, 2026
de93514
Avoid allocating unused search cutoffs in FlatZinc
zayenz Oct 28, 2026
4e0149b
Split FlatZinc registry compilation by constraint family
zayenz Oct 28, 2026
8e16de4
Release FlatZinc grammar temporaries and replaced domains
zayenz Oct 28, 2026
d408b32
Close and unmap FlatZinc input files after parsing
zayenz Oct 28, 2026
589c1d3
Clean up FlatZinc parse state when parsing fails
zayenz Oct 28, 2026
b96c8bb
Let make depend skip configuration-specific headers
zayenz Oct 28, 2026
6907095
Add repository guidance for agents
zayenz Oct 28, 2026
ebc58b8
Stop changelog release descriptions at the next release
zayenz Oct 29, 2026
0704155
Build the macOS and Windows Autoconf CI jobs without experimental APIs
zayenz Oct 29, 2026
88da2e7
Define the search builder destructor in the search library
zayenz Oct 31, 2026
a8a512b
Correct the minimodel dependency note
zayenz Oct 31, 2026
93738e8
Build the partial magic-square example with Autoconf
zayenz Oct 31, 2026
2c512fe
Dispose the merit function of tie-break limited view selections
zayenz Oct 31, 2026
48e07ed
Free search resources on failed roots and LDS resets
zayenz Oct 31, 2026
c84b388
Delete the model in the best-solution PBS test
zayenz Oct 31, 2026
826eead
Avoid integer overflow in unary no-run pruning and bounds distinct
zayenz Oct 31, 2026
252aad3
Dispose the left-branch values of LDSB set branchers
zayenz Oct 31, 2026
5216a81
Free the array index of annotation array accesses in FlatZinc
zayenz Oct 31, 2026
8052dac
Set the build version to 6.5.0 and bump the library ABI
zayenz Oct 28, 2026
c85f171
Name 6.5.0 as the distributed version in the README
zayenz Oct 29, 2026
861a0a3
Clean up the README for the release
zayenz Oct 29, 2026
5e7bbd5
Write the 6.5.0 release notes
zayenz Oct 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/ci/autoconf-install-smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,10 @@ case "$flatzinc_enabled" in
yes)
test -x "$install_prefix/bin/fzn-gecode"
test -x "$install_prefix/bin/mzn-gecode"
! grep -q "/usr/local" "$install_prefix/bin/mzn-gecode"
if grep -q "/usr/local" "$install_prefix/bin/mzn-gecode"; then
echo "mzn-gecode refers to /usr/local instead of the install prefix" >&2
exit 1
fi
test -f "$solver_config"
test -f "$mznlib_dir/experimental/on_restart/fzn_on_restart_complete.mzn"
;;
Expand Down
15 changes: 6 additions & 9 deletions .github/ci/cmake-closure-checks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,19 @@ cmake -S "$GITHUB_WORKSPACE" -B "$RUNNER_TEMP/gecode-closure-minimodel" \
-DGECODE_ENABLE_QT=OFF \
-DGECODE_ENABLE_GIST=OFF \
-DGECODE_ENABLE_MINIMODEL=ON \
-DGECODE_ENABLE_SET_VARS=OFF \
-DGECODE_ENABLE_FLOAT_VARS=OFF \
-DGECODE_ENABLE_DRIVER=OFF \
-DGECODE_ENABLE_FLATZINC=OFF \
-DGECODE_ENABLE_EXAMPLES=OFF \
-DGECODE_ENABLE_INT_VARS=OFF
grep -q 'GECODE_ENABLE_INT_VARS:BOOL=ON' "$RUNNER_TEMP/gecode-closure-minimodel/CMakeCache.txt"

cmake -S "$GITHUB_WORKSPACE" -B "$RUNNER_TEMP/gecode-closure-examples" \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DGECODE_ENABLE_QT=OFF \
-DGECODE_ENABLE_GIST=OFF \
-DGECODE_ENABLE_EXAMPLES=ON \
-DGECODE_ENABLE_SET_VARS=OFF
grep -q 'GECODE_ENABLE_SET_VARS:BOOL=ON' "$RUNNER_TEMP/gecode-closure-examples/CMakeCache.txt"

cmake -S "$GITHUB_WORKSPACE" -B "$RUNNER_TEMP/gecode-no-cpprofiler" \
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
-DGECODE_ENABLE_QT=OFF \
-DGECODE_ENABLE_GIST=OFF \
-DGECODE_ENABLE_CPPROFILER=OFF \
-DGECODE_ENABLE_MPFR=OFF \
-DGECODE_ENABLE_EXAMPLES=OFF
! grep -q -- '--cp-profiler' "$RUNNER_TEMP/gecode-no-cpprofiler/tools/flatzinc/gecode.msc"
if grep -q -- '--cp-profiler' "$RUNNER_TEMP/gecode-no-cpprofiler/tools/flatzinc/gecode.msc"; then exit 1; fi
15 changes: 4 additions & 11 deletions .github/ci/cmake-consumer-smoke-vcpkg.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,11 @@ int main(void) {
cmake_minimum_required(VERSION 3.21)
project(consumer_c LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS gecodedriver)
add_executable(consumer_c main.cpp)
target_link_libraries(consumer_c PRIVATE Gecode::gecodedriver)
if(NOT TARGET Gecode::gecodedriver OR
NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodedriver")
message(FATAL_ERROR "Expected canonical library for legacy component, got: ${Gecode_LIBRARIES}")
endif()
'@ | Set-Content -Encoding utf8 (Join-Path $work "c\CMakeLists.txt")
@'
#include <gecode/driver.hh>
int main(void) {
Gecode::Options options("consumer_c");
return options.model();
}
'@ | Set-Content -Encoding utf8 (Join-Path $work "c\main.cpp")

@'
cmake_minimum_required(VERSION 3.21)
Expand Down Expand Up @@ -144,8 +139,6 @@ cmake -S (Join-Path $work "c") -B (Join-Path $work "c\build") -G "Visual Studio
"-DVCPKG_TARGET_TRIPLET=x64-windows" `
"-DCMAKE_PREFIX_PATH=$prefix"
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_c configure"
cmake --build (Join-Path $work "c\build") --config $env:BUILD_TYPE
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_c build"

cmake -S (Join-Path $work "d") -B (Join-Path $work "d\build") -G "Visual Studio 17 2022" -A x64 `
"-DCMAKE_TOOLCHAIN_FILE=$toolchain" `
Expand Down
73 changes: 64 additions & 9 deletions .github/ci/cmake-consumer-smoke.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ New-Item -ItemType Directory -Force -Path `
(Join-Path $work "a"), `
(Join-Path $work "b"), `
(Join-Path $work "c"), `
(Join-Path $work "flatzinc"), `
(Join-Path $work "manual") | Out-Null

@'
Expand Down Expand Up @@ -55,16 +56,59 @@ int main(void) {
cmake_minimum_required(VERSION 3.21)
project(consumer_c LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS gecodedriver)
add_executable(consumer_c main.cpp)
target_link_libraries(consumer_c PRIVATE Gecode::gecodedriver)
if(NOT TARGET Gecode::gecodedriver OR
NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodedriver")
message(FATAL_ERROR "Expected canonical library for legacy component, got: ${Gecode_LIBRARIES}")
endif()
'@ | Set-Content -Encoding utf8 (Join-Path $work "c\CMakeLists.txt")

@'
#include <gecode/driver.hh>
int main(void) {
Gecode::Options options("consumer_c");
return options.model();
cmake_minimum_required(VERSION 3.21)
project(consumer_flatzinc LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS flatzinc)
add_executable(consumer_flatzinc main.cpp)
target_link_libraries(consumer_flatzinc PRIVATE Gecode::gecodeflatzinc)
'@ | Set-Content -Encoding utf8 (Join-Path $work "flatzinc\CMakeLists.txt")
@'
#include <gecode/flatzinc.hh>
#include <iostream>
#include <memory>
#include <sstream>

bool check(const char* name, const char* model, bool expect_failed = false) {
std::istringstream source(model);
std::ostringstream errors;
Gecode::FlatZinc::Printer printer;
std::unique_ptr<Gecode::FlatZinc::FlatZincSpace> space(
Gecode::FlatZinc::parse(source, printer, errors));
if (!space || (space->status() == Gecode::SS_FAILED) != expect_failed) {
std::cerr << name << ": unexpected parse or propagation result\n"
<< errors.str();
return false;
}
return true;
}
'@ | Set-Content -Encoding utf8 (Join-Path $work "c\main.cpp")

int main() {
// Each registry family lives in its own object file of the library.
bool ok = check("integer constraints",
"var 0..0:x; constraint set_in(x,{1}); solve satisfy;", true);
ok = check("scheduling constraints",
"constraint fzn_cumulatives([0,0],[2,2],[1,1],1); solve satisfy;",
true) && ok;
#ifdef GECODE_HAS_SET_VARS
ok = check("set constraints",
"var set of 1..2:s; constraint set_eq(s,{1}); "
"constraint fzn_set_card(s,2); solve satisfy;", true) && ok;
#endif
#ifdef GECODE_HAS_FLOAT_VARS
ok = check("float constraints",
"var 0.0..1.0:x; constraint fzn_float_eq(x,2.0); solve satisfy;",
true) && ok;
#endif
return ok ? 0 : 1;
}
'@ | Set-Content -Encoding utf8 (Join-Path $work "flatzinc\main.cpp")

@'
cmake_minimum_required(VERSION 3.21)
Expand Down Expand Up @@ -107,8 +151,19 @@ Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_b build"

cmake -S (Join-Path $work "c") -B (Join-Path $work "c\build") -G "Visual Studio 17 2022" -A x64 "-DCMAKE_PREFIX_PATH=$prefix"
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_c configure"
cmake --build (Join-Path $work "c\build") --config $env:BUILD_TYPE
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_c build"

# Parsing must reach every enabled registry family, including from static
# libraries, and the registry's private header must not be installed.
if (Test-Path (Join-Path $prefix "include\gecode\flatzinc\registry-internal.hh")) {
throw "The private FlatZinc registry header was installed."
}
cmake -S (Join-Path $work "flatzinc") -B (Join-Path $work "flatzinc\build") -G "Visual Studio 17 2022" -A x64 "-DCMAKE_PREFIX_PATH=$prefix"
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_flatzinc configure"
cmake --build (Join-Path $work "flatzinc\build") --config $env:BUILD_TYPE
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_flatzinc build"
$env:PATH = "$(Join-Path $prefix 'bin');$env:PATH"
& (Join-Path $work "flatzinc\build\$env:BUILD_TYPE\consumer_flatzinc.exe")
Assert-NativeCommandSucceeded $LASTEXITCODE "consumer_flatzinc run"

# Exercise the installed headers and library without loading the CMake package
# or inheriting compile definitions from an exported target.
Expand Down
104 changes: 83 additions & 21 deletions .github/ci/cmake-consumer-smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ esac
work="$RUNNER_TEMP/gecode-consumers"
rm -rf "$work"
mkdir -p "$work/a" "$work/b" "$work/c" "$work/d/cmake" "$work/e/cmake" "$work/e/stale" \
"$work/f" "$work/g" "$work/h" "$work/i" "$work/j" "$work/k" \
"$work/f" "$work/g" "$work/h" "$work/i" "$work/j" "$work/k" "$work/l" \
"$work/mpfr-prefix/lib/cmake/MPFR"

cat > "$work/a/CMakeLists.txt" <<'EOF'
Expand Down Expand Up @@ -80,18 +80,10 @@ cat > "$work/c/CMakeLists.txt" <<'EOF'
cmake_minimum_required(VERSION 3.21)
project(consumer_c LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS gecodedriver)
if(NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodedriver")
if(NOT TARGET Gecode::gecodedriver OR
NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodedriver")
message(FATAL_ERROR "Expected canonical library for legacy component, got: ${Gecode_LIBRARIES}")
endif()
add_executable(consumer_c main.cpp)
target_link_libraries(consumer_c PRIVATE Gecode::gecodedriver)
EOF
cat > "$work/c/main.cpp" <<'EOF'
#include <gecode/driver.hh>
int main(void) {
Gecode::Options options("consumer_c");
return options.model();
}
EOF

cat > "$work/d/CMakeLists.txt" <<'EOF'
Expand Down Expand Up @@ -187,15 +179,10 @@ cat > "$work/g/CMakeLists.txt" <<'EOF'
cmake_minimum_required(VERSION 3.21)
project(consumer_g LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS gecodesupport)
if(NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodesupport")
if(NOT TARGET Gecode::gecodesupport OR
NOT Gecode_LIBRARIES STREQUAL "Gecode::gecodesupport")
message(FATAL_ERROR "Expected canonical library for legacy component, got: ${Gecode_LIBRARIES}")
endif()
add_executable(consumer_g main.cpp)
target_link_libraries(consumer_g PRIVATE ${Gecode_LIBRARIES})
EOF
cat > "$work/g/main.cpp" <<'EOF'
#include <gecode/support.hh>
int main(void) { return 0; }
EOF

cat > "$work/h/CMakeLists.txt" <<'EOF'
Expand Down Expand Up @@ -244,6 +231,77 @@ cat > "$work/k/main.cpp" <<'EOF'
int main(void) { Gecode::Float::Rounding rounding; return rounding.sqrt_down(4.0) == 2.0 ? 0 : 1; }
EOF

cat > "$work/l/CMakeLists.txt" <<'EOF'
cmake_minimum_required(VERSION 3.21)
project(consumer_l LANGUAGES CXX)
find_package(Gecode CONFIG REQUIRED COMPONENTS flatzinc)
add_executable(consumer_l main.cpp)
target_link_libraries(consumer_l PRIVATE Gecode::gecodeflatzinc)
EOF
cat > "$work/l/main.cpp" <<'EOF'
#include <gecode/flatzinc.hh>
#include <iostream>
#include <memory>
#include <sstream>

bool check(const char* name, const char* model, bool expect_failed = false) {
std::istringstream source(model);
std::ostringstream errors;
Gecode::FlatZinc::Printer printer;
std::unique_ptr<Gecode::FlatZinc::FlatZincSpace> space(
Gecode::FlatZinc::parse(source, printer, errors));
if (!space || (space->status() == Gecode::SS_FAILED) != expect_failed) {
std::cerr << name << ": unexpected parse or propagation result\n"
<< errors.str();
return false;
}
return true;
}

int main() {
bool ok = check("integer and boolean aliases",
"var 0..1:x; var bool:b; constraint fzn_int_eq(x,1); "
"constraint gecode_bool_eq(b,true); constraint bool2int(b,x); "
"constraint fzn_gecode_all_different_offset_fzn([0,0],[x,2]); "
"solve satisfy;");
ok = check("scheduling aliases",
"constraint fzn_cumulatives([0,0],[2,2],[1,1],1); solve satisfy;",
true) && ok;
ok = check("flexible scheduling alias",
"constraint fzn_gecode_cumulatives_flex([0,0],[2,2],[2,2],"
"[3,-2],[0,0],[1],true); solve satisfy;") && ok;
ok = check("membership and fallback aliases",
"var 0..2:x; var bool:b; constraint set_in(x,{1}); "
"constraint fzn_set_in_reif(x,{1},b); constraint bool_eq(b,true); "
"constraint gecode_set_in_imp(x,{1},b); solve satisfy;") && ok;
ok = check("membership propagation",
"var 0..0:x; constraint set_in(x,{1}); solve satisfy;", true) && ok;
#ifdef GECODE_HAS_SET_VARS
ok = check("set aliases",
"var set of 1..2:s; constraint fzn_gecode_set_ite(true,{1},{2},s); "
"constraint gecode_set_eq(s,{1}); constraint set_card(s,1); "
"solve satisfy;") && ok;
ok = check("set propagation",
"var set of 1..2:s; constraint set_eq(s,{1}); "
"constraint fzn_set_card(s,2); solve satisfy;", true) && ok;
#endif
#ifdef GECODE_HAS_FLOAT_VARS
ok = check("float aliases",
"var 0.0..4.0:x; constraint fzn_int2float(2,x); "
"constraint gecode_float_plus(x,2.0,4.0); "
"constraint fzn_gecode_float_pow(x,2,4.0); solve satisfy;") && ok;
ok = check("float propagation",
"var 0.0..1.0:x; constraint fzn_float_eq(x,2.0); solve satisfy;",
true) && ok;
#ifdef GECODE_HAS_MPFR
ok = check("MPFR aliases",
"constraint gecode_float_exp(0.0,1.0); solve satisfy;") && ok;
#endif
#endif
return ok ? 0 : 1;
}
EOF

cat > "$work/mpfr-prefix/lib/cmake/MPFR/MPFRConfig.cmake" <<'EOF'
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
if(NOT TARGET MPFR::MPFR)
Expand All @@ -269,7 +327,6 @@ cmake -S "$work/b" -B "$work/b/build" -DCMAKE_PREFIX_PATH="$prefix"
cmake --build "$work/b/build" -j4

cmake -S "$work/c" -B "$work/c/build" -DCMAKE_PREFIX_PATH="$prefix"
cmake --build "$work/c/build" -j4

# A support-only consumer must not discover dependencies belonging exclusively
# to Float, FlatZinc, or Gist, even when those targets exist in the package.
Expand All @@ -285,7 +342,6 @@ cmake -S "$work/g" -B "$work/g/build" \
-DCMAKE_DISABLE_FIND_PACKAGE_MPFR=TRUE \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt5=TRUE \
-DCMAKE_DISABLE_FIND_PACKAGE_Qt6=TRUE
cmake --build "$work/g/build" -j4

if cmake -S "$work/h" -B "$work/h/build" -DCMAKE_PREFIX_PATH="$prefix"; then
echo "Unknown required Gecode component unexpectedly succeeded" >&2
Expand Down Expand Up @@ -336,7 +392,7 @@ if [ "$mode" = "mpfr" ]; then
fi
"$prefix/bin/fzn-gecode" --help
test -x "$prefix/bin/mzn-gecode"
! grep -q "/usr/local" "$prefix/bin/mzn-gecode"
if grep -q "/usr/local" "$prefix/bin/mzn-gecode"; then exit 1; fi

# Build and run a downstream test against the installed harness.
source_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
Expand All @@ -345,3 +401,9 @@ cmake -S "$source_root/test/package/public-test-component" -B "$work/test" \
-DCMAKE_PREFIX_PATH="$cmake_prefix_path"
cmake --build "$work/test" -j4
ctest --test-dir "$work/test" --output-on-failure

# Parsing pulls every enabled registry family from an ordinary static archive.
test ! -e "$expected_include/gecode/flatzinc/registry-internal.hh"
cmake -S "$work/l" -B "$work/l/build" -DCMAKE_PREFIX_PATH="$prefix"
cmake --build "$work/l/build" -j4
"$work/l/build/consumer_l"
28 changes: 10 additions & 18 deletions .github/ci/cmake-custom-vis-smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,21 +71,15 @@ test "$set_line" -lt "$float_line"
test "$float_line" -lt "$custom_one_line"
test "$custom_one_line" -lt "$custom_two_line"

mtime() {
if stat -c '%Y' "$1" >/dev/null 2>&1; then
stat -c '%Y' "$1"
else
stat -f '%m' "$1"
fi
}
type_mtime="$(mtime "$type_header")"
imp_mtime="$(mtime "$imp_header")"
cmake -E sleep 1
printf '\n' >> "$fixture_dir/custom vis/custom one.vis"
cmake --build "$build_dir" --target gecode-varimp-gen -v 2>&1 | tee "$work_parent/rebuild.log"
test "$(mtime "$type_header")" -gt "$type_mtime"
test "$(mtime "$imp_header")" -gt "$imp_mtime"
grep -q 'GenerateVarImp.cmake' "$work_parent/rebuild.log"
# A changed custom type must reach both generated headers on an incremental build.
sed 's/CustomOne/CustomUpdated/g' "$fixture_dir/custom vis/custom one.vis" \
> "$fixture_dir/custom vis/updated.vis"
mv "$fixture_dir/custom vis/updated.vis" "$fixture_dir/custom vis/custom one.vis"
cmake --build "$build_dir" --target gecode-varimp-gen
grep -q 'CustomUpdatedVarImpConf' "$type_header"
grep -q 'CustomUpdatedVarImp' "$imp_header"
if grep -q 'CustomOneVarImp' "$type_header"; then exit 1; fi
if grep -q 'CustomOneVarImp' "$imp_header"; then exit 1; fi

# CMake list syntax is supported in addition to the command-line comma form.
cmake -S "$repo_root" -B "$work_parent/list-build" -G Ninja \
Expand Down Expand Up @@ -129,8 +123,6 @@ cmake -S "$repo_root" -B "$build_dir" -G Ninja \
-DBUILD_TESTING=OFF
grep -q '^GECODE_REGENERATE_VARIMP:BOOL=OFF$' "$build_dir/CMakeCache.txt"
rm -f "$type_header" "$imp_header"
cmake --build "$build_dir" --target gecode-varimp-gen -v \
>"$work_parent/cleared.log" 2>&1
cmake --build "$build_dir" --target gecode-varimp-gen
test ! -e "$type_header"
test ! -e "$imp_header"
grep -q 'no work to do' "$work_parent/cleared.log"
8 changes: 4 additions & 4 deletions .github/ci/cmake-example-feature-smoke.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ grep -q '^GECODE_ENABLE_SET_VARS:BOOL=OFF$' "$build_root/int/CMakeCache.txt"
grep -q '^GECODE_ENABLE_FLOAT_VARS:BOOL=OFF$' "$build_root/int/CMakeCache.txt"
cmake --build "$build_root/int" --target help > "$build_root/int-targets.txt"
grep -q '^tsp:' "$build_root/int-targets.txt"
! grep -q '^crew:' "$build_root/int-targets.txt"
! grep -q '^cartesian-heart:' "$build_root/int-targets.txt"
! grep -q '^archimedean-spiral:' "$build_root/int-targets.txt"
if grep -q '^crew:' "$build_root/int-targets.txt"; then exit 1; fi
if grep -q '^cartesian-heart:' "$build_root/int-targets.txt"; then exit 1; fi
if grep -q '^archimedean-spiral:' "$build_root/int-targets.txt"; then exit 1; fi
cmake --build "$build_root/int" --target tsp

cmake -S "$source_dir" -B "$build_root/optional" -G Ninja \
Expand All @@ -35,4 +35,4 @@ cmake -S "$source_dir" -B "$build_root/optional" -G Ninja \
cmake --build "$build_root/optional" --target help > "$build_root/optional-targets.txt"
grep -q '^crew:' "$build_root/optional-targets.txt"
grep -q '^cartesian-heart:' "$build_root/optional-targets.txt"
! grep -q '^archimedean-spiral:' "$build_root/optional-targets.txt"
if grep -q '^archimedean-spiral:' "$build_root/optional-targets.txt"; then exit 1; fi
Loading
Loading