jpayne@69
|
1 /* SPDX-License-Identifier: 0BSD */
|
jpayne@69
|
2
|
jpayne@69
|
3 /**
|
jpayne@69
|
4 * \file lzma/version.h
|
jpayne@69
|
5 * \brief Version number
|
jpayne@69
|
6 * \note Never include this file directly. Use <lzma.h> instead.
|
jpayne@69
|
7 */
|
jpayne@69
|
8
|
jpayne@69
|
9 /*
|
jpayne@69
|
10 * Author: Lasse Collin
|
jpayne@69
|
11 */
|
jpayne@69
|
12
|
jpayne@69
|
13 #ifndef LZMA_H_INTERNAL
|
jpayne@69
|
14 # error Never include this file directly. Use <lzma.h> instead.
|
jpayne@69
|
15 #endif
|
jpayne@69
|
16
|
jpayne@69
|
17
|
jpayne@69
|
18 /** \brief Major version number of the liblzma release. */
|
jpayne@69
|
19 #define LZMA_VERSION_MAJOR 5
|
jpayne@69
|
20
|
jpayne@69
|
21 /** \brief Minor version number of the liblzma release. */
|
jpayne@69
|
22 #define LZMA_VERSION_MINOR 6
|
jpayne@69
|
23
|
jpayne@69
|
24 /** \brief Patch version number of the liblzma release. */
|
jpayne@69
|
25 #define LZMA_VERSION_PATCH 4
|
jpayne@69
|
26
|
jpayne@69
|
27 /**
|
jpayne@69
|
28 * \brief Version stability marker
|
jpayne@69
|
29 *
|
jpayne@69
|
30 * This will always be one of three values:
|
jpayne@69
|
31 * - LZMA_VERSION_STABILITY_ALPHA
|
jpayne@69
|
32 * - LZMA_VERSION_STABILITY_BETA
|
jpayne@69
|
33 * - LZMA_VERSION_STABILITY_STABLE
|
jpayne@69
|
34 */
|
jpayne@69
|
35 #define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
jpayne@69
|
36
|
jpayne@69
|
37 /** \brief Commit version number of the liblzma release */
|
jpayne@69
|
38 #ifndef LZMA_VERSION_COMMIT
|
jpayne@69
|
39 # define LZMA_VERSION_COMMIT ""
|
jpayne@69
|
40 #endif
|
jpayne@69
|
41
|
jpayne@69
|
42
|
jpayne@69
|
43 /*
|
jpayne@69
|
44 * Map symbolic stability levels to integers.
|
jpayne@69
|
45 */
|
jpayne@69
|
46 #define LZMA_VERSION_STABILITY_ALPHA 0
|
jpayne@69
|
47 #define LZMA_VERSION_STABILITY_BETA 1
|
jpayne@69
|
48 #define LZMA_VERSION_STABILITY_STABLE 2
|
jpayne@69
|
49
|
jpayne@69
|
50
|
jpayne@69
|
51 /**
|
jpayne@69
|
52 * \brief Compile-time version number
|
jpayne@69
|
53 *
|
jpayne@69
|
54 * The version number is of format xyyyzzzs where
|
jpayne@69
|
55 * - x = major
|
jpayne@69
|
56 * - yyy = minor
|
jpayne@69
|
57 * - zzz = revision
|
jpayne@69
|
58 * - s indicates stability: 0 = alpha, 1 = beta, 2 = stable
|
jpayne@69
|
59 *
|
jpayne@69
|
60 * The same xyyyzzz triplet is never reused with different stability levels.
|
jpayne@69
|
61 * For example, if 5.1.0alpha has been released, there will never be 5.1.0beta
|
jpayne@69
|
62 * or 5.1.0 stable.
|
jpayne@69
|
63 *
|
jpayne@69
|
64 * \note The version number of liblzma has nothing to with
|
jpayne@69
|
65 * the version number of Igor Pavlov's LZMA SDK.
|
jpayne@69
|
66 */
|
jpayne@69
|
67 #define LZMA_VERSION (LZMA_VERSION_MAJOR * UINT32_C(10000000) \
|
jpayne@69
|
68 + LZMA_VERSION_MINOR * UINT32_C(10000) \
|
jpayne@69
|
69 + LZMA_VERSION_PATCH * UINT32_C(10) \
|
jpayne@69
|
70 + LZMA_VERSION_STABILITY)
|
jpayne@69
|
71
|
jpayne@69
|
72
|
jpayne@69
|
73 /*
|
jpayne@69
|
74 * Macros to construct the compile-time version string
|
jpayne@69
|
75 */
|
jpayne@69
|
76 #if LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_ALPHA
|
jpayne@69
|
77 # define LZMA_VERSION_STABILITY_STRING "alpha"
|
jpayne@69
|
78 #elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_BETA
|
jpayne@69
|
79 # define LZMA_VERSION_STABILITY_STRING "beta"
|
jpayne@69
|
80 #elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_STABLE
|
jpayne@69
|
81 # define LZMA_VERSION_STABILITY_STRING ""
|
jpayne@69
|
82 #else
|
jpayne@69
|
83 # error Incorrect LZMA_VERSION_STABILITY
|
jpayne@69
|
84 #endif
|
jpayne@69
|
85
|
jpayne@69
|
86 #define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) \
|
jpayne@69
|
87 #major "." #minor "." #patch stability commit
|
jpayne@69
|
88
|
jpayne@69
|
89 #define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit) \
|
jpayne@69
|
90 LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit)
|
jpayne@69
|
91
|
jpayne@69
|
92
|
jpayne@69
|
93 /**
|
jpayne@69
|
94 * \brief Compile-time version as a string
|
jpayne@69
|
95 *
|
jpayne@69
|
96 * This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable
|
jpayne@69
|
97 * versions don't have any "stable" suffix). In future, a snapshot built
|
jpayne@69
|
98 * from source code repository may include an additional suffix, for example
|
jpayne@69
|
99 * "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form
|
jpayne@69
|
100 * in LZMA_VERSION macro.
|
jpayne@69
|
101 */
|
jpayne@69
|
102 #define LZMA_VERSION_STRING LZMA_VERSION_STRING_C( \
|
jpayne@69
|
103 LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, \
|
jpayne@69
|
104 LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \
|
jpayne@69
|
105 LZMA_VERSION_COMMIT)
|
jpayne@69
|
106
|
jpayne@69
|
107
|
jpayne@69
|
108 /* #ifndef is needed for use with windres (MinGW-w64 or Cygwin). */
|
jpayne@69
|
109 #ifndef LZMA_H_INTERNAL_RC
|
jpayne@69
|
110
|
jpayne@69
|
111 /**
|
jpayne@69
|
112 * \brief Run-time version number as an integer
|
jpayne@69
|
113 *
|
jpayne@69
|
114 * This allows an application to compare if it was built against the same,
|
jpayne@69
|
115 * older, or newer version of liblzma that is currently running.
|
jpayne@69
|
116 *
|
jpayne@69
|
117 * \return The value of LZMA_VERSION macro at the compile time of liblzma
|
jpayne@69
|
118 */
|
jpayne@69
|
119 extern LZMA_API(uint32_t) lzma_version_number(void)
|
jpayne@69
|
120 lzma_nothrow lzma_attr_const;
|
jpayne@69
|
121
|
jpayne@69
|
122
|
jpayne@69
|
123 /**
|
jpayne@69
|
124 * \brief Run-time version as a string
|
jpayne@69
|
125 *
|
jpayne@69
|
126 * This function may be useful to display which version of liblzma an
|
jpayne@69
|
127 * application is currently using.
|
jpayne@69
|
128 *
|
jpayne@69
|
129 * \return Run-time version of liblzma
|
jpayne@69
|
130 */
|
jpayne@69
|
131 extern LZMA_API(const char *) lzma_version_string(void)
|
jpayne@69
|
132 lzma_nothrow lzma_attr_const;
|
jpayne@69
|
133
|
jpayne@69
|
134 #endif
|