Commit 85b4d7c8 authored by David P. Sicilia's avatar David P. Sicilia

CMake: include(CTest) only when building tests.

This is needed in order to support usage of this library as a
subdirectory in a parent project.  In that situation, prior
to this change, the inclusion of CTest would unconditionally
enable BUILD_TESTING which would then bleed into other parts
of the project.

Also added some comments explaining how this logic works.
parent 486b6937
......@@ -5,7 +5,6 @@
cmake_minimum_required(VERSION 3.1)
project(spdlog VERSION 1.3.0 LANGUAGES CXX)
include(CTest)
include(CMakeDependentOption)
include(GNUInstallDirs)
......@@ -54,10 +53,22 @@ endif()
option(SPDLOG_BUILD_EXAMPLES "Build examples" ${SPDLOG_MASTER_PROJECT})
option(SPDLOG_BUILD_BENCH "Build benchmarks" ${SPDLOG_MASTER_PROJECT})
# Logic for enabling tests: If the user does not explicitly
# specify the value of the SPDLOG_BUILD_TESTING variable then the
# logic is simpler to reason about: that is, testing will be
# built if and only if BUILD_TESTING is ON and we are a Master
# Project. On the other hand, if the user overrides the value of
# SPDLOG_BUILD_TESTING then it can get a bit more tricky due to
# caching.
cmake_dependent_option(SPDLOG_BUILD_TESTING
"Build spdlog tests" ${SPDLOG_MASTER_PROJECT}
"BUILD_TESTING" OFF
)
if(SPDLOG_BUILD_TESTING)
# Include CTest conditionally since it will enable BUILD_TESTING.
include(CTest)
endif()
target_include_directories(
spdlog
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment