Message ID | 20250410-505-wire-up-sparse-via-meson-v2-2-acb45cc8a2e5@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | meson: add corresponding target for Makefile's hdr-check | expand |
On Thu, Apr 10, 2025 at 01:30:32PM +0200, Karthik Nayak wrote: > diff --git a/meson.build b/meson.build > index e98cfa4909..790d178007 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 = [] I think we should make sure that this variable isn't declared at all unless `git.found()`. Otherwise, we may accidentally it it even though it does not contain anything sensible. Patrick
Patrick Steinhardt <ps@pks.im> writes: > On Thu, Apr 10, 2025 at 01:30:32PM +0200, Karthik Nayak wrote: >> diff --git a/meson.build b/meson.build >> index e98cfa4909..790d178007 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 = [] > > I think we should make sure that this variable isn't declared at all > unless `git.found()`. Otherwise, we may accidentally it it even though > it does not contain anything sensible. > Fair, I wonder if we should treat 'third_party_sources' similarly, but since it is static, it should be fine. > Patrick
diff --git a/contrib/coccinelle/meson.build b/contrib/coccinelle/meson.build index 03ce52d752..32568c5103 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 coccinelle_headers += meson.project_source_root() / header endforeach diff --git a/meson.build b/meson.build index e98cfa4909..790d178007 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 = [] +if git.found() + foreach header : run_command(git, '-C', meson.project_source_root(), 'ls-files', '--deduplicate', '*.h', third_party_sources, check: true).stdout().split() + headers += header + endforeach +endif + if not get_option('breaking_changes') builtin_sources += 'builtin/pack-redundant.c' endif
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. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> --- contrib/coccinelle/meson.build | 17 +---------------- meson.build | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 16 deletions(-)