public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Rosen Penev <rosenp@gmail.com>
Cc: linux-media@vger.kernel.org, ezequiel@collabora.com,
	gjasny@googlemail.com, hverkuil@xs4all.nl,
	kieran.bingham@ideasonboard.com, mchehab@kernel.org,
	nicolas@ndufresne.ca, p.zabel@pengutronix.de,
	sakari.ailus@iki.fi, sean@mess.org, user.vdr@gmail.com,
	xavier.claessens@collabora.com
Subject: Re: [PATCH v7 0/5] Switch build system to meson
Date: Sat, 11 Feb 2023 19:12:34 +0200	[thread overview]
Message-ID: <Y+fMgvfIlzZfX2n+@pendragon.ideasonboard.com> (raw)
In-Reply-To: <Yx8EpB2p6gkcjhTm@pendragon.ideasonboard.com>

On Mon, Sep 12, 2022 at 01:06:29PM +0300, Laurent Pinchart wrote:
> Hi Rosen,
> 
> Thank you for looking into this, the review is appreciated.
> 
> On Sat, Sep 10, 2022 at 07:17:53PM -0700, Rosen Penev wrote:
> > On Fri, Sep 9, 2022 at 6:44 AM Laurent Pinchart wrote:
> > >
> > > Hello everybody,
> > >
> > > This series is the latest (and greatest) attempt to switch v4l-utils
> > > from autotools to meson.
> > 
> > I looked at the base meson.build file. Those enabled() usages look
> > weird to me. The libudev one seems like a refactoring oversight.
> 
> Indeed. I'll fix that.
> 
> > dep_gl = dependency('gl', required : get_option('qvidcap').enabled()
> > or get_option('qv4l2').enabled())
> > 
> > can be rewritten as
> > dep gl = dependency('gl, required: get_option('qvidcap'))
> > if not dep_gl.found()
> >   dep gl = dependency('gl, required: get_option('qv4l2'))
> > endif
> > 
> > That'll enable the actual feature option to work properly.
> 
> Will fix too. It would be nice if meson had a way to easily combine two
> features, something along the lines of
> 
> dep gl = dependency('gl, required: get_option('qvidcap') || get_option('qv4l2'))
> 
> > have_visibility should use cc.has_function_attribute(' visibility:hidden')
> 
> I didn't know about that. Will fix.

I gave this a try and it works fine, but I'm wondering why
has_function_attribute() is preferred here.

Also, shouldn't we test for 'visibility:default' instead, as that's what
is being used in the source code ? Technically I suppose we should test
for both 'visibility:default' and '-fvisibility=hidden', but I doubt it
would make any different in practice, if one of them is supported, the
other should be as well.

> > The libiconv check should also be a feature check:
> > 
> > if meson.version().version_compare('>= 0.60')
> >   iconv_dep = dependency('iconv', required: get_option('iconv'))
> > else
> >   ...
> > endif
> 
> I'll do this too.
> 
> > > Compared to v6, the first noticeable change is that fixups have been
> > > squashed into their corresponding commit. Detailed changelogs are now
> > > included in individual patches.
> > >
> > > The second big change is that the last patch from v6 ("Makefile.am:
> > > Distribute meson related files") got replaced by 5/5 which drops
> > > autotools support, completing the switch from autotools to meson.
> > >
> > > A branch that includes this series can be found at
> > >
> > >         git://linuxtv.org/pinchartl/v4l-utils.git meson
> > >
> > > Ariel D'Alessandro (4):
> > >   Move README to markdown syntax
> > >   Add support for meson building
> > >   Copy Doxygen configuration file to doc/
> > >   meson: Add support for doxygen documentation
> > >
> > > Laurent Pinchart (1):
> > >   Drop autoconf/automake support
> > >
> > >  .gitignore                                    |  62 +-
> > >  INSTALL                                       | 105 ---
> > >  INSTALL.md                                    | 142 ++++
> > >  Makefile.am                                   |  16 -
> > >  README                                        | 274 -------
> > >  README.md                                     | 275 +++++++
> > >  aminclude.am                                  | 186 -----
> > >  bootstrap.sh                                  |  28 -
> > >  configure.ac                                  | 668 ------------------
> > >  contrib/Makefile.am                           |  25 -
> > >  contrib/cobalt-ctl/.gitignore                 |   1 -
> > >  contrib/cobalt-ctl/Makefile.am                |   3 -
> > >  contrib/cobalt-ctl/meson.build                |   8 +
> > >  contrib/decode_tm6000/.gitignore              |   1 -
> > >  contrib/decode_tm6000/Makefile.am             |   4 -
> > >  contrib/decode_tm6000/meson.build             |  14 +
> > >  contrib/freebsd/Makefile.am                   |   3 -
> > >  contrib/gconv/Makefile.am                     |  17 -
> > >  contrib/gconv/meson.build                     |  44 ++
> > >  contrib/meson.build                           |  13 +
> > >  contrib/rds-saa6588/.gitignore                |   1 -
> > >  contrib/rds-saa6588/Makefile.am               |   3 -
> > >  contrib/rds-saa6588/meson.build               |   7 +
> > >  contrib/test/.gitignore                       |  11 -
> > >  contrib/test/Makefile.am                      |  65 --
> > >  contrib/test/meson.build                      | 143 ++++
> > >  contrib/xc3028-firmware/.gitignore            |   1 -
> > >  contrib/xc3028-firmware/Makefile.am           |   5 -
> > >  contrib/xc3028-firmware/meson.build           |  11 +
> > >  doxygen_libdvbv5.cfg => doc/Doxyfile.in       | 128 ++--
> > >  doc/meson.build                               |  34 +
> > >  lib/Makefile.am                               |  13 -
> > >  lib/libdvbv5/Makefile.am                      | 126 ----
> > >  lib/libdvbv5/libdvbv5.pc.in                   |  11 -
> > >  lib/libdvbv5/meson.build                      | 159 +++++
> > >  lib/libv4l-mplane/Makefile.am                 |   7 -
> > >  lib/libv4l-mplane/meson.build                 |  23 +
> > >  lib/libv4l1/Makefile.am                       |  29 -
> > >  lib/libv4l1/libv4l1.pc.in                     |  12 -
> > >  lib/libv4l1/meson.build                       |  62 ++
> > >  lib/libv4l2/Makefile.am                       |  32 -
> > >  lib/libv4l2/libv4l2.pc.in                     |  12 -
> > >  lib/libv4l2/meson.build                       |  71 ++
> > >  lib/libv4l2rds/Makefile.am                    |  12 -
> > >  lib/libv4l2rds/libv4l2rds.pc.in               |  11 -
> > >  lib/libv4l2rds/meson.build                    |  37 +
> > >  lib/libv4lconvert/.gitignore                  |   3 -
> > >  lib/libv4lconvert/Makefile.am                 |  36 -
> > >  lib/libv4lconvert/libv4lconvert.pc.in         |  11 -
> > >  lib/libv4lconvert/meson.build                 | 117 +++
> > >  lib/meson.build                               |  11 +
> > >  libdvbv5-po/Makevars                          |  72 --
> > >  libdvbv5-po/meson.build                       |   3 +
> > >  m4/ac_define_dir.m4                           |  34 -
> > >  m4/ax_prog_doxygen.m4                         | 532 --------------
> > >  m4/ax_pthread.m4                              | 522 --------------
> > >  m4/mode_t.m4                                  |  26 -
> > >  m4/visibility.m4                              |  82 ---
> > >  meson.build                                   | 339 +++++++++
> > >  meson_options.txt                             |  50 ++
> > >  utils/Makefile.am                             |  36 -
> > >  utils/cec-compliance/.gitignore               |   2 -
> > >  utils/cec-compliance/Makefile.am              |   8 -
> > >  utils/cec-compliance/meson.build              |  23 +
> > >  utils/cec-ctl/.gitignore                      |   2 -
> > >  utils/cec-ctl/Makefile.am                     |   8 -
> > >  utils/cec-ctl/meson.build                     |  18 +
> > >  utils/cec-follower/.gitignore                 |   2 -
> > >  utils/cec-follower/Makefile.am                |   8 -
> > >  utils/cec-follower/meson.build                |  19 +
> > >  utils/cx18-ctl/.gitignore                     |   1 -
> > >  utils/cx18-ctl/Makefile.am                    |   3 -
> > >  utils/cx18-ctl/meson.build                    |   8 +
> > >  utils/dvb/.gitignore                          |   9 -
> > >  utils/dvb/Makefile.am                         |  35 -
> > >  utils/dvb/meson.build                         |  70 ++
> > >  utils/gen_media_bus_format_codes.sh           |   7 +
> > >  utils/gen_media_bus_format_names.sh           |   7 +
> > >  utils/ir-ctl/.gitignore                       |   2 -
> > >  utils/ir-ctl/Makefile.am                      |   6 -
> > >  utils/ir-ctl/meson.build                      |  23 +
> > >  utils/ivtv-ctl/.gitignore                     |   1 -
> > >  utils/ivtv-ctl/Makefile.am                    |   4 -
> > >  utils/ivtv-ctl/meson.build                    |  13 +
> > >  utils/keytable/.gitignore                     |   3 -
> > >  utils/keytable/Makefile.am                    |  36 -
> > >  utils/keytable/bpf_protocols/Makefile.am      |  24 -
> > >  .../bpf_protocols/clang_sys_includes.sh       |   9 +
> > >  utils/keytable/bpf_protocols/meson.build      |  31 +
> > >  utils/keytable/meson.build                    |  81 +++
> > >  utils/keytable/rc_keymaps/meson.build         | 150 ++++
> > >  utils/libcecutil/.gitignore                   |   4 -
> > >  utils/libcecutil/Makefile.am                  |  24 -
> > >  utils/libcecutil/meson.build                  |  45 ++
> > >  utils/libmedia_dev/Makefile.am                |   7 -
> > >  utils/libmedia_dev/meson.build                |  14 +
> > >  utils/libv4l2util/Makefile.am                 |   7 -
> > >  utils/libv4l2util/meson.build                 |  16 +
> > >  utils/media-ctl/.gitignore                    |   3 -
> > >  utils/media-ctl/Makefile.am                   |  30 -
> > >  utils/media-ctl/libmediactl.pc.in             |  10 -
> > >  utils/media-ctl/libv4l2subdev.pc.in           |  11 -
> > >  utils/media-ctl/meson.build                   |  43 ++
> > >  utils/meson.build                             |  46 ++
> > >  utils/qv4l2/.gitignore                        |   9 -
> > >  utils/qv4l2/Makefile.am                       |  54 --
> > >  utils/qv4l2/meson.build                       |  80 +++
> > >  utils/qvidcap/.gitignore                      |   6 -
> > >  utils/qvidcap/Makefile.am                     |  42 --
> > >  utils/qvidcap/meson.build                     |  82 +++
> > >  utils/rds-ctl/.gitignore                      |   2 -
> > >  utils/rds-ctl/Makefile.am                     |   6 -
> > >  utils/rds-ctl/meson.build                     |  17 +
> > >  utils/v4l2-compliance/.gitignore              |   3 -
> > >  utils/v4l2-compliance/Makefile.am             |  31 -
> > >  utils/v4l2-compliance/meson.build             |  59 ++
> > >  utils/v4l2-ctl/.gitignore                     |   4 -
> > >  utils/v4l2-ctl/Makefile.am                    |  44 --
> > >  utils/v4l2-ctl/meson.build                    |  75 ++
> > >  utils/v4l2-dbg/.gitignore                     |   1 -
> > >  utils/v4l2-dbg/Makefile.am                    |   6 -
> > >  utils/v4l2-dbg/meson.build                    |  20 +
> > >  utils/v4l2-sysfs-path/.gitignore              |   1 -
> > >  utils/v4l2-sysfs-path/Makefile.am             |   4 -
> > >  utils/v4l2-sysfs-path/meson.build             |  14 +
> > >  v4l-utils-po/Makevars                         |  72 --
> > >  v4l-utils-po/meson.build                      |   3 +
> > >  v4l-utils.spec.in                             |   6 +-
> > >  128 files changed, 2604 insertions(+), 3699 deletions(-)
> > >  delete mode 100644 INSTALL
> > >  create mode 100644 INSTALL.md
> > >  delete mode 100644 Makefile.am
> > >  delete mode 100644 README
> > >  create mode 100644 README.md
> > >  delete mode 100644 aminclude.am
> > >  delete mode 100755 bootstrap.sh
> > >  delete mode 100644 configure.ac
> > >  delete mode 100644 contrib/Makefile.am
> > >  delete mode 100644 contrib/cobalt-ctl/.gitignore
> > >  delete mode 100644 contrib/cobalt-ctl/Makefile.am
> > >  create mode 100644 contrib/cobalt-ctl/meson.build
> > >  delete mode 100644 contrib/decode_tm6000/.gitignore
> > >  delete mode 100644 contrib/decode_tm6000/Makefile.am
> > >  create mode 100644 contrib/decode_tm6000/meson.build
> > >  delete mode 100644 contrib/freebsd/Makefile.am
> > >  delete mode 100644 contrib/gconv/Makefile.am
> > >  create mode 100644 contrib/gconv/meson.build
> > >  create mode 100644 contrib/meson.build
> > >  delete mode 100644 contrib/rds-saa6588/.gitignore
> > >  delete mode 100644 contrib/rds-saa6588/Makefile.am
> > >  create mode 100644 contrib/rds-saa6588/meson.build
> > >  delete mode 100644 contrib/test/.gitignore
> > >  delete mode 100644 contrib/test/Makefile.am
> > >  create mode 100644 contrib/test/meson.build
> > >  delete mode 100644 contrib/xc3028-firmware/.gitignore
> > >  delete mode 100644 contrib/xc3028-firmware/Makefile.am
> > >  create mode 100644 contrib/xc3028-firmware/meson.build
> > >  rename doxygen_libdvbv5.cfg => doc/Doxyfile.in (96%)
> > >  create mode 100644 doc/meson.build
> > >  delete mode 100644 lib/Makefile.am
> > >  delete mode 100644 lib/libdvbv5/Makefile.am
> > >  delete mode 100644 lib/libdvbv5/libdvbv5.pc.in
> > >  create mode 100644 lib/libdvbv5/meson.build
> > >  delete mode 100644 lib/libv4l-mplane/Makefile.am
> > >  create mode 100644 lib/libv4l-mplane/meson.build
> > >  delete mode 100644 lib/libv4l1/Makefile.am
> > >  delete mode 100644 lib/libv4l1/libv4l1.pc.in
> > >  create mode 100644 lib/libv4l1/meson.build
> > >  delete mode 100644 lib/libv4l2/Makefile.am
> > >  delete mode 100644 lib/libv4l2/libv4l2.pc.in
> > >  create mode 100644 lib/libv4l2/meson.build
> > >  delete mode 100644 lib/libv4l2rds/Makefile.am
> > >  delete mode 100644 lib/libv4l2rds/libv4l2rds.pc.in
> > >  create mode 100644 lib/libv4l2rds/meson.build
> > >  delete mode 100644 lib/libv4lconvert/.gitignore
> > >  delete mode 100644 lib/libv4lconvert/Makefile.am
> > >  delete mode 100644 lib/libv4lconvert/libv4lconvert.pc.in
> > >  create mode 100644 lib/libv4lconvert/meson.build
> > >  create mode 100644 lib/meson.build
> > >  delete mode 100644 libdvbv5-po/Makevars
> > >  create mode 100644 libdvbv5-po/meson.build
> > >  delete mode 100644 m4/ac_define_dir.m4
> > >  delete mode 100644 m4/ax_prog_doxygen.m4
> > >  delete mode 100644 m4/ax_pthread.m4
> > >  delete mode 100644 m4/mode_t.m4
> > >  delete mode 100644 m4/visibility.m4
> > >  create mode 100644 meson.build
> > >  create mode 100644 meson_options.txt
> > >  delete mode 100644 utils/Makefile.am
> > >  delete mode 100644 utils/cec-compliance/.gitignore
> > >  delete mode 100644 utils/cec-compliance/Makefile.am
> > >  create mode 100644 utils/cec-compliance/meson.build
> > >  delete mode 100644 utils/cec-ctl/.gitignore
> > >  delete mode 100644 utils/cec-ctl/Makefile.am
> > >  create mode 100644 utils/cec-ctl/meson.build
> > >  delete mode 100644 utils/cec-follower/.gitignore
> > >  delete mode 100644 utils/cec-follower/Makefile.am
> > >  create mode 100644 utils/cec-follower/meson.build
> > >  delete mode 100644 utils/cx18-ctl/.gitignore
> > >  delete mode 100644 utils/cx18-ctl/Makefile.am
> > >  create mode 100644 utils/cx18-ctl/meson.build
> > >  delete mode 100644 utils/dvb/.gitignore
> > >  delete mode 100644 utils/dvb/Makefile.am
> > >  create mode 100644 utils/dvb/meson.build
> > >  create mode 100755 utils/gen_media_bus_format_codes.sh
> > >  create mode 100755 utils/gen_media_bus_format_names.sh
> > >  delete mode 100644 utils/ir-ctl/.gitignore
> > >  delete mode 100644 utils/ir-ctl/Makefile.am
> > >  create mode 100644 utils/ir-ctl/meson.build
> > >  delete mode 100644 utils/ivtv-ctl/.gitignore
> > >  delete mode 100644 utils/ivtv-ctl/Makefile.am
> > >  create mode 100644 utils/ivtv-ctl/meson.build
> > >  delete mode 100644 utils/keytable/.gitignore
> > >  delete mode 100644 utils/keytable/Makefile.am
> > >  delete mode 100644 utils/keytable/bpf_protocols/Makefile.am
> > >  create mode 100755 utils/keytable/bpf_protocols/clang_sys_includes.sh
> > >  create mode 100644 utils/keytable/bpf_protocols/meson.build
> > >  create mode 100644 utils/keytable/meson.build
> > >  create mode 100644 utils/keytable/rc_keymaps/meson.build
> > >  delete mode 100644 utils/libcecutil/.gitignore
> > >  delete mode 100644 utils/libcecutil/Makefile.am
> > >  create mode 100644 utils/libcecutil/meson.build
> > >  delete mode 100644 utils/libmedia_dev/Makefile.am
> > >  create mode 100644 utils/libmedia_dev/meson.build
> > >  delete mode 100644 utils/libv4l2util/Makefile.am
> > >  create mode 100644 utils/libv4l2util/meson.build
> > >  delete mode 100644 utils/media-ctl/.gitignore
> > >  delete mode 100644 utils/media-ctl/Makefile.am
> > >  delete mode 100644 utils/media-ctl/libmediactl.pc.in
> > >  delete mode 100644 utils/media-ctl/libv4l2subdev.pc.in
> > >  create mode 100644 utils/media-ctl/meson.build
> > >  create mode 100644 utils/meson.build
> > >  delete mode 100644 utils/qv4l2/.gitignore
> > >  delete mode 100644 utils/qv4l2/Makefile.am
> > >  create mode 100644 utils/qv4l2/meson.build
> > >  delete mode 100644 utils/qvidcap/.gitignore
> > >  delete mode 100644 utils/qvidcap/Makefile.am
> > >  create mode 100644 utils/qvidcap/meson.build
> > >  delete mode 100644 utils/rds-ctl/.gitignore
> > >  delete mode 100644 utils/rds-ctl/Makefile.am
> > >  create mode 100644 utils/rds-ctl/meson.build
> > >  delete mode 100644 utils/v4l2-compliance/.gitignore
> > >  delete mode 100644 utils/v4l2-compliance/Makefile.am
> > >  create mode 100644 utils/v4l2-compliance/meson.build
> > >  delete mode 100644 utils/v4l2-ctl/.gitignore
> > >  delete mode 100644 utils/v4l2-ctl/Makefile.am
> > >  create mode 100644 utils/v4l2-ctl/meson.build
> > >  delete mode 100644 utils/v4l2-dbg/.gitignore
> > >  delete mode 100644 utils/v4l2-dbg/Makefile.am
> > >  create mode 100644 utils/v4l2-dbg/meson.build
> > >  delete mode 100644 utils/v4l2-sysfs-path/.gitignore
> > >  delete mode 100644 utils/v4l2-sysfs-path/Makefile.am
> > >  create mode 100644 utils/v4l2-sysfs-path/meson.build
> > >  delete mode 100644 v4l-utils-po/Makevars
> > >  create mode 100644 v4l-utils-po/meson.build
> > >
> > >
> > > base-commit: a7611b2407982d823d1561c23f4531b8cc5c9dee

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2023-02-11 17:12 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-09 13:44 [PATCH v7 0/5] Switch build system to meson Laurent Pinchart
2022-09-09 13:44 ` [PATCH v7 1/5] Move README to markdown syntax Laurent Pinchart
2022-09-09 13:44 ` [PATCH v7 2/5] Add support for meson building Laurent Pinchart
2022-09-09 13:44 ` [PATCH v7 3/5] Copy Doxygen configuration file to doc/ Laurent Pinchart
2022-09-09 13:44 ` [PATCH v7 4/5] meson: Add support for doxygen documentation Laurent Pinchart
2022-09-09 13:44 ` [PATCH v7 5/5] Drop autoconf/automake support Laurent Pinchart
2022-09-11  0:33 ` [PATCH v7 0/5] Switch build system to meson Laurent Pinchart
2022-09-11  2:17 ` Rosen Penev
2022-09-12 10:06   ` Laurent Pinchart
2023-02-11 17:12     ` Laurent Pinchart [this message]
2022-09-12 14:41 ` Gregor Jasny
2022-09-12 22:29   ` Laurent Pinchart
2022-09-13  6:54     ` Hans Verkuil
2022-09-13  7:04       ` Mauro Carvalho Chehab
2022-09-13  7:14         ` Mauro Carvalho Chehab
2022-09-13  7:15     ` Hans Verkuil
2022-09-13  8:51       ` Laurent Pinchart
2023-02-12  0:10         ` Laurent Pinchart
2022-09-13  8:52       ` Hans Verkuil
2022-09-12 16:04 ` Mauro Carvalho Chehab
2022-09-12 22:26   ` Laurent Pinchart
2022-09-23 10:54 ` Hans Verkuil
2023-02-11 20:41   ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+fMgvfIlzZfX2n+@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=ezequiel@collabora.com \
    --cc=gjasny@googlemail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=p.zabel@pengutronix.de \
    --cc=rosenp@gmail.com \
    --cc=sakari.ailus@iki.fi \
    --cc=sean@mess.org \
    --cc=user.vdr@gmail.com \
    --cc=xavier.claessens@collabora.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox