diff --git a/CMakeLists.txt b/CMakeLists.txt index 379e3c5..cdeee83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,28 @@ # cmake_minimum_required (VERSION 2.8) -project (wsrep-lib) + +# Parse version from version header file and store it into +# WSREP_LIB_VERSION. +file (READ "include/wsrep/version.hpp" ver) +string(REGEX MATCH "WSREP_LIB_VERSION_MAJOR ([0-9]*)" _ ${ver}) +set(ver_major ${CMAKE_MATCH_1}) +file (READ "include/wsrep/version.hpp" ver) +string(REGEX MATCH "WSREP_LIB_VERSION_MINOR ([0-9]*)" _ ${ver}) +set(ver_minor ${CMAKE_MATCH_1}) +file (READ "include/wsrep/version.hpp" ver) +string(REGEX MATCH "WSREP_LIB_VERSION_PATCH ([0-9]*)" _ ${ver}) +set(ver_patch ${CMAKE_MATCH_1}) +set(WSREP_LIB_VERSION "${ver_major}.${ver_minor}.${ver_patch}") +message(STATUS "Wsrep-lib version: ${WSREP_LIB_VERSION}") + +if (POLICY CMP0048) + cmake_policy(SET CMP0048 NEW) + project(wsrep-lib VERSION ${WSREP_LIB_VERSION}) +else() + project(wsrep-lib) +endif() + include(CheckIncludeFile) # Options diff --git a/include/wsrep/version.hpp b/include/wsrep/version.hpp new file mode 100644 index 0000000..94312cf --- /dev/null +++ b/include/wsrep/version.hpp @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2019 Codership Oy + * + * This file is part of wsrep-lib. + * + * Wsrep-lib is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * Wsrep-lib is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with wsrep-lib. If not, see . + */ + +#ifndef WSREP_VERSION_HPP +#define WSREP_VERSION_HPP + +/** @file version.hpp + * + * Wsrep library version numbers. The versioning follows Semantic + * Versioning 2.0.0 (https://semver.org/). + */ + +/** + * Major version number. + */ +#define WSREP_LIB_VERSION_MAJOR 1 +/** + * Minor version number. + */ +#define WSREP_LIB_VERSION_MINOR 0 +/** + * Patch version number. + */ +#define WSREP_LIB_VERSION_PATCH 0 + +// Range of supported wsrep-API versions. + +/** + * Lowest supported wsrep-API version. + */ +#define WSREP_LIB_MIN_API_VERSION 26 +/** + * Highest supported wsrep-API version. + */ +#define WSREP_LIB_MAX_API_VERSION 26 + +#endif // WSREP_VERSION_HPP