Re: [RFC PATCH v3 1/1] Add support for meson building

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sean,
Thanks for the feedback!

On Fri, May 1, 2020 at 5:18 AM Sean Young <sean@xxxxxxxx> wrote:
>
> On Wed, Apr 29, 2020 at 12:16:39PM -0300, Ariel D'Alessandro wrote:
> > Supports building libraries and tools found in contrib/, lib/ and
> > utils/ directories, along with the implemented gettext translations.
> >
> > Co-developed-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
> > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx>
> > Signed-off-by: Ariel D'Alessandro <ariel@xxxxxxxxxxxxxxxxxxxx>
> > ---
> >  .gitignore                                    |   1 +
>
> -snip-
>
> > diff --git a/utils/keytable/meson.build b/utils/keytable/meson.build
> > new file mode 100644
> > index 00000000..751cb702
> > --- /dev/null
> > +++ b/utils/keytable/meson.build
> > @@ -0,0 +1,70 @@
> > +ir_keytable_sources = files(
> > +    'ir-encode.c',
> > +    'ir-encode.h',
> > +    'keymap.c',
> > +    'keymap.h',
> > +    'keytable.c',
> > +    'parse.h',
> > +    'toml.c',
> > +    'toml.h',
> > +)
> > +
> > +ir_keytable_deps = []
> > +
> > +if not get_option('bpf').disabled() and prog_clang.found() and dep_libelf.found()
> > +    ir_keytable_sources += files(
> > +        'bpf.c',
> > +        'bpf.h',
> > +        'bpf_load.c',
> > +        'bpf_load.h',
> > +    )
> > +    ir_keytable_deps += [
> > +        dep_libelf,
> > +    ]
> > +    subdir('bpf_protocols')
> > +endif
> > +
> > +ir_keytable_system_dir = udevdir
> > +ir_keytable_user_dir = get_option('sysconfdir') / 'rc_keymaps'
> > +
> > +ir_keytable_c_args = [
> > +    '-DIR_KEYTABLE_SYSTEM_DIR="@0@"'.format(ir_keytable_system_dir),
> > +    '-DIR_KEYTABLE_USER_DIR="@0@"'.format(ir_keytable_user_dir),
> > +]
> > +
> > +ir_keytable_incdir = [
> > +    utils_common_incdir,
> > +    v4l2_utils_incdir,
> > +]
> > +
> > +ir_keytable = executable('ir-keytable',
> > +                         sources : ir_keytable_sources,
> > +                         install : true,
> > +                         dependencies : ir_keytable_deps,
> > +                         c_args : ir_keytable_c_args,
> > +                         include_directories : ir_keytable_incdir)
> > +
> > +man_pages += [[ meson.current_source_dir(), 'ir-keytable', 1 ]]
> > +man_pages += [[ meson.current_source_dir(), 'rc_keymap', 5 ]]
> > +
> > +ir_keytable_sysconf_files = files(
> > +    'rc_maps.cfg',
> > +)
> > +install_data(ir_keytable_sysconf_files,
> > +             install_dir : get_option('sysconfdir'))
> > +
> > +subdir('rc_keymaps')
> > +install_data(ir_keytable_rc_keymaps,
> > +             install_dir : udevdir / 'rc_keymaps')
> > +
> > +ir_keytable_udev_rules = files(
> > +    '70-infrared.rules',
> > +)
> > +install_data(ir_keytable_udev_rules,
> > +             install_dir : udevdir / 'rules.d')
> > +
> > +ir_keytable_systemd_files = files(
> > +    '50-rc_keymap.conf',
> > +)
> > +install_data(ir_keytable_systemd_files,
> > +             install_dir : systemd_systemdir / 'systemd-udevd.service.d')
>
> There seems to be no way overriding systemd_systemdir or udevdir. This
> would be very useful.

There's a way, as follows:

Meson way:
    $ meson -Dsystemdsystemunitdir=$my_path build/
    $ meson -Dudevdir=$my_path build/

Autoconf way:
    $ ./configure --with-systemdsystemunitdir=$my_path
    $ ./configure --with-udevdir=$my_path

The above will set systemd_systemdir or udevdir with the specified path.

> I don't think this can be done with autoconf either, so this is probably
> a nice to have. However with autoconf I can do "make -k install" to
> skip installing system udev/systemd files, but I don't know how to do
> with ninja.

Shall we provide an option to skip installing these system files?

> Lastly the meson build does not support sync-with-kernel. We can add
> this at some later point, I suppose.

True, that's not done yet. We should support it in the meson build in order
to replace autotools completely. I'll try to tackle that down ASAP.

Regards,
Ariel



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux