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