From fc2503615ff8be8b9d35e7c512243d62df6a026b Mon Sep 17 00:00:00 2001 From: Torsten Rasmussen Date: Thu, 8 Oct 2020 15:52:32 +0200 Subject: [PATCH] version: creating ncs_version.h with input from VERSION. This commit generates a ncs_version.h which can be included in source code. version.h is generated from version.h.in with data from VERSION. Signed-off-by: Torsten Rasmussen --- CMakeLists.txt | 1 + CODEOWNERS | 1 + cmake/version.cmake | 6 ++++++ ncs_version.h.in | 13 +++++++++++++ share/ncs-package/cmake/NcsConfig.cmake | 6 ++++++ 5 files changed, 27 insertions(+) create mode 100644 cmake/version.cmake create mode 100644 ncs_version.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 19ae5bcbb825..27e1756d1196 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ set(NRF_DIR ${CMAKE_CURRENT_LIST_DIR} CACHE PATH "NCS root directory") include(cmake/extensions.cmake) +include(cmake/version.cmake) include(cmake/multi_image.cmake) include(cmake/reports.cmake) diff --git a/CODEOWNERS b/CODEOWNERS index 94514d993f06..caaeaabac0a8 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,6 +6,7 @@ # Root folder /VERSION @carlescufi @tejlmand +/ncs_version.h.in @carlescufi @tejlmand /CODEOWNERS @carlescufi /LICENSE @carlescufi /README.rst @carlescufi diff --git a/cmake/version.cmake b/cmake/version.cmake new file mode 100644 index 000000000000..5a802b4050bc --- /dev/null +++ b/cmake/version.cmake @@ -0,0 +1,6 @@ +math(EXPR NCS_VERSION_CODE "(${NCS_VERSION_MAJOR} << 16) + (${NCS_VERSION_MINOR} << 8) + (${NCS_VERSION_PATCH})") + +# to_hex is made available by ${ZEPHYR_BASE}/cmake/hex.cmake +to_hex(${NCS_VERSION_CODE} NCS_VERSION_NUMBER) + +configure_file(${NRF_DIR}/ncs_version.h.in ${ZEPHYR_BINARY_DIR}/include/generated/ncs_version.h) diff --git a/ncs_version.h.in b/ncs_version.h.in new file mode 100644 index 000000000000..19ef2143446b --- /dev/null +++ b/ncs_version.h.in @@ -0,0 +1,13 @@ +#ifndef _NCS_VERSION_H_ +#define _NCS_VERSION_H_ + +#cmakedefine NCS_VERSION_CODE @NCS_VERSION_CODE@ +#define NCS_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) + +#define NCS_VERSION_NUMBER @NCS_VERSION_NUMBER@ +#define NCS_VERSION_MAJOR @NCS_VERSION_MAJOR@ +#define NCS_VERSION_MINOR @NCS_VERSION_MINOR@ +#define NCS_PATCHLEVEL @NCS_VERSION_PATCH@ +#define NCS_VERSION_STRING "@NCS_VERSION@" + +#endif /* _NCS_VERSION_H_ */ diff --git a/share/ncs-package/cmake/NcsConfig.cmake b/share/ncs-package/cmake/NcsConfig.cmake index ed46526a386e..d4cd9e3b719f 100644 --- a/share/ncs-package/cmake/NcsConfig.cmake +++ b/share/ncs-package/cmake/NcsConfig.cmake @@ -10,6 +10,12 @@ get_filename_component(NRF_DIR ${CMAKE_CURRENT_LIST_DIR}/${NRF_RELATIVE_DIR} ABS get_filename_component(NCS_DIR ${CMAKE_CURRENT_LIST_DIR}/${NCS_RELATIVE_DIR} ABSOLUTE) file(STRINGS ${NRF_DIR}/VERSION NCS_VERSION LIMIT_COUNT 1 LENGTH_MINIMUM 5) +string(REGEX MATCH "([^\.]*)\.([^\.]*)\.([^-]*)[-]?(.*)" OUT_VAR ${NCS_VERSION}) + +set(NCS_VERSION_MAJOR ${CMAKE_MATCH_1}) +set(NCS_VERSION_MINOR ${CMAKE_MATCH_2}) +set(NCS_VERSION_PATCH ${CMAKE_MATCH_3}) +set(NCS_VERSION_EXTRA ${CMAKE_MATCH_4}) if(NOT NO_BOILERPLATE) if(NCS_TOOLCHAIN_VERSION)