From 5743adc46796d94dbadb1f8383d08496427a3b8b Mon Sep 17 00:00:00 2001 From: gabime Date: Wed, 29 May 2019 15:15:35 +0300 Subject: [PATCH] CMake use extract version from version.h --- CMakeLists.txt | 13 +++++++++++-- cmake/version.cmake | 16 ++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 cmake/version.cmake 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