Hello Bruce, On Thu, 25 Sept 2025 at 10:00, Bruce Richardson <[email protected]> wrote: > > On Wed, Sep 24, 2025 at 07:25:34PM +0200, David Marchand wrote: > > A problem with the current headers check is that it relies on > > meson dependencies objects that come with their include_directories > > directives, and all of those point at the library / driver sources. > > > > This means that we won't detect a public header including a private > > (as in, not exported) header, or a driver only header. > > > > To address this issue, a staging directory is added and every header > > is copied to it. > > > > Drivers and library headers are staged to two different directories > > and the check is updated accordingly. > > > > Signed-off-by: David Marchand <[email protected]> > > In general looks ok to me. > One small comment though - can we not have "staging" as a top-level > directory, but instead hide it inside the buildtools directory, or even the > chkincs directory? I dislike having too many subdirectories directly off > the root of the project, especially ones purely for internal tooling.
Well, at first I was trying to change the whole build process iow rely only on the staging directory and remove all the include_directories: directives from the declare_dependency() objects. Libraries and apps were ok, but there were a *lot* of complications with drivers (what a *huge mess*, especially for NXP drivers with "compat.h" includes, and Marvell drivers to a smaller extent). I may retry in the future with some AI tool that will brute force this :-). For now, I gave up but did not reconsider the location of the staging part. Moving to buildtools is indeed saner as it is only for the check now, and I can also make this staging stuff dependent on the check_includes option now. I have a strange build error with Windows + clang target that I'll need to understand (maybe a problem in how we reference DPDK public headers via "" instead of <>?). -- David Marchand

