diff options
author | gabime <gmelman1@gmail.com> | 2019-05-29 15:15:35 +0300 |
---|---|---|
committer | gabime <gmelman1@gmail.com> | 2019-05-29 15:15:35 +0300 |
commit | 5743adc46796d94dbadb1f8383d08496427a3b8b (patch) | |
tree | d95d95c197b719215db821799a0185dee37145bd | |
parent | 76fc166e115a053cfb95b0378e8c7fdff6656ddf (diff) |
CMake use extract version from version.h
-rw-r--r-- | CMakeLists.txt | 13 | ||||
-rw-r--r-- | cmake/version.cmake | 16 |
2 files changed, 27 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ad1b307..f99bfc83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,17 @@ # Distributed under the MIT License (http://opensource.org/licenses/MIT) cmake_minimum_required(VERSION 3.1) -project(spdlog VERSION 1.3.1 LANGUAGES CXX) + + +#--------------------------------------------------------------------------------------- +# Start spdlog project +#--------------------------------------------------------------------------------------- +include(cmake/version.cmake) +project(spdlog VERSION ${SPDLOG_VERSION} LANGUAGES CXX) +message(STATUS "Build spdlog: ${SPDLOG_VERSION}") + include(GNUInstallDirs) +include(cmake/ide.cmake) #--------------------------------------------------------------------------------------- # Set default build to release @@ -40,12 +49,12 @@ option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF) message(STATUS "Build type: " ${CMAKE_BUILD_TYPE}) + find_package(Threads REQUIRED) #--------------------------------------------------------------------------------------- # Static library version #--------------------------------------------------------------------------------------- -include(cmake/ide.cmake) add_library(spdlog STATIC src/spdlog.cpp ${SPDLOG_ALL_HEADERS}) add_library(spdlog::spdlog ALIAS spdlog) diff --git a/cmake/version.cmake b/cmake/version.cmake new file mode 100644 index 00000000..4f3f0360 --- /dev/null +++ b/cmake/version.cmake @@ -0,0 +1,16 @@ +#--------------------------------------------------------------------------------------- +# Get spdlog version from include/spdlog/version.h +#--------------------------------------------------------------------------------------- +file(READ "${CMAKE_CURRENT_LIST_DIR}/../include/spdlog/version.h" SPDLOG_VERSION_FILE) +string(REGEX MATCH "SPDLOG_VER_MAJOR ([0-9]+)" _ "${SPDLOG_VERSION_FILE}") +set(ver_major ${CMAKE_MATCH_1}) + +string(REGEX MATCH "SPDLOG_VER_MINOR ([0-9]+)" _ "${SPDLOG_VERSION_FILE}") +set(ver_minor ${CMAKE_MATCH_1}) +string(REGEX MATCH "SPDLOG_VER_PATCH ([0-9]+)" _ "${SPDLOG_VERSION_FILE}") +set(ver_patch ${CMAKE_MATCH_1}) + +if (NOT ver_major OR NOT ver_minor OR NOT ver_patch) + message(FATAL_ERROR "Could not extract valid version from spdlog/version.h") +endif() +set (SPDLOG_VERSION "${ver_major}.${ver_minor}.${ver_patch}")
\ No newline at end of file |