Re: [v4l-utils v5 0/5] Add support for meson building

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

 



Hi Ariel,

I'm still very much looking forward to this update!

I still think meson could be used in parallel for some cross over period
while these issues are worked out, which would encourage and support
wider testing before any consideration to swap altogether occurred.


Furthermore, the performance improvement on this is really nice
(intel i7 8th gen 4 core/8threads)

/usr/bin/time -v ./make-meson.sh
	User time (seconds): 99.38
	System time (seconds): 10.69
	Percent of CPU this job got: 577%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 0:19.05


/usr/bin/time -v ./make-autoconf.sh
	User time (seconds): 218.19
	System time (seconds): 21.46
	Percent of CPU this job got: 360%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 1:06.54

however the build output directories are not comparable so I suspect
that perhaps meson isn't (yet?) building all the same things?

du -sh build-autoconf build-meson/
129M	build-autoconf
69M	build-meson/


I've just tried testing it locally and found a smallish issue:


On 12/05/2021 19:49, Ariel D'Alessandro wrote:
> Hi all,
> 
> Another attempt to support meson build, addressing comments/fixes from
> reviewers.
> 
> This patchset was developed on top of v4l-utils current master branch:
> 
>     commit f0c7e3d71eaf4182bae7eb3ee0e43b4eeb047ea9
>     Author: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
> 
>         v4l2-ctl: add '--set-edid type=list' support
> 
> You can find the patchset pushed to the following branch:
> 
>     https://gitlab.collabora.com/adalessandro/v4l-utils/-/tree/v4l-utils-meson-v5
> 
> Feedback appreciated as always :-)
> 
> Changes from v4:
> 
>   * Dropped install_subdir() work-around to install empty dir. Supported
>     now in meson v0.57.
>   * Bump to meson v0.57. Replaced deprecated methods.
>   * Added override_dependency() calls on libraries.
>   * Properly check for bpf and SDL2 dependencies.

The SDL2 dependency is optional when I run ./bootstrap.sh; ./configure
which gives the following output:

compile time options summary
============================

    Host OS                    : linux-gnu
    X11                        : yes
    GL                         : yes
    glu                        : yes
    libelf		       : yes
    libjpeg                    : yes
    libudev                    : yes
    pthread                    : yes
    QT version                 : v5.4 with QtGL
    ALSA support               : yes
    SDL support		       : no

    build dynamic libs         : yes
    build static libs          : yes

    gconv                      : no

    dynamic libv4l             : yes
    v4l_plugins                : yes
    v4l_wrappers               : yes
    libdvbv5                   : yes
    dvbv5-daemon               : yes
    v4lutils                   : yes
    qv4l2                      : yes
    qvidcap                    : yes
    v4l2-ctl uses libv4l       : yes
    v4l2-ctl-32                : no
    v4l2-compliance            : yes
    v4l2-compliance uses libv4l: yes
    v4l2-compliance-32         : no
    BPF IR Decoders:           : no


However running meson build gives:

Has header "bpf/bpf.h" : NO
Run-time dependency sdl2 found: YES 2.0.10
Run-time dependency sdl2_image found: NO (tried pkgconfig and cmake)

meson.build:90:4: ERROR: C header 'SDL2/SDL_image.h' not found

Now I bet that's a corner case because SDL was found but SDL Image
wasn't, but perhaps it needs updating so that both are optional, and the
SDL support is only enabled when all SDL dependencies are met.



Of course I was able to 'solve/workaround' this locally with
 sudo apt install libsdl2-image-dev

Note that the time measurements reported above were after installing SDL
image so that both meson and autoconf should have been building the


