Thread

  1. Re: [PATCH] Add `headerscheck` run_target to meson

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2025-12-04T07:09:33Z

    Hi,
    
    On Sat, 29 Nov 2025 at 14:07, Miłosz Bieniek <bieniek.milosz0@gmail.com> wrote:
    >
    > pt., 28 lis 2025 o 16:17 Nazir Bilal Yavuz <byavuz81@gmail.com> napisał(a):
    > >
    > > Hi,
    > >
    > > On Fri, 28 Nov 2025 at 18:05, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
    > > >
    > > > On Fri, 28 Nov 2025 at 17:03, Miłosz Bieniek <bieniek.milosz0@gmail.com> wrote:
    > > > >
    > > > > pt., 28 lis 2025 o 12:53 Peter Eisentraut <peter@eisentraut.org> napisał(a):
    > > > > >
    > > > > > On 27.11.25 10:28, Miłosz Bieniek wrote:
    > > > > > > While reviewing a patch I noticed that we have a `make -s headerscheck`
    > > > > > > but there is no equivalent in meson.
    > > > > > > I prepared a small patch that adds `headerscheck` and `cpluspluscheck`
    > > > > > > targets.
    > > > > >
    > > > > > This would be good to have, but I don't think your patch works.  It
    > > > > > seems you need to add the srcdir and builddir command-line arguments to
    > > > > > the invocations.
    > > > > >
    > > > >
    > > > > I think you are right. I added srcdir and builddir arguments.
    > > >
    > > > The headerscheck script pulls some information from Makefile.global
    > > > after the configure [1] but meson does not generate a full version of
    > > > Makefile.global [2], so it does not have the required information to
    > > > check perl and python headers. If you run 'meson compile
    > > > headerscheck', you get errors like:
    > >
    > > Sorry, I clicked send early.
    > >
    > > Two solutions came to my mind but I am not sure which one is better:
    > >
    > > 1) We can add missing information to the generated Makefile.global in
    > > the meson.build.
    > >
    > > 2) We can send required information as arguments to the headerscheck script.
    > >
    > > Any thoughts or suggestions?
    >
    > Thank you for the detailed response.
    > I initially thought the errors with `#include <Python.h>` and
    > `#include <EXTREN.h>` were only an issue with my local setup.
    > If I understand correctly, your first proposal would address this
    > problem without requiring integration with the headerscheck script,
    > which in my opinion would be a cleaner solution.
    > However, I would definitely like to hear what others think as well.
    
    I wanted to experiment with the first proposal and it turns out I need
    to edit the headerscheck script.
    
    There are 3 patches attached:
    
    0001 adds python_includespec and perl_includespec variables to the
    Makefile.global of the meson build.
    
    0002 adds headerscheck target to meson build like you do but with 2
    extra changes. First one is that, I moved the headerscheck script to a
    variable and used it in the target commands. Second one is that,
    headerscheck script could not find the perl_includespec and
    python_includespec variables because of the tabs in the sed command, I
    changed them with '[:space:]' and it worked. I am not sure if that is
    the correct fix but I just wanted to see if the script will work.
    
    0003 adds icu_flags option to the meson build and sets 'ICU_CFLAGS'
    Makefile.global variable to that option. This change is not needed for
    the headerscheck script to work but I saw that was missing and just
    wanted to show it. If we want to add that, this probably needs its own
    thread.
    
    --
    Regards,
    Nazir Bilal Yavuz
    Microsoft