1 ## Utility CMake functions.
3 # ----------------------------------------------------------------------------
4 ## Extract version numbers from version string.
5 function (version_numbers VERSION MAJOR MINOR PATCH)
6 if (VERSION MATCHES "([0-9]+)(\\.[0-9]+)?(\\.[0-9]+)?(rc[1-9][0-9]*|[a-z]+)?")
8 set (VERSION_MAJOR ${CMAKE_MATCH_1})
13 set (VERSION_MINOR ${CMAKE_MATCH_2})
14 string (REGEX REPLACE "^\\." "" VERSION_MINOR "${VERSION_MINOR}")
19 set (VERSION_PATCH ${CMAKE_MATCH_3})
20 string (REGEX REPLACE "^\\." "" VERSION_PATCH "${VERSION_PATCH}")
29 set ("${MAJOR}" "${VERSION_MAJOR}" PARENT_SCOPE)
30 set ("${MINOR}" "${VERSION_MINOR}" PARENT_SCOPE)
31 set ("${PATCH}" "${VERSION_PATCH}" PARENT_SCOPE)
34 # ----------------------------------------------------------------------------
35 ## Configure source files with .in suffix
36 function (configure_sources out)
38 foreach (src IN LISTS ARGN)
39 if (src MATCHES ".h$" AND EXISTS "${PROJECT_SOURCE_DIR}/src/${src}.in")
40 configure_file ("${PROJECT_SOURCE_DIR}/src/${src}.in" "${PROJECT_BINARY_DIR}/include/${GFLAGS_NAMESPACE}/${src}" @ONLY)
41 list (APPEND tmp "${PROJECT_BINARY_DIR}/include/${GFLAGS_NAMESPACE}/${src}")
43 list (APPEND tmp "${PROJECT_SOURCE_DIR}/src/${src}")
46 set (${out} "${tmp}" PARENT_SCOPE)