diff --git a/ci/ci_verify_cmake.sh b/ci/ci_verify_cmake.sh index d48062cf5..3e05ec309 100755 --- a/ci/ci_verify_cmake.sh +++ b/ci/ci_verify_cmake.sh @@ -64,6 +64,7 @@ function ci_trace_build { ci_info "environment option: \$CI_RANLIB: '$CI_RANLIB'" ci_info "environment option: \$CI_SANITIZERS: '$CI_SANITIZERS'" ci_info "environment option: \$CI_FORCE: '$CI_FORCE'" + ci_info "environment option: \$CI_NO_BUILD: '$CI_NO_BUILD'" ci_info "environment option: \$CI_NO_TEST: '$CI_NO_TEST'" ci_info "environment option: \$CI_NO_INSTALL: '$CI_NO_INSTALL'" ci_info "environment option: \$CI_NO_CLEAN: '$CI_NO_CLEAN'" @@ -148,10 +149,12 @@ function ci_build { -S . \ -DCMAKE_INSTALL_PREFIX="$CI_INSTALL_DIR" \ "${all_cmake_vars[@]}" - # Spawn "cmake --build ...". - ci_spawn "$CI_CMAKE" --build "$CI_BUILD_DIR" \ - --config "$CI_CMAKE_BUILD_TYPE" \ - "${all_cmake_build_flags[@]}" + ci_expr $((CI_NO_BUILD)) || { + # Spawn "cmake --build ...". + ci_spawn "$CI_CMAKE" --build "$CI_BUILD_DIR" \ + --config "$CI_CMAKE_BUILD_TYPE" \ + "${all_cmake_build_flags[@]}" + } ci_expr $((CI_NO_TEST)) || { # Spawn "ctest" if testing is not disabled. ci_spawn pushd "$CI_BUILD_DIR" diff --git a/ci/ci_verify_configure.sh b/ci/ci_verify_configure.sh index b0e4d4944..9c3a28809 100755 --- a/ci/ci_verify_configure.sh +++ b/ci/ci_verify_configure.sh @@ -58,6 +58,7 @@ function ci_trace_build { ci_info "environment option: \$CI_LD_FLAGS: '$CI_LD_FLAGS'" ci_info "environment option: \$CI_SANITIZERS: '$CI_SANITIZERS'" ci_info "environment option: \$CI_FORCE: '$CI_FORCE'" + ci_info "environment option: \$CI_NO_BUILD: '$CI_NO_BUILD'" ci_info "environment option: \$CI_NO_TEST: '$CI_NO_TEST'" ci_info "environment option: \$CI_NO_INSTALL: '$CI_NO_INSTALL'" ci_info "environment option: \$CI_NO_CLEAN: '$CI_NO_CLEAN'" @@ -131,8 +132,10 @@ function ci_build { ci_spawn cd "$CI_BUILD_DIR" # Spawn "configure". ci_spawn "$CI_SRC_DIR/configure" --prefix="$CI_INSTALL_DIR" $CI_CONFIGURE_FLAGS - # Spawn "make". - ci_spawn "$CI_MAKE" $CI_MAKE_FLAGS + ci_expr $((CI_NO_BUILD)) || { + # Spawn "make". + ci_spawn "$CI_MAKE" $CI_MAKE_FLAGS + } ci_expr $((CI_NO_TEST)) || { # Spawn "make test" if testing is not disabled. ci_spawn "$CI_MAKE" $CI_MAKE_FLAGS test diff --git a/ci/ci_verify_makefiles.sh b/ci/ci_verify_makefiles.sh index e0681b4d8..2d3ec72ec 100755 --- a/ci/ci_verify_makefiles.sh +++ b/ci/ci_verify_makefiles.sh @@ -51,6 +51,7 @@ function ci_trace_build { ci_info "environment option: \$CI_LIBS: '$CI_LIBS'" ci_info "environment option: \$CI_SANITIZERS: '$CI_SANITIZERS'" ci_info "environment option: \$CI_FORCE: '$CI_FORCE'" + ci_info "environment option: \$CI_NO_BUILD: '$CI_NO_BUILD'" ci_info "environment option: \$CI_NO_TEST: '$CI_NO_TEST'" ci_info "environment option: \$CI_NO_CLEAN: '$CI_NO_CLEAN'" ci_info "executable: \$CI_MAKE: $(command -V "$CI_MAKE")" @@ -145,10 +146,12 @@ function ci_build { for my_makefile in $CI_MAKEFILES do ci_info "using makefile: $my_makefile" - # Spawn "make". - ci_spawn "$CI_MAKE" -f "$my_makefile" \ - "${all_make_flags[@]}" \ - "${all_make_vars[@]}" + ci_expr $((CI_NO_BUILD)) || { + # Spawn "make". + ci_spawn "$CI_MAKE" -f "$my_makefile" \ + "${all_make_flags[@]}" \ + "${all_make_vars[@]}" + } ci_expr $((CI_NO_TEST)) || { # Spawn "make test" if testing is not disabled. ci_spawn "$CI_MAKE" -f "$my_makefile" \ diff --git a/ci/lib/ci.lib.sh b/ci/lib/ci.lib.sh index 03e866b5c..692851fc0 100644 --- a/ci/lib/ci.lib.sh +++ b/ci/lib/ci.lib.sh @@ -91,6 +91,9 @@ function ci_spawn { [[ ${CI_FORCE:-0} == [01] ]] || { ci_err "bad boolean option: \$CI_FORCE: '$CI_FORCE'" } +[[ ${CI_NO_BUILD:-0} == [01] ]] || { + ci_err "bad boolean option: \$CI_NO_BUILD: '$CI_NO_BUILD'" +} [[ ${CI_NO_TEST:-0} == [01] ]] || { ci_err "bad boolean option: \$CI_NO_TEST: '$CI_NO_TEST'" } @@ -100,3 +103,9 @@ function ci_spawn { [[ ${CI_NO_CLEAN:-0} == [01] ]] || { ci_err "bad boolean option: \$CI_NO_CLEAN: '$CI_NO_CLEAN'" } +if ci_expr $((CI_NO_BUILD)) +then + ci_expr $((CI_NO_TEST && CI_NO_INSTALL)) || { + ci_err "\$CI_NO_BUILD requires \$CI_NO_TEST and \$CI_NO_INSTALL" + } +fi