@@ -25,16 +25,37 @@ if(NOT DEFINED PROJECT_VERSION)
25
25
endif ()
26
26
27
27
# Remove the 'v' prefix if it exists and extract the major, minor, and patch versions
28
- string (REGEX MATCH "^[vV]?([0-9]+\\ .[0-9]+\\ .[0-9]+)" _ ${PROJECT_VERSION} )
29
- set (PROJECT_VERSION_BASE ${CMAKE_MATCH_1} )
28
+ # The pre-release part is optional
29
+ string (REGEX MATCH "^[vV]?([0-9]+)\\ .([0-9]+)\\ .([0-9]+)(-(\\ w+))?" _ ${PROJECT_VERSION} )
30
+ if (NOT CMAKE_MATCH_1 OR NOT CMAKE_MATCH_2 OR NOT CMAKE_MATCH_3)
31
+ message (FATAL_ERROR "Invalid PROJECT_VERSION format. Expected format: x.y.z or x.y.z-pre" )
32
+ endif ()
33
+
34
+ set (PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1} )
35
+ set (PROJECT_VERSION_MINOR ${CMAKE_MATCH_2} )
36
+ set (PROJECT_VERSION_PATCH ${CMAKE_MATCH_3} )
37
+ set (PROJECT_VERSION_PRERELEASE ${CMAKE_MATCH_5} )
38
+ if (PROJECT_VERSION_PRERELEASE)
39
+ set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} -${PROJECT_VERSION_PRERELEASE} " )
40
+ else ()
41
+ set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} " )
42
+ endif ()
30
43
31
- # Use PROJECT_VERSION directly for CPack
32
- set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION} )
44
+ project (capstone VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} " )
45
+
46
+ # Overwrite the version header file
47
+ configure_file (
48
+ "${CMAKE_SOURCE_DIR} /version.h.in"
49
+ "${CMAKE_SOURCE_DIR} /include/capstone/version.h"
50
+ @ONLY
51
+ )
33
52
34
- # Set the project version without the pre-release identifier
35
- project (capstone VERSION ${PROJECT_VERSION_BASE} )
36
- # Print the values of PROJECT_VERSION and PROJECT_VERSION_BASE
37
- message (STATUS "PROJECT_VERSION: ${CPACK_PACKAGE_VERSION} CAPSTONE_VERSION: ${PROJECT_VERSION_BASE} " )
53
+ # Overwrite the pkgconfig.mk file
54
+ # configure_file(
55
+ # "${CMAKE_SOURCE_DIR}/pkgconfig.mk.in"
56
+ # "${CMAKE_SOURCE_DIR}/pkgconfig.mk"
57
+ # @ONLY
58
+ # )
38
59
39
60
set (UNIX_COMPILER_OPTIONS -Werror -Wall -Warray-bounds -Wshift-negative-value -Wreturn-type -Wformat -Wmissing-braces -Wunused-function -Warray-bounds -Wunused-variable -Wparentheses -Wint-in-bool -context -Wmisleading-indentation)
40
61
0 commit comments