@@ -8,9 +8,6 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.10" CACHE STRING "Minimum OS X deployment ve
88### top level compile options
99project (Neutrino CXX)
1010
11- set (${PROJECT_NAME} _VERSION_MAJOR "2" )
12- set (${PROJECT_NAME} _VERSION_MINOR "1" )
13-
1411#############################
1512
1613option (NEUTRINOPLUGINS "Compile Neutrino plugins" ON )
@@ -20,7 +17,40 @@ if (CMAKE_BUILD_TYPE STREQUAL "")
2017 set (CMAKE_BUILD_TYPE "Release" )
2118endif ()
2219
23- message (STATUS "Neutrino build type: ${CMAKE_BUILD_TYPE} " )
20+ #versioning
21+ find_package (Git REQUIRED)
22+ if (GIT_FOUND)
23+ #How many commits since last version tag
24+ execute_process (COMMAND ${GIT_EXECUTABLE} describe --match "v[0-9]*\\ .[0-9]*" --abbrev=0
25+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
26+ RESULT_VARIABLE NOT_GOOD_TAG
27+ OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_GIT_VER
28+ OUTPUT_STRIP_TRAILING_WHITESPACE)
29+
30+ if (${NOT_GOOD_TAG} )
31+ set (${PROJECT_NAME} _VERSION "1.0" )
32+ MESSAGE (WARNING "Cannot find a matching tag imposing ${${PROJECT_NAME} _VERSION}" )
33+ else ()
34+ string (REGEX REPLACE "^v([0-9]*)\\ .([0-9]*)" "\\ 1.\\ 2" ${PROJECT_NAME} _VERSION "${${PROJECT_NAME} _VERSION_GIT_VER}" )
35+ endif ()
36+
37+
38+ execute_process (COMMAND ${GIT_EXECUTABLE} rev-list --count ${${PROJECT_NAME} _VERSION_GIT_VER}
39+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
40+ OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_AHEAD
41+ OUTPUT_STRIP_TRAILING_WHITESPACE)
42+
43+ set (${PROJECT_NAME} _VERSION_AHEAD "${${PROJECT_NAME} _VERSION}+${${PROJECT_NAME} _VERSION_AHEAD}" )
44+
45+ # Get current commit SHA from git
46+ execute_process (COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
47+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
48+ OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_GIT_SHA
49+ OUTPUT_STRIP_TRAILING_WHITESPACE)
50+
51+
52+
53+ endif (GIT_FOUND)
2454
2555if (UNIX AND NOT APPLE )
2656 set (LINUX TRUE )
@@ -71,33 +101,7 @@ SET(CPACK_RESOURCE_FILE_LICENSE "${${PROJECT_NAME}_SOURCE_DIR}/LICENSE.txt")
71101set (CPACK_PACKAGE_DESCRIPTION_FILE "${${PROJECT_NAME} _SOURCE_DIR}/README.md" )
72102set (CPACK_GENERATOR ZIP)
73103
74-
75- #versioning
76- find_package (Git REQUIRED)
77- if (GIT_FOUND)
78- # Get last tag from git
79- execute_process (COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
80- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
81- OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_STRING
82- OUTPUT_STRIP_TRAILING_WHITESPACE)
83-
84- #How many commits since last tag
85- execute_process (COMMAND ${GIT_EXECUTABLE} rev-list --count HEAD
86- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
87- OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_AHEAD
88- OUTPUT_STRIP_TRAILING_WHITESPACE)
89-
90- # Get current commit SHA from git
91- execute_process (COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
92- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
93- OUTPUT_VARIABLE ${PROJECT_NAME} _VERSION_GIT_SHA
94- OUTPUT_STRIP_TRAILING_WHITESPACE)
95- endif (GIT_FOUND)
96-
97- if (${NEUTRINOPLUGINS} )
98- set (CPACK_PACKAGE_VERSION "${${PROJECT_NAME} _VERSION_MAJOR}.${${PROJECT_NAME} _VERSION_MINOR}+${${PROJECT_NAME} _VERSION_AHEAD}" )
99- else ()
100- endif ()
104+ set (CPACK_PACKAGE_VERSION "${${PROJECT_NAME} _VERSION_AHEAD}" )
101105
102106if (WIN32 )
103107 list (APPEND CPACK_GENERATOR NSIS)
0 commit comments