SeqAn3  3.0.3
The Modern C++ library for sequence analysis.
version.hpp
Go to the documentation of this file.
1 // -----------------------------------------------------------------------------------------------------
2 // Copyright (c) 2006-2021, Knut Reinert & Freie Universität Berlin
3 // Copyright (c) 2016-2021, 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/seqan3/blob/master/LICENSE.md
6 // -----------------------------------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <cstddef>
11 #include <cstdint>
12 
19 #define SEQAN3_VERSION_MAJOR 3
21 #define SEQAN3_VERSION_MINOR 0
23 #define SEQAN3_VERSION_PATCH 3
25 #define SEQAN3_RELEASE_CANDIDATE 0
26 
28 #define SEQAN3_VERSION (SEQAN3_VERSION_MAJOR * 10000 \
29  + SEQAN3_VERSION_MINOR * 100 \
30  + SEQAN3_VERSION_PATCH)
31 
35 #define SEQAN3_VERSION_CSTRING_HELPER_STR(str) #str
36 
38 #define SEQAN3_VERSION_CSTRING_HELPER_FUNC(MAJOR, MINOR, PATCH) \
39  SEQAN3_VERSION_CSTRING_HELPER_STR(MAJOR) "."\
40  SEQAN3_VERSION_CSTRING_HELPER_STR(MINOR) "."\
41  SEQAN3_VERSION_CSTRING_HELPER_STR(PATCH)
42 
43 #if (SEQAN3_RELEASE_CANDIDATE > 0)
45 #define SEQAN3_RELEASE_CANDIDATE_HELPER(RC) \
46  "-rc." SEQAN3_VERSION_CSTRING_HELPER_STR(RC)
47 #else
49 #define SEQAN3_RELEASE_CANDIDATE_HELPER(RC) ""
50 #endif
51 
53 #define SEQAN3_VERSION_CSTRING \
54  SEQAN3_VERSION_CSTRING_HELPER_FUNC(SEQAN3_VERSION_MAJOR, \
55  SEQAN3_VERSION_MINOR, \
56  SEQAN3_VERSION_PATCH) \
57  SEQAN3_RELEASE_CANDIDATE_HELPER(SEQAN3_RELEASE_CANDIDATE)
58 
59 namespace seqan3
60 {
61 
68 
71 
74 
75 } // namespace seqan3
76 
77 #undef SEQAN3_VERSION_CSTRING_HELPER_STR
78 #undef SEQAN3_VERSION_CSTRING_HELPER_FUNC
79 #undef SEQAN3_RELEASE_CANDIDATE_HELPER
The main SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29
constexpr uint8_t seqan3_version_major
The major version.
Definition: version.hpp:63
constexpr std::size_t seqan3_version
The full version as std::size_t.
Definition: version.hpp:70
constexpr uint8_t seqan3_version_minor
The minor version.
Definition: version.hpp:65
constexpr char const * seqan3_version_cstring
The full version as null terminated string.
Definition: version.hpp:73
constexpr uint8_t seqan3_version_patch
The patch version.
Definition: version.hpp:67
#define SEQAN3_VERSION_MAJOR
The major version as MACRO.
Definition: version.hpp:19
#define SEQAN3_VERSION_PATCH
The patch version as MACRO.
Definition: version.hpp:23
#define SEQAN3_VERSION_MINOR
The minor version as MACRO.
Definition: version.hpp:21
#define SEQAN3_VERSION
The full version as MACRO (number).
Definition: version.hpp:28
#define SEQAN3_VERSION_CSTRING
The full version as null terminated string.
Definition: version.hpp:53