1
0
mirror of https://github.com/codership/wsrep-lib.git synced 2025-07-21 12:22:06 +03:00

Added version header, handle version in top level CMakeLists.txt

Added version header which contains definitions for major, minor
and patch version numbers, as well as for lowest and highest supported
wsrep-API versions. The library versioning follows Semantic Versioning.

Handle CMake policy CMP0048 in top level CMakeLists.txt.
This commit is contained in:
Teemu Ollakka
2019-06-07 14:23:05 +03:00
parent 503d4e7ab4
commit eba8a8f35d
2 changed files with 75 additions and 1 deletions

View File

@ -3,7 +3,28 @@
# #
cmake_minimum_required (VERSION 2.8) 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) include(CheckIncludeFile)
# Options # Options

53
include/wsrep/version.hpp Normal file
View File

@ -0,0 +1,53 @@
/*
* Copyright (C) 2019 Codership Oy <info@codership.com>
*
* 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 <https://www.gnu.org/licenses/>.
*/
#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