From 45a18a61c633564311e51f5cbed2748e9cb70e2f Mon Sep 17 00:00:00 2001 From: gabime Date: Sun, 8 Sep 2019 00:42:23 +0300 Subject: [PATCH] CmakeLists.txt: Added version-number and debug suffixes + SPDLOG_BUILD_SHARED property --- CMakeLists.txt | 19 +++++++++++++++---- cmake/utils.cmake | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index efe70ef66..bfdc8df7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,11 @@ if (NOT DEFINED SPDLOG_MASTER_PROJECT) endif() endif () +# build shared option +if(NOT WIN32) + option(SPDLOG_BUILD_SHARED "Build shared library" OFF) +endif() + # example options option(SPDLOG_BUILD_EXAMPLE "Build example" ${SPDLOG_MASTER_PROJECT}) option(SPDLOG_BUILD_EXAMPLE_HO "Build header only example" OFF) @@ -81,11 +86,14 @@ set(SPDLOG_SRCS src/file_sinks.cpp src/async.cpp) -if (BUILD_SHARED_LIBS AND WIN32) - message(WARNING "shared libs is not supported in spdlog - building static instead") - add_library(spdlog STATIC ${SPDLOG_SRCS} ${SPDLOG_ALL_HEADERS}) + +if (SPDLOG_BUILD_SHARED) + if(WIN32) + message(FATAL_ERROR "spdlog shared lib is not yet supported under windows") + endif() + add_library(spdlog SHARED ${SPDLOG_SRCS} ${SPDLOG_ALL_HEADERS}) else() - add_library(spdlog ${SPDLOG_SRCS} ${SPDLOG_ALL_HEADERS}) + add_library(spdlog STATIC ${SPDLOG_SRCS} ${SPDLOG_ALL_HEADERS}) endif() add_library(spdlog::spdlog ALIAS spdlog) @@ -97,6 +105,9 @@ target_include_directories(spdlog PUBLIC target_link_libraries(spdlog PUBLIC Threads::Threads) spdlog_enable_warnings(spdlog) +set_target_properties(spdlog PROPERTIES VERSION ${SPDLOG_VERSION} SOVERSION ${SPDLOG_VERSION_MAJOR}) +set_target_properties(spdlog PROPERTIES DEBUG_POSTFIX d) + #--------------------------------------------------------------------------------------- # Header only version #--------------------------------------------------------------------------------------- diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 2ef3cbe77..f7551f1c5 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -19,6 +19,7 @@ function(spdlog_extract_version) endif() set(ver_patch ${CMAKE_MATCH_1}) + set(SPDLOG_VERSION_MAJOR ${ver_major} PARENT_SCOPE) set (SPDLOG_VERSION "${ver_major}.${ver_minor}.${ver_patch}" PARENT_SCOPE) endfunction()