mirror of
https://github.com/mudita/MuditaOS.git
synced 2026-10-24 23:48:31 -04:00
Standalone and update packages can be generated by CMake targets. During creation of update package, the bootloader will be downloaded and included in the package along with version information. Additionally, a small refactor was performed since the Version.cmake script is now used for generating both the version.hpp and version.json files. Observervable side effects from this script have been moved to separate scripts which are invoked at build time.
71 lines
2.2 KiB
CMake
71 lines
2.2 KiB
CMake
# from: https://www.mattkeeter.com/blog/2018-01-06-versioning/ (modified)
|
|
|
|
execute_process(COMMAND git rev-parse --short HEAD
|
|
OUTPUT_VARIABLE GIT_REV
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_QUIET)
|
|
|
|
if ( NOT SRC_DIR )
|
|
set(SRC_DIR ${CMAKE_SOURCE_DIR})
|
|
endif()
|
|
# Check whether we got any revision (which isn't
|
|
# always the case, e.g. when someone downloaded a zip
|
|
# file from Github instead of a checkout)
|
|
if ("${GIT_REV}" STREQUAL "")
|
|
set(GIT_REV "N/A")
|
|
set(GIT_DIFF "")
|
|
set(GIT_TAG "N/A")
|
|
set(GIT_BRANCH "N/A")
|
|
else()
|
|
execute_process(
|
|
COMMAND bash -c "git diff --quiet --exit-code || echo +"
|
|
OUTPUT_VARIABLE GIT_DIFF
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${SRC_DIR}
|
|
)
|
|
execute_process(
|
|
COMMAND git describe --tags
|
|
RESULT_VARIABLE ret
|
|
OUTPUT_VARIABLE GIT_TAG
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
WORKING_DIRECTORY ${SRC_DIR}
|
|
ERROR_QUIET
|
|
)
|
|
if(NOT ret EQUAL "0")
|
|
set(GIT_TAG "none")
|
|
endif()
|
|
execute_process(
|
|
COMMAND git rev-parse --abbrev-ref HEAD
|
|
OUTPUT_VARIABLE GIT_BRANCH
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
execute_process(
|
|
COMMAND uname -r
|
|
OUTPUT_VARIABLE BUILD_HOST
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
execute_process(
|
|
COMMAND git config user.name
|
|
OUTPUT_VARIABLE BUILD_USER
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
execute_process(
|
|
COMMAND date +%F-%T
|
|
OUTPUT_VARIABLE BUILD_DATE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
execute_process(
|
|
COMMAND grep tskKERNEL_VERSION_NUMBER ${SRC_DIR}/module-os/FreeRTOS/include/task.h
|
|
COMMAND awk "{print $3}"
|
|
COMMAND tr -d "\""
|
|
OUTPUT_VARIABLE KERNEL_VERSION
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
endif()
|
|
|
|
string(REGEX MATCH "release-([0-9]*).([0-9]*).([0-9]*)" VERSION_RAW ${GIT_TAG})
|
|
set(CMAKE_PROJECT_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
|
set(CMAKE_PROJECT_VERSION_MINOR "${CMAKE_MATCH_2}")
|
|
set(CMAKE_PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}")
|
|
set(CMAKE_PROJECT_VERSION "${CMAKE_PROJECT_VERSION_MAJOR}.${CMAKE_PROJECT_VERSION_MINOR}.${CMAKE_PROJECT_VERSION_PATCH}")
|