':!sha1dc',
':!t/unit-tests/clar',
':!t/t[0-9][0-9][0-9][0-9]*',
+ ':!xdiff',
]
headers_to_check = []
subdir('contrib')
+exclude_from_check_headers = [
+ 'compat/',
+ 'unicode-width.h',
+]
+
+if sha1_backend != 'openssl'
+ exclude_from_check_headers += 'sha1/openssl.h'
+endif
+if sha256_backend != 'openssl'
+ exclude_from_check_headers += 'sha256/openssl.h'
+endif
+if sha256_backend != 'nettle'
+ exclude_from_check_headers += 'sha256/nettle.h'
+endif
+if sha256_backend != 'gcrypt'
+ exclude_from_check_headers += 'sha256/gcrypt.h'
+endif
+
+if headers_to_check.length() != 0 and compiler.get_argument_syntax() == 'gcc'
+ hco_targets = []
+ foreach h : headers_to_check
+ skip_header = false
+ foreach exclude : exclude_from_check_headers
+ if h.startswith(exclude)
+ skip_header = true
+ break
+ endif
+ endforeach
+
+ if skip_header
+ continue
+ endif
+
+ hcc = custom_target(
+ input: h,
+ output: h.underscorify() + 'cc',
+ command: [
+ shell,
+ '-c',
+ 'echo \'#include "git-compat-util.h"\' > @OUTPUT@ && echo \'#include "' + h + '"\' >> @OUTPUT@'
+ ]
+ )
+
+ hco = custom_target(
+ input: hcc,
+ output: fs.replace_suffix(h.underscorify(), '.hco'),
+ command: [
+ compiler.cmd_array(),
+ libgit_c_args,
+ '-I', meson.project_source_root(),
+ '-I', meson.project_source_root() / 't/unit-tests',
+ '-o', '/dev/null',
+ '-c', '-xc',
+ '@INPUT@'
+ ]
+ )
+ hco_targets += hco
+ endforeach
+
+ alias_target('hdr-check', hco_targets)
+endif
+
foreach key, value : {
'DIFF': diff.full_path(),
'GIT_SOURCE_DIR': meson.project_source_root(),