From e59908e7fc0000b1e7ebb4f546bc9490fab0612f Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Mon, 14 Dec 2015 17:25:29 +0000 Subject: [PATCH] Subject: [PATCH] Add LWS_LIBRARY_VERSION_NUMBER to lws_config.h. This changeset adds a few preprocessor macros to lws_config.h to allow a user of libwebsockets to determine at compile time which version of lws they are compiling against. This exposes the already existing LWS_LIBRARY_VERSION_MAJOR and _MINOR values, and adds LWS_LIBRARY_VERSION_PATCH. This suggests that future minor bugfix release versions of lws would be e.g. 1.6.0 -> 1.6.1 rather than the style used previously: 1.2 -> 1.21. The way this is currently set up means new minor revisions (with _PATCH==0) always end with .0 but I could change this if preferred. The most important addition is LWS_LIBRARY_VERSION_NUMBER, which produces a number of the form 1005001 for version 1.5.1 - i.e. each part major, minor, patch can extend from 0-999. This macro allows a very easy compile time comparison of version numbers. --- CMakeLists.txt | 9 +++++++-- lws_config.h.in | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8461fe3b..829b1a80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,8 @@ set(PACKAGE "libwebsockets") set(CPACK_PACKAGE_NAME "${PACKAGE}") set(CPACK_PACKAGE_VERSION_MAJOR "1") set(CPACK_PACKAGE_VERSION_MINOR "5") -set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") set(CPACK_PACKAGE_VENDOR "andy@warmcat.com") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PACKAGE} ${PACKAGE_VERSION}") set(SOVERSION "6") @@ -19,6 +20,10 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSIO set(VERSION "${CPACK_PACKAGE_VERSION}") set(LWS_LIBRARY_VERSION ${CPACK_PACKAGE_VERSION}) +set(LWS_LIBRARY_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR}) +set(LWS_LIBRARY_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}) +set(LWS_LIBRARY_VERSION_PATCH ${CPACK_PACKAGE_VERSION_PATCH}) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/") message(STATUS "CMAKE_TOOLCHAIN_FILE='${CMAKE_TOOLCHAIN_FILE}'") @@ -957,7 +962,7 @@ includedir=\${prefix}/include Name: libwebsockets Description: Websockets server and client library -Version: ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR} +Version: ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} Libs: -L\${libdir} -lwebsockets Cflags: -I\${includedir}" diff --git a/lws_config.h.in b/lws_config.h.in index 13622fbc..df2e0434 100644 --- a/lws_config.h.in +++ b/lws_config.h.in @@ -17,6 +17,12 @@ /* The Libwebsocket version */ #cmakedefine LWS_LIBRARY_VERSION "${LWS_LIBRARY_VERSION}" +#define LWS_LIBRARY_VERSION_MAJOR ${LWS_LIBRARY_VERSION_MAJOR} +#define LWS_LIBRARY_VERSION_MINOR ${LWS_LIBRARY_VERSION_MINOR} +#define LWS_LIBRARY_VERSION_PATCH ${LWS_LIBRARY_VERSION_PATCH} +/* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ +#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_MAJOR*1000000)+(LWS_LIBRARY_VERSION_MINOR*1000)+LWS_LIBRARY_VERSION_PATCH + /* The current git commit hash that we're building from */ #cmakedefine LWS_BUILD_HASH "${LWS_BUILD_HASH}"