]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Add check to cmake build system if config.h.cmake is in sync with autotools.
authorRalf Habacker <ralf.habacker@freenet.de>
Thu, 5 Mar 2015 12:03:47 +0000 (13:03 +0100)
committerRalf Habacker <ralf.habacker@freenet.de>
Thu, 5 Mar 2015 12:54:10 +0000 (13:54 +0100)
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=85418
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
cmake/CMakeLists.txt
cmake/modules/MacrosAutotools.cmake

index 8c006d002215af749c4712c08630b090489c6c71..14685da2afcdb11224f651d4fea2a87c2b907682 100644 (file)
@@ -17,7 +17,7 @@ endif(COMMAND cmake_policy)
 include(MacrosAutotools)
 autoinit(../configure.ac)
 autoversion(dbus)
-autoheaderchecks(../config.h.in ConfigureChecks.cmake)
+autoheaderchecks(../config.h.in ConfigureChecks.cmake config.h.cmake)
 # used by file version info
 set (DBUS_PATCH_VERSION "0")
 
index fac94a1148286276cbc5114affa5ff40e51f8471..89828e05b55b524fb1fe3a35d59d92fd6b5ea222 100644 (file)
@@ -116,30 +116,36 @@ macro(autodefine name)
     endforeach()
 endmacro()
 
-macro(autoheaderchecks config_h_in configure_checks_file)
+macro(autoheaderchecks config_h_in configure_checks_file config_h_cmake)
     file(READ ${configure_checks_file} configure_checks_file_raw)
-    file(READ ${config_h_in} _config_h_raw)
-    STRING(REGEX REPLACE ";" "\\\\;" _config_h "${_config_h_raw}")
-    STRING(REGEX REPLACE "\n" ";" _config_h "${_config_h}")
-    foreach(line ${_config_h})
+    file(READ ${config_h_in} _config_h_in_raw)
+    file(READ ${config_h_cmake} _config_h_cmake_raw)
+    STRING(REGEX REPLACE ";" "\\\\;" _config_h_in "${_config_h_in_raw}")
+    STRING(REGEX REPLACE "\n" ";" _config_h_in "${_config_h_in}")
+    foreach(line ${_config_h_in})
         #message(STATUS ${line})
         if(line MATCHES ".*HAVE_.*_H.*")
             string (REGEX REPLACE ".*HAVE_(.*)_H.*" "\\1" key ${line})
+            set(full_key "HAVE_${key}_H")
             if(key MATCHES ".*_.*")
                 string(REGEX MATCH "^[A-Z0-9]+" dir ${key})
                 string(REGEX MATCH "[A-Z0-9]+$" file ${key})
                 string(TOLOWER ${dir} dirname)
                 string(TOLOWER ${file} filename)
-                set(check "check_include_file(${dirname}/${filename}.h     HAVE_${key}_H)")
+                set(check "check_include_file(${dirname}/${filename}.h     ${full_key})")
+                set(config_define "#cmakedefine ${full_key}")
             else()
                 set(file ${key})
                 string(TOLOWER ${file} filename)
-                set(check "check_include_file(${filename}.h     HAVE_${key}_H)")
+                set(check "check_include_file(${filename}.h     ${full_key})")
+                set(config_define "#cmakedefine ${full_key}")
             endif()
-            set(full_key "HAVE_${key}_H")
             if(NOT configure_checks_file_raw MATCHES ".*${full_key}.*")
                 message("${check}")
             endif()
+            if(NOT _config_h_cmake_raw MATCHES "${full_key}")
+                message("${config_define}")
+            endif()
         endif()
     endforeach()
 endmacro(autoheaderchecks)