sandboxed-api/cmake/SapiOptions.cmake
Christian Blichmann e21afae5a7 CMake: Build contrib sandboxes if requested
Add a new option `SAPI_ENABLE_CONTRIB_TESTS` that builds the sandboxes
in `contrib/` if set.

The new `contrib/CMakeLists.txt` should be extended each time we add a
new sandbox to `contrib/`.

This is in preparation of a follow-up change that should test the
sandboxes using GitHub Actions.

Drive-by:
- Rename the tests in `jsonnet_tests.cc` to conform to the style guide.
PiperOrigin-RevId: 425874289
Change-Id: I5b31546ccf84444c2480287220ef88abbd78a235
2022-02-02 07:02:28 -08:00

68 lines
2.7 KiB
CMake

# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# If Sandboxed API is built from a plain checkout, built everything.
# Otherwise, skip tests and examples.
if(SAPI_PROJECT_IS_TOP_LEVEL)
set(_sapi_enable_tests_examples_default ON)
else()
set(_sapi_enable_tests_examples_default OFF)
endif()
# These options determine whether CMake should download the libraries that
# Sandboxed API depends on at configure time.
# The CMake script SapiDeps.cmake checks for the presence of certain build
# targets to determine whether a library can be used. Disabling the options
# below enables embedding projects to selectively override/replace these
# dependencies. This is useful for cases where embedding projects already
# depend on some of these libraries (e.g. Abseil).
option(SAPI_DOWNLOAD_ABSL "Download Abseil at config time" ON)
option(SAPI_DOWNLOAD_GOOGLETEST "Download googletest at config time" ON)
option(SAPI_DOWNLOAD_BENCHMARK "Download benchmark at config time" ON)
option(SAPI_DOWNLOAD_GFLAGS "Download gflags at config time" ON)
option(SAPI_DOWNLOAD_GLOG "Download glog at config time" ON)
option(SAPI_DOWNLOAD_PROTOBUF "Download protobuf at config time" ON)
option(SAPI_DOWNLOAD_LIBUNWIND "Download libunwind at config time" ON)
option(SAPI_DOWNLOAD_LIBCAP "Download libcap at config time" ON)
option(SAPI_DOWNLOAD_LIBFFI "Download libffi at config time" ON)
# Options for building examples
option(SAPI_ENABLE_EXAMPLES
"Build example code" ${_sapi_enable_tests_examples_default}
)
option(SAPI_DOWNLOAD_ZLIB
"Download zlib at config time (only if SAPI_ENABLE_EXAMPLES is set)"
${_sapi_enable_tests_examples_default}
)
option(SAPI_ENABLE_TESTS
"Build unit tests" ${_sapi_enable_tests_examples_default}
)
# Disabled by default, as this will download a lot of extra content.
option(SAPI_ENABLE_CONTRIB_TESTS "Build tests for sandboxes in 'contrib'" OFF)
option(SAPI_ENABLE_GENERATOR
"Build Clang based code generator from source" OFF
)
# This flag should be only enabled for embedded and resource-constrained
# environments.
option(SAPI_ENABLE_SHARED_LIBS "Build SAPI shared libs" OFF)
option(SAPI_HARDENED_SOURCE "Build with hardening compiler options" OFF)
option(SAPI_FORCE_COLOR_OUTPUT
"Force colored compiler diagnostics when using Ninja" ON
)