From fdbc0cfa71f7d660855098a609175ba384259529 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 13 Feb 2009 18:00:03 +0200 Subject: Changed how the version number is specified in various places. Now configure.ac will get the version number directly from src/liblzma/api/lzma/version.h. The intent is to reduce the number of places where the version number is duplicated. In future, support for displaying Git commit ID may be added too. --- src/liblzma/api/lzma/version.h | 70 ++++++++++++++++++++++++++++++++++++++++-- src/liblzma/common/common.c | 2 +- src/xz/message.c | 2 +- src/xzdec/xzdec.c | 2 +- 4 files changed, 70 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/liblzma/api/lzma/version.h b/src/liblzma/api/lzma/version.h index 90d064a6..599c2cde 100644 --- a/src/liblzma/api/lzma/version.h +++ b/src/liblzma/api/lzma/version.h @@ -21,6 +21,27 @@ #endif +/* + * Version number splitted in components + */ +#define LZMA_VERSION_MAJOR 4 +#define LZMA_VERSION_MINOR 999 +#define LZMA_VERSION_PATCH 8 +#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_BETA + +#ifndef LZMA_VERSION_COMMIT +# define LZMA_VERSION_COMMIT "" +#endif + + +/* + * Map symbolic stability levels to integers. + */ +#define LZMA_VERSION_STABILITY_ALPHA 0 +#define LZMA_VERSION_STABILITY_BETA 1 +#define LZMA_VERSION_STABILITY_STABLE 2 + + /** * \brief Compile-time version number * @@ -37,11 +58,52 @@ * \note The version number of liblzma has nothing to with * the version number of Igor Pavlov's LZMA SDK. */ -#define LZMA_VERSION UINT32_C(49990081) +#define LZMA_VERSION (LZMA_VERSION_MAJOR * UINT32_C(10000000) \ + + LZMA_VERSION_MINOR * UINT32_C(10000) \ + + LZMA_VERSION_PATCH * UINT32_C(10) \ + + LZMA_VERSION_STABILITY) + + +/* + * Macros to construct the compile-time version string + */ +#if LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_ALPHA +# define LZMA_VERSION_STABILITY_STRING "alpha" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_BETA +# define LZMA_VERSION_STABILITY_STRING "beta" +#elif LZMA_VERSION_STABILITY == LZMA_VERSION_STABILITY_STABLE +# define LZMA_VERSION_STABILITY_STRING "" +#else +# error Incorrect LZMA_VERSION_STABILITY +#endif + +#define LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) \ + #major "." #minor "." #patch stability commit + +#define LZMA_VERSION_STRING_C(major, minor, patch, stability, commit) \ + LZMA_VERSION_STRING_C_(major, minor, patch, stability, commit) /** - * \brief liblzma version number as an integer + * \brief Compile-time version as a string + * + * This can be for example "4.999.5alpha", "4.999.8beta", or "5.0.0" (stable + * versions don't have any "stable" suffix). In future, a snapshot built + * from source code repository may include an additional suffix, for example + * "4.999.8beta-21-g1d92". The commit ID won't be available in numeric form + * in LZMA_VERSION macro. + */ +#define LZMA_VERSION_STRING LZMA_VERSION_STRING_C( \ + LZMA_VERSION_MAJOR, LZMA_VERSION_MINOR, \ + LZMA_VERSION_PATCH, LZMA_VERSION_STABILITY_STRING, \ + LZMA_VERSION_COMMIT) + + +/* #ifndef is needed for use with MinGW's windres. */ +#ifndef LZMA_H_INTERNAL_RC + +/** + * \brief Run-time version number as an integer * * Returns the value of LZMA_VERSION macro at the compile time of liblzma. * This allows the application to compare if it was built against the same, @@ -51,9 +113,11 @@ extern LZMA_API(uint32_t) lzma_version_number(void) lzma_attr_const; /** - * \brief Version number of liblzma as a string + * \brief Run-time version as a string * * This function may be useful if you want to display which version of * liblzma your application is currently using. */ extern LZMA_API(const char *) lzma_version_string(void) lzma_attr_const; + +#endif diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c index b1733973..b058a87e 100644 --- a/src/liblzma/common/common.c +++ b/src/liblzma/common/common.c @@ -34,7 +34,7 @@ lzma_version_number(void) extern LZMA_API(const char *) lzma_version_string(void) { - return PACKAGE_VERSION; + return LZMA_VERSION_STRING; } diff --git a/src/xz/message.c b/src/xz/message.c index 33eb0b3b..fd519c8f 100644 --- a/src/xz/message.c +++ b/src/xz/message.c @@ -892,7 +892,7 @@ message_version(void) { // It is possible that liblzma version is different than the command // line tool version, so print both. - printf("xz " PACKAGE_VERSION "\n"); + printf("xz " LZMA_VERSION_STRING "\n"); printf("liblzma %s\n", lzma_version_string()); my_exit(E_SUCCESS); } diff --git a/src/xzdec/xzdec.c b/src/xzdec/xzdec.c index 44543f4d..57e98776 100644 --- a/src/xzdec/xzdec.c +++ b/src/xzdec/xzdec.c @@ -101,7 +101,7 @@ help(void) static void lzma_attribute((noreturn)) version(void) { - printf(TOOL_FORMAT "dec " PACKAGE_VERSION "\n" + printf(TOOL_FORMAT "dec " LZMA_VERSION_STRING "\n" "liblzma %s\n", lzma_version_string()); my_exit(); -- cgit v1.2.3