aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarthik Nayak <karthik.188@gmail.com>2025-04-23 10:15:36 +0200
committerJunio C Hamano <gitster@pobox.com>2025-04-23 10:36:18 -0700
commit1597b6e86e3c13438a0e469b10048e73039e8023 (patch)
treedb9478f983536ef8337a64961bbd22190ad50fbd
parentcoccinelle: meson: rename variables to be more specific (diff)
downloadgit-1597b6e86e3c13438a0e469b10048e73039e8023.tar.gz
git-1597b6e86e3c13438a0e469b10048e73039e8023.zip
meson: move headers definition from 'contrib/coccinelle'
The Meson build for coccinelle static analysis lists all headers to analyse. Due to the way Meson exports variables between subdirs, this variable is also available in the root Meson build. An upcoming commit, will add a new check complimenting 'hdr-check' in the Makefile. This would require the list of headers. So move the 'coccinelle_headers' to the root Meson build and rename it to 'headers', remove the root path being appended to each header and retain that in the coccinelle Meson build since it is specific to the coccinelle build. Also move the 'third_party_sources' variable to the root Meson build since it is also a dependency for the 'headers' variable. This also makes it easier to understand as the variable is now propagated from the top level to the bottom. While 'headers_to_check' is only computed when we have a repository and the 'git' executable is present, the variable itself is exposed as an empty array. This allows dependencies in upcoming commits to simply check for length of the array and not worry about dependencies required to actually populate the array. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to '')
-rw-r--r--contrib/coccinelle/meson.build17
-rw-r--r--meson.build22
2 files changed, 23 insertions, 16 deletions
diff --git a/contrib/coccinelle/meson.build b/contrib/coccinelle/meson.build
index 03ce52d752..4f07824402 100644
--- a/contrib/coccinelle/meson.build
+++ b/contrib/coccinelle/meson.build
@@ -8,21 +8,6 @@ if not spatch.found()
subdir_done()
endif
-third_party_sources = [
- ':!contrib',
- ':!compat/inet_ntop.c',
- ':!compat/inet_pton.c',
- ':!compat/nedmalloc',
- ':!compat/obstack.*',
- ':!compat/poll',
- ':!compat/regex',
- ':!sha1collisiondetection',
- ':!sha1dc',
- ':!t/unit-tests/clar',
- ':!t/unit-tests/clar',
- ':!t/t[0-9][0-9][0-9][0-9]*',
-]
-
rules = [
'array.cocci',
'commit.cocci',
@@ -61,7 +46,7 @@ foreach source : run_command(git, '-C', meson.project_source_root(), 'ls-files',
endforeach
coccinelle_headers = []
-foreach header : run_command(git, '-C', meson.project_source_root(), 'ls-files', '--deduplicate', '*.h', third_party_sources, check: true).stdout().split()
+foreach header : headers_to_check
coccinelle_headers += meson.project_source_root() / header
endforeach
diff --git a/meson.build b/meson.build
index e98cfa4909..e147ddff28 100644
--- a/meson.build
+++ b/meson.build
@@ -633,6 +633,28 @@ builtin_sources = [
'builtin/write-tree.c',
]
+third_party_sources = [
+ ':!contrib',
+ ':!compat/inet_ntop.c',
+ ':!compat/inet_pton.c',
+ ':!compat/nedmalloc',
+ ':!compat/obstack.*',
+ ':!compat/poll',
+ ':!compat/regex',
+ ':!sha1collisiondetection',
+ ':!sha1dc',
+ ':!t/unit-tests/clar',
+ ':!t/unit-tests/clar',
+ ':!t/t[0-9][0-9][0-9][0-9]*',
+]
+
+headers_to_check = []
+if git.found() and fs.exists(meson.project_source_root() / '.git')
+ foreach header : run_command(git, '-C', meson.project_source_root(), 'ls-files', '--deduplicate', '*.h', third_party_sources, check: true).stdout().split()
+ headers_to_check += header
+ endforeach
+endif
+
if not get_option('breaking_changes')
builtin_sources += 'builtin/pack-redundant.c'
endif