diff --git a/CMakeLists.txt b/CMakeLists.txt index b1971b26..2ef3b16f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,24 +56,30 @@ set(HEADER_BASE "${CMAKE_CURRENT_SOURCE_DIR}/include/spdlog") message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) +find_package(Threads REQUIRED) + # Build library add_library(spdlog src/spdlog.cpp) target_compile_definitions(spdlog PUBLIC SPDLOG_COMPILED_LIB ) target_include_directories(spdlog PUBLIC "$") set_target_properties(spdlog PROPERTIES OUTPUT_NAME "spdlog") set_target_properties(spdlog PROPERTIES DEBUG_POSTFIX "-debug") +target_link_libraries(spdlog PUBLIC Threads::Threads) -# Headr only +# Header only add_library(spdlog_header_only INTERFACE) -target_include_directories(spdlog_header_only INTERFACE "$") +target_include_directories(spdlog_header_only INTERFACE "${CMAKE_CURRENT_LIST_DIR}/include") +target_link_libraries(spdlog_header_only INTERFACE Threads::Threads) -if(SPDLOG_FMT_EXTERNAL AND NOT TARGET fmt::fmt) - find_package(fmt REQUIRED CONFIG) -endif() if(SPDLOG_FMT_EXTERNAL) - target_compile_definitions(spdlog INTERFACE SPDLOG_FMT_EXTERNAL) - target_link_libraries(spdlog INTERFACE fmt::fmt) + if (NOT TARGET fmt::fmt) + find_package(fmt REQUIRED) + endif () + + target_compile_definitions(spdlog PUBLIC SPDLOG_FMT_EXTERNAL) + target_link_libraries(spdlog PUBLIC fmt::fmt) + target_compile_definitions(spdlog_header_only INTERFACE SPDLOG_FMT_EXTERNAL) target_link_libraries(spdlog_header_only INTERFACE fmt::fmt) endif() diff --git a/bench/CMakeLists.txt b/bench/CMakeLists.txt index 3c4a3f9d..dcb03a9e 100644 --- a/bench/CMakeLists.txt +++ b/bench/CMakeLists.txt @@ -33,16 +33,16 @@ find_package(Threads REQUIRED) find_package(benchmark CONFIG REQUIRED) add_executable(bench bench.cpp) -target_link_libraries(bench PRIVATE spdlog::spdlog Threads::Threads) +target_link_libraries(bench PRIVATE spdlog::spdlog) add_executable(async_bench async_bench.cpp) -target_link_libraries(async_bench PRIVATE spdlog::spdlog Threads::Threads) +target_link_libraries(async_bench PRIVATE spdlog::spdlog) add_executable(latency latency.cpp) -target_link_libraries(latency PRIVATE benchmark::benchmark spdlog::spdlog Threads::Threads) +target_link_libraries(latency PRIVATE benchmark::benchmark spdlog::spdlog) add_executable(formatter-bench formatter-bench.cpp) -target_link_libraries(formatter-bench PRIVATE benchmark::benchmark spdlog::spdlog Threads::Threads) +target_link_libraries(formatter-bench PRIVATE benchmark::benchmark spdlog::spdlog) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index b25ca252..033e7af6 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -38,7 +38,7 @@ find_package(Threads REQUIRED) # Example of using pre-compiled library add_executable(example example.cpp) -target_link_libraries(example spdlog::spdlog Threads::Threads) +target_link_libraries(example spdlog::spdlog) if(CMAKE_SYSTEM_NAME STREQUAL "Android") find_library(log-lib log) target_link_libraries(example log) @@ -54,7 +54,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android") endif () add_executable(multisink multisink.cpp) -target_link_libraries(multisink spdlog::spdlog Threads::Threads) +target_link_libraries(multisink spdlog::spdlog) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8679174d..f02dea91 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -20,7 +20,6 @@ set(SPDLOG_UTESTS_SOURCES test_fmt_helper.cpp) add_executable(${PROJECT_NAME} ${SPDLOG_UTESTS_SOURCES}) -target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads) target_link_libraries(${PROJECT_NAME} PRIVATE spdlog) file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/logs")