Commit 4d8a2770 authored by Ralf Habacker's avatar Ralf Habacker

Add cmake macro autoheaderchecks().

This macro prints out any include file defined as HAVE_..._H in the config
header template and not in the related cmake configure checks file.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=85418Reviewed-by: 's avatarSimon McVittie <simon.mcvittie@collabora.co.uk>
parent 8696bfdf
......@@ -17,6 +17,7 @@ endif(COMMAND cmake_policy)
include(MacrosAutotools)
autoinit(../configure.ac)
autoversion(dbus)
autoheaderchecks(../config.h.in ConfigureChecks.cmake)
# used by file version info
set (DBUS_PATCH_VERSION "0")
......
......@@ -116,6 +116,34 @@ macro(autodefine name)
endforeach()
endmacro()
macro(autoheaderchecks config_h_in configure_checks_file)
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})
#message(STATUS ${line})
if(line MATCHES ".*HAVE_.*_H.*")
string (REGEX REPLACE ".*HAVE_(.*)_H.*" "\\1" key ${line})
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)")
else()
set(file ${key})
string(TOLOWER ${file} filename)
set(check "check_include_file(${filename}.h HAVE_${key}_H)")
endif()
set(full_key "HAVE_${key}_H")
if(NOT configure_checks_file_raw MATCHES ".*${full_key}.*")
message("${check}")
endif()
endif()
endforeach()
endmacro(autoheaderchecks)
#
# parses config.h template and create cmake equivalent
# not implemented yet
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment