From 646a140ed4ecb38302ae4d65c08ce8f1d0e18a7a Mon Sep 17 00:00:00 2001 From: Daniel Chabrowski Date: Sun, 11 Feb 2018 20:45:56 +0100 Subject: [PATCH 1/2] Specify CXX language explicitly in CMake Marking project as CXX will disable detecting C compiler and other checks. Removed 'INCLUDES DESTINATION' as it made the include path appear doubled. --- CMakeLists.txt | 3 +- example/CMakeLists.txt | 98 +++++++++++++++++++++--------------------- tests/CMakeLists.txt | 46 ++++++++++---------- 3 files changed, 73 insertions(+), 74 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5164609b..b4fe429d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # cmake_minimum_required(VERSION 3.1) -project(spdlog VERSION 0.16.3) +project(spdlog VERSION 0.16.3 LANGUAGES CXX) include(CTest) include(CMakeDependentOption) include(GNUInstallDirs) @@ -73,7 +73,6 @@ configure_file("cmake/spdlog.pc.in" "${pkg_config}" @ONLY) install( TARGETS spdlog EXPORT "${targets_export_name}" - INCLUDES DESTINATION "${include_install_dir}" ) # install headers diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 7859e4d5..ae5add05 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -1,49 +1,49 @@ -# *************************************************************************/ -# * Copyright (c) 2015 Ruslan Baratov. */ -# * */ -# * Permission is hereby granted, free of charge, to any person obtaining */ -# * a copy of this software and associated documentation files (the */ -# * "Software"), to deal in the Software without restriction, including */ -# * without limitation the rights to use, copy, modify, merge, publish, */ -# * distribute, sublicense, and/or sell copies of the Software, and to */ -# * permit persons to whom the Software is furnished to do so, subject to */ -# * the following conditions: */ -# * */ -# * The above copyright notice and this permission notice shall be */ -# * included in all copies or substantial portions of the Software. */ -# * */ -# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ -# * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ -# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -# * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ -# * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ -# * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ -# * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -# *************************************************************************/ - -cmake_minimum_required(VERSION 3.0) -project(SpdlogExamples) - -if(TARGET spdlog) - # Part of the main project - add_library(spdlog::spdlog ALIAS spdlog) -else() - # Stand-alone build - find_package(spdlog CONFIG REQUIRED) -endif() - -find_package(Threads) - -add_executable(example example.cpp) -target_link_libraries(example spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) - -add_executable(benchmark bench.cpp) -target_link_libraries(benchmark spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) - -add_executable(multisink multisink.cpp) -target_link_libraries(multisink spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) - -enable_testing() -file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") -add_test(NAME RunExample COMMAND example) -add_test(NAME RunBenchmark COMMAND benchmark) +# *************************************************************************/ +# * Copyright (c) 2015 Ruslan Baratov. */ +# * */ +# * Permission is hereby granted, free of charge, to any person obtaining */ +# * a copy of this software and associated documentation files (the */ +# * "Software"), to deal in the Software without restriction, including */ +# * without limitation the rights to use, copy, modify, merge, publish, */ +# * distribute, sublicense, and/or sell copies of the Software, and to */ +# * permit persons to whom the Software is furnished to do so, subject to */ +# * the following conditions: */ +# * */ +# * The above copyright notice and this permission notice shall be */ +# * included in all copies or substantial portions of the Software. */ +# * */ +# * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +# * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +# * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +# * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +# * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +# * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +# * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +# *************************************************************************/ + +cmake_minimum_required(VERSION 3.0) +project(SpdlogExamples CXX) + +if(TARGET spdlog) + # Part of the main project + add_library(spdlog::spdlog ALIAS spdlog) +else() + # Stand-alone build + find_package(spdlog CONFIG REQUIRED) +endif() + +find_package(Threads) + +add_executable(example example.cpp) +target_link_libraries(example spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) + +add_executable(benchmark bench.cpp) +target_link_libraries(benchmark spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) + +add_executable(multisink multisink.cpp) +target_link_libraries(multisink spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) + +enable_testing() +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") +add_test(NAME RunExample COMMAND example) +add_test(NAME RunBenchmark COMMAND benchmark) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 94bf8e76..ef41e993 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,23 +1,23 @@ -project(spdlog-utests) - -enable_testing() -find_package(Threads REQUIRED) - -set(SPDLOG_UTESTS_SOURCES - errors.cpp - file_helper.cpp - file_log.cpp - format.cpp - includes.h - registry.cpp - test_macros.cpp - utils.cpp - utils.h - main.cpp) - -add_executable(${PROJECT_NAME} ${SPDLOG_UTESTS_SOURCES}) -target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) -target_link_libraries(${PROJECT_NAME} PRIVATE spdlog) - -add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME}) -file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") +project(spdlog-utests CXX) + +enable_testing() +find_package(Threads REQUIRED) + +set(SPDLOG_UTESTS_SOURCES + errors.cpp + file_helper.cpp + file_log.cpp + format.cpp + includes.h + registry.cpp + test_macros.cpp + utils.cpp + utils.h + main.cpp) + +add_executable(${PROJECT_NAME} ${SPDLOG_UTESTS_SOURCES}) +target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) +target_link_libraries(${PROJECT_NAME} PRIVATE spdlog) + +add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME}) +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") From 5d08bd17093e2da4d19ad806eeaf1bb3ab6012b6 Mon Sep 17 00:00:00 2001 From: Daniel Chabrowski Date: Sun, 11 Feb 2018 21:16:15 +0100 Subject: [PATCH 2/2] Bump example's cmake version to 3.1 CMake 3.1 is used in main CMakeLists file, no reason not to use it in example. Threads::Threads is introduced in cmake 3.1. --- example/CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index ae5add05..cc699729 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -21,7 +21,7 @@ # * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ # *************************************************************************/ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.1) project(SpdlogExamples CXX) if(TARGET spdlog) @@ -32,16 +32,16 @@ else() find_package(spdlog CONFIG REQUIRED) endif() -find_package(Threads) +find_package(Threads REQUIRED) add_executable(example example.cpp) -target_link_libraries(example spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(example spdlog::spdlog Threads::Threads) add_executable(benchmark bench.cpp) -target_link_libraries(benchmark spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(benchmark spdlog::spdlog Threads::Threads) add_executable(multisink multisink.cpp) -target_link_libraries(multisink spdlog::spdlog ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(multisink spdlog::spdlog Threads::Threads) enable_testing() file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs")