From bb0f3839c1e52948f2ecb66e4e0aa79740a30205 Mon Sep 17 00:00:00 2001 From: gabime Date: Mon, 1 Jul 2019 02:06:09 +0300 Subject: [PATCH] Updated CMake options and defaults --- CMakeLists.txt | 24 +++++++++++++++++------- example/CMakeLists.txt | 8 +++++--- tests/CMakeLists.txt | 4 +++- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d0c796e7..4d34c917 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,18 +40,28 @@ if (NOT DEFINED SPDLOG_MASTER_PROJECT) endif() endif () -option(SPDLOG_BUILD_EXAMPLES "Build examples" OFF) +# example options +option(SPDLOG_BUILD_EXAMPLE "Build example" ${SPDLOG_MASTER_PROJECT}) +option(SPDLOG_BUILD_EXAMPLE_HO "Build header only example" OFF) + +# testing options +option(SPDLOG_BUILD_TESTS "Build tests" ${SPDLOG_MASTER_PROJECT}) +option(SPDLOG_BUILD_TESTS_HO "Build tests using the header only version" OFF) + +# bench options option(SPDLOG_BUILD_BENCH "Build benchmarks (Requires https://github.com/google/benchmark.git to be installed)" OFF) -option(SPDLOG_BUILD_TESTS "Build tests" OFF) -option(SPDLOG_BUILD_HO_TESTS "Build tests using the header only version" OFF) + +# sanitizer options option(SPDLOG_SANITIZE_ADDRESS "Enable address sanitizer in tests" OFF) + +# install options option(SPDLOG_INSTALL "Generate the install target." ${SPDLOG_MASTER_PROJECT}) option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF) -message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) - find_package(Threads REQUIRED) +message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) + #--------------------------------------------------------------------------------------- # Static/Shared library (shared not supported in windows yet) #--------------------------------------------------------------------------------------- @@ -101,12 +111,12 @@ endif() #--------------------------------------------------------------------------------------- # Build binaries #--------------------------------------------------------------------------------------- -if(SPDLOG_BUILD_EXAMPLES) +if(SPDLOG_BUILD_EXAMPLE OR SPDLOG_BUILD_EXAMPLE_HO) message(STATUS "Generating examples") add_subdirectory(example) endif() -if(SPDLOG_BUILD_TESTS) +if(SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_TESTS_HO) message(STATUS "Generating tests") include(CTest) add_subdirectory(tests) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index ac738161..b5fc4060 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -19,9 +19,11 @@ target_link_libraries(example PRIVATE spdlog::spdlog) #--------------------------------------------------------------------------------------- # Example of using header-only library #--------------------------------------------------------------------------------------- -add_executable(example_header_only example.cpp) -spdlog_enable_warnings(example_header_only) -target_link_libraries(example_header_only PRIVATE spdlog::spdlog_header_only) +if(SPDLOG_BUILD_EXAMPLE_HO) + add_executable(example_header_only example.cpp) + spdlog_enable_warnings(example_header_only) + target_link_libraries(example_header_only PRIVATE spdlog::spdlog_header_only) +endif() # Create logs directory file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8047310d..ebd31807 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,3 +1,5 @@ +project(spdlog_utests CXX) + find_package(PkgConfig) if(PkgConfig_FOUND) pkg_check_modules(systemd libsystemd) @@ -45,7 +47,7 @@ if(SPDLOG_BUILD_TESTS) endif() # The header-only library version tests -if(SPDLOG_BUILD_HO_TESTS) +if(SPDLOG_BUILD_TESTS_HO) add_executable(spdlog-utests-ho ${SPDLOG_UTESTS_SOURCES}) spdlog_enable_warnings(spdlog-utests-ho) target_link_libraries(spdlog-utests-ho PRIVATE spdlog::spdlog_header_only)