mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-09 07:18:03 +02:00
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=85418 Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
This commit is contained in:
parent
8696bfdf07
commit
4d8a27701b
2 changed files with 29 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue