@@ -25,16 +25,33 @@ if(NOT DEFINED PROJECT_VERSION)
2525endif ()
2626
2727# 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+ set (PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1} )
31+ set (PROJECT_VERSION_MINOR ${CMAKE_MATCH_2} )
32+ set (PROJECT_VERSION_PATCH ${CMAKE_MATCH_3} )
33+ set (PROJECT_VERSION_PRERELEASE ${CMAKE_MATCH_5} )
34+ if (PROJECT_VERSION_PRERELEASE)
35+ set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} -${PROJECT_VERSION_PRERELEASE} " )
36+ else ()
37+ set (CPACK_PACKAGE_VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} " )
38+ endif ()
3039
31- # Use PROJECT_VERSION directly for CPack
32- set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION} )
40+ project (capstone VERSION "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} " )
3341
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} " )
42+ # Overwrite the version header file
43+ configure_file (
44+ "${CMAKE_SOURCE_DIR} /version.h.in"
45+ "${CMAKE_SOURCE_DIR} /include/capstone/version.h"
46+ @ONLY
47+ )
48+
49+ # Overwrite the pkgconfig.mk file
50+ configure_file (
51+ "${CMAKE_SOURCE_DIR} /pkgconfig.mk.in"
52+ "${CMAKE_SOURCE_DIR} /pkgconfig.mk"
53+ @ONLY
54+ )
3855
3956set (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)
4057
0 commit comments