diff options
author | Carlos O'Ryan <coryan@users.noreply.github.com> | 2019-10-17T18·47-0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-17T18·47-0400 |
commit | 449df1fd379fecc3f6ec05cc5650651d694e3a53 (patch) | |
tree | 264de973bb6a6cfb83cd5cb3e5c3a6d5d9fb7ccd | |
parent | b6c30c0eee8a8e0a5971ee87f428febe8d256d05 (diff) |
ci: add configs for a CMake+Ninja build (#27)
-rwxr-xr-x | ci/kokoro/docker/build-in-docker-cmake.sh | 4 | ||||
-rwxr-xr-x | ci/kokoro/docker/build.sh | 7 | ||||
-rw-r--r-- | ci/kokoro/docker/ninja-presubmit.cfg | 0 | ||||
-rw-r--r-- | ci/kokoro/docker/ninja.cfg | 0 |
4 files changed, 11 insertions, 0 deletions
diff --git a/ci/kokoro/docker/build-in-docker-cmake.sh b/ci/kokoro/docker/build-in-docker-cmake.sh index 38e0d3d7885b..4dd9e7eb3dff 100755 --- a/ci/kokoro/docker/build-in-docker-cmake.sh +++ b/ci/kokoro/docker/build-in-docker-cmake.sh @@ -58,6 +58,10 @@ if [[ "${CODE_COVERAGE:-}" == "yes" ]]; then "-DCMAKE_BUILD_TYPE=Coverage") fi +if [[ "${USE_NINJA:-}" == "yes" ]]; then + cmake_flags+=( "-GNinja" ) +fi + # Avoid unbound variable error with older bash if [[ "${#cmake_flags[@]}" == 0 ]]; then cmake "-H${SOURCE_DIR}" "-B${BINARY_DIR}" diff --git a/ci/kokoro/docker/build.sh b/ci/kokoro/docker/build.sh index 87edff52879e..fbd886f02852 100755 --- a/ci/kokoro/docker/build.sh +++ b/ci/kokoro/docker/build.sh @@ -78,6 +78,9 @@ elif [[ "${BUILD_NAME}" = "clang-3.8" ]]; then export DISTRO_VERSION=16.04 export CC=clang export CXX=clang++ +elif [[ "${BUILD_NAME}" = "ninja" ]]; then + # Compiling with Ninja can catch bugs that may not be caught using Make. + export USE_NINJA=yes else echo "Unknown BUILD_NAME (${BUILD_NAME}). Fix the Kokoro .cfg file." exit 1 @@ -211,6 +214,10 @@ docker_flags=( # CMake builds use this flag. "--env" "CODE_COVERAGE=${CODE_COVERAGE:-}" + # If set to 'yes', use Ninja as the CMake generator. Ninja is more strict + # that Make and can detect errors in your CMake files, it is also faster. + "--env" "USE_NINJA=${USE_NINJA:-}" + # If set, pass -DGOOGLE_CLOUD_CPP_CXX_STANDARD=<value> to CMake. "--env" "GOOGLE_CLOUD_CPP_CXX_STANDARD=${GOOGLE_CLOUD_CPP_CXX_STANDARD:-}" diff --git a/ci/kokoro/docker/ninja-presubmit.cfg b/ci/kokoro/docker/ninja-presubmit.cfg new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/ci/kokoro/docker/ninja-presubmit.cfg diff --git a/ci/kokoro/docker/ninja.cfg b/ci/kokoro/docker/ninja.cfg new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/ci/kokoro/docker/ninja.cfg |