>   * Removed libraries_private field from libv4lconvert pkgconfig.
>   * Documented meson static builds support.
>   * Set default compiler standard options.
>   * Added bpf check in keytable.
> 
> Changes from v3:
> 
>   * Split Doxygen support patch.
>   * Properly generate config.h configuration file.
> 
> Changes from v2:
> 
>   * Updated to current master branch.
>   * Moved README to markdown syntax.
>   * Documented meson build.
>   * Set PACKAGE_VERSION config macro as quoted.
> 
> Changes from v1:
> 
>   * Updated project version to 1.21.0.
>   * Fixed clang includes in keytable bpf compilation.
>   * Improved variable reutilization in meson scripts.        
>   * Set libraries version and soversion.                     
>   * Control symbol visibility.                  
>   * Install empty 'protocols' directory in keytable user dir.
>   * Fixed svg filenames in qv4l2 and qvidcap.                         
>   * Added support for Doxygen documentation (html and man).
>   * Updated required meson version to v0.53 (for fs module).       
>   * Added new files to EXTRA_DIST in each Makefile.am.              
> 
> Regards,
> 
> Ariel D'Alessandro (5):
>   Move README to markdown syntax
>   Add support for meson building
>   Copy Doxygen configuration file to doc/
>   meson: Add support for doxygen documentation
>   Makefile.am: Distribute meson related files
> 
>  .gitignore                                    |    1 +
>  INSTALL.meson.md                              |  142 +
>  Makefile.am                                   |    5 +-
>  README                                        |  274 --
>  README.md                                     |  332 +++
>  contrib/Makefile.am                           |    3 +-
>  contrib/cobalt-ctl/Makefile.am                |    2 +
>  contrib/cobalt-ctl/meson.build                |    8 +
>  contrib/decode_tm6000/Makefile.am             |    2 +
>  contrib/decode_tm6000/meson.build             |   14 +
>  contrib/gconv/Makefile.am                     |    2 +-
>  contrib/gconv/meson.build                     |   44 +
>  contrib/meson.build                           |   13 +
>  contrib/rds-saa6588/Makefile.am               |    2 +
>  contrib/rds-saa6588/meson.build               |    7 +
>  contrib/test/Makefile.am                      |    3 +-
>  contrib/test/meson.build                      |  143 +
>  contrib/xc3028-firmware/Makefile.am           |    2 +-
>  contrib/xc3028-firmware/meson.build           |   11 +
>  doc/Doxyfile.in                               | 2352 +++++++++++++++++
>  doc/meson.build                               |   34 +
>  lib/Makefile.am                               |    2 +-
>  lib/libdvbv5/Makefile.am                      |    2 +-
>  lib/libdvbv5/meson.build                      |  159 ++
>  lib/libv4l-mplane/Makefile.am                 |    2 +
>  lib/libv4l-mplane/meson.build                 |   23 +
>  lib/libv4l1/Makefile.am                       |    2 +-
>  lib/libv4l1/meson.build                       |   62 +
>  lib/libv4l2/Makefile.am                       |    2 +-
>  lib/libv4l2/meson.build                       |   71 +
>  lib/libv4l2rds/Makefile.am                    |    2 +
>  lib/libv4l2rds/meson.build                    |   37 +
>  lib/libv4lconvert/Makefile.am                 |    2 +-
>  lib/libv4lconvert/meson.build                 |  117 +
>  lib/meson.build                               |   11 +
>  libdvbv5-po/meson.build                       |    3 +
>  meson.build                                   |  334 +++
>  meson_options.txt                             |   50 +
>  utils/Makefile.am                             |    2 +-
>  utils/cec-compliance/Makefile.am              |    2 +-
>  utils/cec-compliance/meson.build              |   22 +
>  utils/cec-ctl/Makefile.am                     |    2 +-
>  utils/cec-ctl/meson.build                     |   18 +
>  utils/cec-follower/Makefile.am                |    2 +-
>  utils/cec-follower/meson.build                |   19 +
>  utils/cx18-ctl/Makefile.am                    |    2 +
>  utils/cx18-ctl/meson.build                    |    8 +
>  utils/dvb/Makefile.am                         |    2 +-
>  utils/dvb/meson.build                         |   70 +
>  utils/gen_media_bus_format_codes.sh           |    7 +
>  utils/gen_media_bus_format_names.sh           |    7 +
>  utils/ir-ctl/Makefile.am                      |    2 +
>  utils/ir-ctl/meson.build                      |   23 +
>  utils/ivtv-ctl/Makefile.am                    |    2 +
>  utils/ivtv-ctl/meson.build                    |   13 +
>  utils/keytable/Makefile.am                    |    3 +-
>  utils/keytable/bpf_protocols/Makefile.am      |    3 +-
>  .../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         |  151 ++
>  utils/libcecutil/Makefile.am                  |    2 +-
>  utils/libcecutil/meson.build                  |   45 +
>  utils/libmedia_dev/Makefile.am                |    2 +-
>  utils/libmedia_dev/meson.build                |   14 +
>  utils/libv4l2util/Makefile.am                 |    2 +-
>  utils/libv4l2util/meson.build                 |   16 +
>  utils/media-ctl/Makefile.am                   |    2 +
>  utils/media-ctl/meson.build                   |   43 +
>  utils/meson.build                             |   46 +
>  utils/qv4l2/Makefile.am                       |    3 +-
>  utils/qv4l2/meson.build                       |   80 +
>  utils/qvidcap/Makefile.am                     |    3 +-
>  utils/qvidcap/meson.build                     |   82 +
>  utils/rds-ctl/Makefile.am                     |    1 +
>  utils/rds-ctl/meson.build                     |   13 +
>  utils/v4l2-compliance/Makefile.am             |    2 +-
>  utils/v4l2-compliance/meson.build             |   58 +
>  utils/v4l2-ctl/Makefile.am                    |    2 +-
>  utils/v4l2-ctl/meson.build                    |   75 +
>  utils/v4l2-dbg/Makefile.am                    |    2 +-
>  utils/v4l2-dbg/meson.build                    |   16 +
>  utils/v4l2-sysfs-path/Makefile.am             |    2 +
>  utils/v4l2-sysfs-path/meson.build             |   14 +
>  v4l-utils-po/meson.build                      |    3 +
>  85 files changed, 4987 insertions(+), 299 deletions(-)
>  create mode 100644 INSTALL.meson.md
>  delete mode 100644 README
>  create mode 100644 README.md
>  create mode 100644 contrib/cobalt-ctl/meson.build
>  create mode 100644 contrib/decode_tm6000/meson.build
>  create mode 100644 contrib/gconv/meson.build
>  create mode 100644 contrib/meson.build
>  create mode 100644 contrib/rds-saa6588/meson.build
>  create mode 100644 contrib/test/meson.build
>  create mode 100644 contrib/xc3028-firmware/meson.build
>  create mode 100644 doc/Doxyfile.in
>  create mode 100644 doc/meson.build
>  create mode 100644 lib/libdvbv5/meson.build
>  create mode 100644 lib/libv4l-mplane/meson.build
>  create mode 100644 lib/libv4l1/meson.build
>  create mode 100644 lib/libv4l2/meson.build
>  create mode 100644 lib/libv4l2rds/meson.build
>  create mode 100644 lib/libv4lconvert/meson.build
>  create mode 100644 lib/meson.build
>  create mode 100644 libdvbv5-po/meson.build
>  create mode 100644 meson.build
>  create mode 100644 meson_options.txt
>  create mode 100644 utils/cec-compliance/meson.build
>  create mode 100644 utils/cec-ctl/meson.build
>  create mode 100644 utils/cec-follower/meson.build
>  create mode 100644 utils/cx18-ctl/meson.build
>  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
>  create mode 100644 utils/ir-ctl/meson.build
>  create mode 100644 utils/ivtv-ctl/meson.build
>  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
>  create mode 100644 utils/libcecutil/meson.build
>  create mode 100644 utils/libmedia_dev/meson.build
>  create mode 100644 utils/libv4l2util/meson.build
>  create mode 100644 utils/media-ctl/meson.build
>  create mode 100644 utils/meson.build
>  create mode 100644 utils/qv4l2/meson.build
>  create mode 100644 utils/qvidcap/meson.build
>  create mode 100644 utils/rds-ctl/meson.build
>  create mode 100644 utils/v4l2-compliance/meson.build
>  create mode 100644 utils/v4l2-ctl/meson.build
>  create mode 100644 utils/v4l2-dbg/meson.build
>  create mode 100644 utils/v4l2-sysfs-path/meson.build
>  create mode 100644 v4l-utils-po/meson.build
> 

-- 
Regards
--
Kieran



[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