Message ID | 20220909134412.21934-1-laurent.pinchart@ideasonboard.com |
---|---|
Headers | show |
Series | Switch build system to meson | expand |
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. > 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
Hello Laurent and all the other helping hands, On 9/9/22 3:44 PM, Laurent Pinchart wrote: > This series is the latest (and greatest) attempt to switch v4l-utils > from autotools to meson. > > 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. Tested-by: Gregor Jasny <gjasny@googlemail.com> v7 is still working as expected with my Debian and Ubuntu packaging scripts. What would you think would be a good time to release these changes? Should I do a release shortly after the this change has landed? Thanks, Gregor
Em Tue, 13 Sep 2022 09:04:27 +0200 Mauro Carvalho Chehab <mchehab@kernel.org> escreveu: > Em Tue, 13 Sep 2022 07:54:08 +0100 > Hans Verkuil <hverkuil@xs4all.nl> escreveu: > > > Hi Laurent, > > > > On 9/12/22 23:29, Laurent Pinchart wrote: > > > Hi Gregor, > > > > > > On Mon, Sep 12, 2022 at 04:41:33PM +0200, Gregor Jasny wrote: > > >> Hello Laurent and all the other helping hands, > > >> > > >> On 9/9/22 3:44 PM, Laurent Pinchart wrote: > > >>> This series is the latest (and greatest) attempt to switch v4l-utils > > >>> from autotools to meson. > > >>> > > >>> 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. > > >> > > >> Tested-by: Gregor Jasny <gjasny@googlemail.com> > > >> > > >> v7 is still working as expected with my Debian and Ubuntu packaging scripts. > > > > > > Thanks for testing. I'll post a v8 with the improvements suggested in > > > the review comments. I will also include updates to the > > > v4l-utils.spec.in file, and would appreciate help testing it. > > > > > >> What would you think would be a good time to release these changes? > > >> Should I do a release shortly after the this change has landed? > > > > > > I think that would be a good idea. Once v8 is out, if there are no more > > > issues, I think it could be merged. > > > > > > > Before you do that, I would like to do a few more tests next week. > > I'd like to to it too, once the summary is there. I want to compare > autotools x meson with regards to enable/disable each build option, > and check the results. Ah, forgot to mention, but, before disabling autotools, I need the recipe for using Coverity with meson, as otherwise we'll have a regression on CI. The final patch dropping support for auto-tools can only be applied upstream after changing the CI to build via meson. So, the steps should be: 1. Version 8 is submitted; 2. Once it pass on tests, merge without dropping auto-tools support; 3. change CI to build via meson and test it; 4. release a new version. I'm in doubt if we should drop auto-tools before (4) or if we should keep support for it for a while. Thanks, Mauro
Hi Laurent, On 9/13/22 08:15, Hans Verkuil wrote: > Hi Laurent, > > On 9/12/22 23:29, Laurent Pinchart wrote: >> Hi Gregor, >> >> On Mon, Sep 12, 2022 at 04:41:33PM +0200, Gregor Jasny wrote: >>> Hello Laurent and all the other helping hands, >>> >>> On 9/9/22 3:44 PM, Laurent Pinchart wrote: >>>> This series is the latest (and greatest) attempt to switch v4l-utils >>>> from autotools to meson. >>>> >>>> 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. >>> >>> Tested-by: Gregor Jasny <gjasny@googlemail.com> >>> >>> v7 is still working as expected with my Debian and Ubuntu packaging >>> scripts. >> >> Thanks for testing. I'll post a v8 with the improvements suggested in >> the review comments. I will also include updates to the >> v4l-utils.spec.in file, and would appreciate help testing it. >> >>> What would you think would be a good time to release these changes? >>> Should I do a release shortly after the this change has landed? >> >> I think that would be a good idea. Once v8 is out, if there are no more >> issues, I think it could be merged. >> > > Two questions: for meson, what is the equivalent to 'make distclean'? > Just rm -rf build? > > And another: if I enable building for v4l2-ctl-32 and > v4l2-compliance-32, then those targets aren't build AFAICS. > > It's needed for testing 32-bit compat code. I've tested a bunch of other config options that relate to the utils I maintain, and those work fine. So it appears to be just these 32 bit config options that fail. Regards, Hans > > Regards, > > Hans
Hi Laurent, On 09/09/2022 15:44, Laurent Pinchart wrote: > Hello everybody, > > This series is the latest (and greatest) attempt to switch v4l-utils > from autotools to meson. > > 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 I'm trying to use this new build system in our internal cross compilation environment, and I am running into problems. What we did with the autotools setup is to configure everything, but just build a select set of utilities from the utils directory, without needing to link to anything in lib. So basically: cd utils/v4l2-ctl; make; make install Trying to cross compile in lib fails with strange errors, but I don't really want to build anything in lib anyway, I don't need it at all. Is there a way to tell ninja to build just one utility? Or are you forced to build everything? Regards, Hans