Merge branch 'dbus-1.6'
[platform/upstream/dbus.git] / cmake / modules / MacrosAutotools.cmake
1 #
2 # @Author Ralf Habacker
3
4 # extracts version information from autoconf config file
5 # and set related cmake variables
6
7 # returns  
8 #   ${prefix}_VERSION
9 #   ${prefix}_VERSION_STRING
10 #   ${prefix}_MAJOR_VERSION
11 #   ${prefix}_MINOR_VERSION
12 #   ${prefix}_MICRO_VERSION
13
14 macro(autoversion config prefix)
15         file (READ ${config} _configure_ac)
16         string(TOUPPER ${prefix} prefix_upper)
17         string (REGEX REPLACE ".*${prefix}_major_version], .([0-9]+).*" "\\1" ${prefix_upper}_MAJOR_VERSION ${_configure_ac})
18         string (REGEX REPLACE ".*${prefix}_minor_version], .([0-9]+).*" "\\1" ${prefix_upper}_MINOR_VERSION ${_configure_ac})
19         string (REGEX REPLACE ".*${prefix}_micro_version], .([0-9]+).*" "\\1" ${prefix_upper}_MICRO_VERSION ${_configure_ac})
20         set (${prefix_upper}_VERSION ${${prefix_upper}_MAJOR_VERSION}.${${prefix_upper}_MINOR_VERSION}.${${prefix_upper}_MICRO_VERSION})
21         set (${prefix_upper}_VERSION_STRING "${${prefix_upper}_VERSION}")
22
23 endmacro()
24
25 #
26 # parses config.h template and create cmake equivalent 
27 # not implemented yet
28
29 macro(autoconfig template output)
30         file(READ ${template} contents)
31         # Convert file contents into a CMake list (where each element in the list
32         # is one line of the file)
33         STRING(REGEX REPLACE ";" "\\\\;" contents "${contents}")
34         STRING(REGEX REPLACE "\n" ";" contents "${contents}")
35         foreach(line contents)
36                 message(STATUS ${line})
37                 # find #undef lines
38                 # append to config.h #define <variable-name> <variable-content>
39         endforeach()
40 endmacro()