11# CMake tools for version management
2+ # Author: F.Mauger
3+ # Date: 2017-09-26
4+ # Copyright 2017 (c) François Mauger, Université de Caen Normandie
25
36function (bx_version_build_version_number prefix_)
47 set (${prefix_} _VERSION
@@ -10,25 +13,30 @@ function(bx_version_extract_patch_from_db major_ minor_ patch_)
1013 # message(STATUS "[info] bx_version_extract_patch_from_db: Entering...")
1114 # message(STATUS "[info] - Major = ${major_}")
1215 # message(STATUS "[info] - Minor = ${minor_}")
13- file (STRINGS
14- ${PROJECT_SOURCE_DIR} /cmake/BxPackageVersions.db
15- _bx_package_versions_lines
16- REGEX "^([0-9]+)\\ .([0-9]+)\\ .([0-9+])"
17- )
18- # message(STATUS "[info] Lines = ${_bx_package_versions_lines}")
19- foreach (line ${_bx_package_versions_lines} )
20- string (REPLACE "." ";" _version_list ${line} )
21- # message(STATUS "[info] Version list = ${_version_list}")
22- list (GET _version_list 0 _version_major)
23- list (GET _version_list 1 _version_minor)
24- list (GET _version_list 2 _version_patch)
25- if (${_version_major} EQUAL ${major_} )
26- if (${_version_minor} EQUAL ${minor_} )
27- set (${patch_} ${_version_patch} PARENT_SCOPE)
28- # message(STATUS "[info] Resolved patch = ${_version_patch}")
16+ set (_version_patch 0)
17+ if (EXISTS ${PROJECT_SOURCE_DIR} /cmake/BxPackageVersions.db)
18+ file (STRINGS
19+ ${PROJECT_SOURCE_DIR} /cmake/BxPackageVersions.db
20+ _bx_package_versions_lines
21+ REGEX "^([0-9]+)\\ .([0-9]+)\\ .([0-9+])"
22+ )
23+ # message(STATUS "[info] Lines = ${_bx_package_versions_lines}")
24+ foreach (line ${_bx_package_versions_lines} )
25+ string (REPLACE "." ";" _version_list ${line} )
26+ # message(STATUS "[info] Version list = ${_version_list}")
27+ list (GET _version_list 0 _version_major)
28+ list (GET _version_list 1 _version_minor)
29+ list (GET _version_list 2 _version_patch)
30+ if (${_version_major} EQUAL ${major_} )
31+ if (${_version_minor} EQUAL ${minor_} )
32+ set (${patch_} ${_version_patch} PARENT_SCOPE)
33+ # message(STATUS "[info] Resolved patch = ${_version_patch}")
34+ endif ()
2935 endif ()
30- endif ()
31- endforeach ()
36+ endforeach ()
37+ else ()
38+ set (${patch_} ${_version_patch} PARENT_SCOPE)
39+ endif ()
3240 # message(STATUS "[info] - New patch is set to : $ {${patch_}}")
3341 # message(STATUS "[info] bx_version_extract_patch_from_db: Exiting.")
3442endfunction ()
0 commit comments