public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Kieran Bingham <kieran.bingham@ideasonboard.com>
To: Ariel D'Alessandro <ariel.dalessandro@collabora.com>,
	linux-media@vger.kernel.org
Cc: hverkuil@xs4all.nl, sean@mess.org, p.zabel@pengutronix.de,
	laurent.pinchart@ideasonboard.com, ezequiel@collabora.com,
	nicolas@ndufresne.ca, gjasny@googlemail.com,
	xavier.claessens@collabora.com, nicolas.dufresne@collabora.com,
	user.vdr@gmail.com, sakari.ailus@iki.fi,
	mchehab+huawei@kernel.org, rosenp@gmail.com
Subject: Re: [v4l-utils v5 0/5] Add support for meson building
Date: Thu, 13 May 2021 09:56:40 +0100	[thread overview]
Message-ID: <f2f72ec5-e352-132f-b8d1-718589360bf0@ideasonboard.com> (raw)
In-Reply-To: <20210512184946.102863-1-ariel.dalessandro@collabora.com>

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@xs4all.nl>
> 
>         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

  parent reply	other threads:[~2021-05-13  8:56 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-12 18:49 [v4l-utils v5 0/5] Add support for meson building Ariel D'Alessandro
2021-05-12 18:49 ` [v4l-utils v5 1/5] Move README to markdown syntax Ariel D'Alessandro
2021-05-12 18:49 ` [v4l-utils v5 2/5] Add support for meson building Ariel D'Alessandro
2021-05-12 18:49 ` [v4l-utils v5 3/5] Copy Doxygen configuration file to doc/ Ariel D'Alessandro
2021-05-12 18:49 ` [v4l-utils v5 4/5] meson: Add support for doxygen documentation Ariel D'Alessandro
2021-05-12 18:49 ` [v4l-utils v5 5/5] Makefile.am: Distribute meson related files Ariel D'Alessandro
2021-05-13  8:56 ` Kieran Bingham [this message]
2021-05-17 20:55   ` [v4l-utils v5 0/5] Add support for meson building Ariel D'Alessandro
2021-05-17 22:13     ` Kieran Bingham
2021-05-18  7:23       ` Mauro Carvalho Chehab
2021-05-18 10:18         ` Kieran Bingham
2021-05-19 11:07           ` Mauro Carvalho Chehab
2021-06-16 13:36           ` Ariel D'Alessandro
2021-06-16 14:26       ` Ariel D'Alessandro
2021-06-16 14:59         ` Mauro Carvalho Chehab
2021-06-16 15:06           ` Xavier Claessens
2021-06-16 15:10           ` Nicolas Dufresne
2021-06-16 15:11           ` Laurent Pinchart
2021-10-04 14:24 ` Laurent Pinchart
2021-12-15 21:05   ` Laurent Pinchart
2021-11-18  9:03 ` Tomi Valkeinen
2021-11-18 10:09   ` Tomi Valkeinen
2021-12-15 21:07     ` Laurent Pinchart
2021-11-18 10:39   ` Laurent Pinchart
2021-12-15 21:10 ` 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=f2f72ec5-e352-132f-b8d1-718589360bf0@ideasonboard.com \
    --to=kieran.bingham@ideasonboard.com \
    --cc=ariel.dalessandro@collabora.com \
    --cc=ezequiel@collabora.com \
    --cc=gjasny@googlemail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=nicolas.dufresne@collabora.com \
    --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