sharg 1.0.0
THE argument parser for bio-c++ tools.
version.hpp
Go to the documentation of this file.
1// --------------------------------------------------------------------------------------------------------
2// Copyright (c) 2006-2022, Knut Reinert & Freie Universität Berlin
3// Copyright (c) 2016-2022, Knut Reinert & MPI für molekulare Genetik
4// This file may be used, modified and/or redistributed under the terms of the 3-clause BSD-License
5// shipped with this file and also available at: https://github.com/seqan/sharg-parser/blob/main/LICENSE.md
6// --------------------------------------------------------------------------------------------------------
7
8#pragma once
9
10#include <cstdint>
11
18#define SHARG_VERSION_MAJOR 1
20#define SHARG_VERSION_MINOR 0
22#define SHARG_VERSION_PATCH 0
24#define SHARG_RELEASE_CANDIDATE 0
25
27#define SHARG_VERSION (SHARG_VERSION_MAJOR * 10000 + SHARG_VERSION_MINOR * 100 + SHARG_VERSION_PATCH)
28
32#define SHARG_VERSION_CSTRING_HELPER_STR(str) #str
33
35#define SHARG_VERSION_CSTRING_HELPER_FUNC(MAJOR, MINOR, PATCH) \
36 SHARG_VERSION_CSTRING_HELPER_STR(MAJOR) \
37 "." SHARG_VERSION_CSTRING_HELPER_STR(MINOR) "." SHARG_VERSION_CSTRING_HELPER_STR(PATCH)
38
39#if (SHARG_RELEASE_CANDIDATE > 0)
41# define SHARG_RELEASE_CANDIDATE_HELPER(RC) "-rc." SHARG_VERSION_CSTRING_HELPER_STR(RC)
42#else
44# define SHARG_RELEASE_CANDIDATE_HELPER(RC) ""
45#endif
46
48#define SHARG_VERSION_CSTRING \
49 SHARG_VERSION_CSTRING_HELPER_FUNC(SHARG_VERSION_MAJOR, SHARG_VERSION_MINOR, SHARG_VERSION_PATCH) \
50 SHARG_RELEASE_CANDIDATE_HELPER(SHARG_RELEASE_CANDIDATE)
51
52namespace sharg
53{
54
61
64
67
68} // namespace sharg
69
70#undef SHARG_VERSION_CSTRING_HELPER_STR
71#undef SHARG_VERSION_CSTRING_HELPER_FUNC
72#undef SHARG_RELEASE_CANDIDATE_HELPER
#define SHARG_VERSION_MINOR
The minor version as MACRO.
Definition: version.hpp:20
constexpr char const * sharg_version_cstring
The full version as null terminated string.
Definition: version.hpp:66
#define SHARG_VERSION
The full version as MACRO (number).
Definition: version.hpp:27
#define SHARG_VERSION_PATCH
The patch version as MACRO.
Definition: version.hpp:22
constexpr std::size_t sharg_version
The full version as std::size_t.
Definition: version.hpp:63
constexpr uint8_t sharg_version_minor
The minor version.
Definition: version.hpp:58
#define SHARG_VERSION_CSTRING
The full version as null terminated string.
Definition: version.hpp:48
#define SHARG_VERSION_MAJOR
The major version as MACRO.
Definition: version.hpp:18
constexpr uint8_t sharg_version_patch
The patch version.
Definition: version.hpp:60
constexpr uint8_t sharg_version_major
The major version.
Definition: version.hpp:56