[CRT] Remove useless #undef abort from process.h
[reactos.git] / sdk / include / reactos / version.cmake
1 option(NO_REACTOS_BUILDNO "If true, disables the generation of buildno.h and version.h for each configure" OFF)
2
3 if (NOT NO_REACTOS_BUILDNO)
4 string(TIMESTAMP KERNEL_VERSION_BUILD %Y%m%d UTC)
5 else()
6 set(KERNEL_VERSION_BUILD "custom")
7 endif()
8
9 set(KERNEL_VERSION_MAJOR "0")
10 set(KERNEL_VERSION_MINOR "4")
11 set(KERNEL_VERSION_PATCH_LEVEL "15")
12 set(COPYRIGHT_YEAR "2024")
13
14 # KERNEL_VERSION_BUILD_TYPE is "dev" for Git builds
15 # or "RC1", "RC2", "" for releases.
16 set(KERNEL_VERSION_BUILD_TYPE "dev")
17
18 set(KERNEL_VERSION "${KERNEL_VERSION_MAJOR}.${KERNEL_VERSION_MINOR}.${KERNEL_VERSION_PATCH_LEVEL}-${WINARCH}")
19 if(NOT KERNEL_VERSION_BUILD_TYPE STREQUAL "")
20 set(KERNEL_VERSION "${KERNEL_VERSION}-${KERNEL_VERSION_BUILD_TYPE}")
21 endif()
22
23 math(EXPR REACTOS_DLL_VERSION_MAJOR "${KERNEL_VERSION_MAJOR}+42")
24 set(DLL_VERSION_STR "${REACTOS_DLL_VERSION_MAJOR}.${KERNEL_VERSION_MINOR}.${KERNEL_VERSION_PATCH_LEVEL}")
25 if(NOT KERNEL_VERSION_BUILD_TYPE STREQUAL "")
26 set(DLL_VERSION_STR "${DLL_VERSION_STR}-${KERNEL_VERSION_BUILD_TYPE}")
27 endif()
28
29 # Get Git revision through "git describe"
30 set(COMMIT_HASH "unknown-hash")
31 set(REVISION "unknown-revision")
32
33 if((EXISTS "${REACTOS_SOURCE_DIR}/.git") AND (NOT NO_REACTOS_BUILDNO))
34 find_package(Git)
35 if(GIT_FOUND)
36 execute_process(
37 COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
38 WORKING_DIRECTORY ${REACTOS_SOURCE_DIR}
39 OUTPUT_VARIABLE GIT_COMMIT_HASH
40 RESULT_VARIABLE GIT_CALL_RESULT
41 OUTPUT_STRIP_TRAILING_WHITESPACE
42 )
43 if(GIT_CALL_RESULT EQUAL 0)
44 set(COMMIT_HASH "${GIT_COMMIT_HASH}")
45 endif()
46
47 execute_process(
48 COMMAND "${GIT_EXECUTABLE}" describe --abbrev=7 --long --always
49 WORKING_DIRECTORY ${REACTOS_SOURCE_DIR}
50 OUTPUT_VARIABLE GIT_DESCRIBE_REVISION
51 RESULT_VARIABLE GIT_CALL_RESULT
52 OUTPUT_STRIP_TRAILING_WHITESPACE
53 )
54 if(GIT_CALL_RESULT EQUAL 0)
55 set(REVISION "${GIT_DESCRIBE_REVISION}")
56 endif()
57 endif()
58 endif()
59
60 configure_file(sdk/include/reactos/version.h.cmake ${REACTOS_BINARY_DIR}/sdk/include/reactos/version.h)
61 configure_file(sdk/include/reactos/buildno.h.cmake ${REACTOS_BINARY_DIR}/sdk/include/reactos/buildno.h)