All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/3 v4] package/qt5/qt5webengine: fix build dependencies for autodetected packages
Date: Thu, 17 Sep 2020 20:51:47 +0200	[thread overview]
Message-ID: <20200917205147.79d63fc9@windsurf.hq.k.grp> (raw)
In-Reply-To: <6efc39e9d97769fae93be2bcb91f56b050dda219.1600290685.git.yann.morin.1998@free.fr>

On Wed, 16 Sep 2020 23:11:34 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> +ifeq ($(BR2_PACKAGE_JSONCPP),y)
> +QT5WEBENGINE_DEPENDENCIES += jsoncpp
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LCMS2),y)
> +QT5WEBENGINE_DEPENDENCIES += lcms2
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBEVENT),y)
> +QT5WEBENGINE_DEPENDENCIES += libevent
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBXML2),y)
> +QT5WEBENGINE_DEPENDENCIES += libxml2
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBXSLT),y)
> +QT5WEBENGINE_DEPENDENCIES += libxslt
> +endif
> +
> +ifeq ($(BR2_PACKAGE_PROTOBUF),y)
> +QT5WEBENGINE_DEPENDENCIES += protobuf
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SNAPPY),y)
> +QT5WEBENGINE_DEPENDENCIES += snappy
> +endif

I am not 100% sure but I believe those dependencies do have options,
much like the -webengine-ffmpeg option that PATCH 1/3 is using. If you
look at ./src/core/configure.json in the qt5webengine sources, you can
see:

    "commandline": {
        "options": {
            "webengine-alsa": "boolean",
            "webengine-embedded-build": "boolean",
            "webengine-full-debug-info": "boolean",
            "webengine-icu": { "type": "enum", "name": "webengine-system-icu", "values": { "system": "yes", "qt": "no" } },
            "webengine-ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
            "webengine-opus": { "type": "enum", "name": "webengine-system-opus", "values": { "system": "yes", "qt": "no" } },
            "webengine-webp": { "type": "enum", "name": "webengine-system-libwebp", "values": { "system": "yes", "qt": "no" } },
            "webengine-pepper-plugins": "boolean",
            "webengine-printing-and-pdf": "boolean",
            "webengine-proprietary-codecs": "boolean",
            "webengine-pulseaudio": "boolean",
            "webengine-spellchecker": "boolean",
            "webengine-native-spellchecker": "boolean",
            "webengine-extensions": "boolean",
            "webengine-webrtc": "boolean",
            "webengine-geolocation": "boolean",
            "webengine-webchannel": "boolean",
            "webengine-kerberos": "boolean",
            "alsa": { "type": "boolean", "name": "webengine-alsa" },
            "pulseaudio": { "type": "boolean", "name": "webengine-pulseaudio" },
            "ffmpeg": { "type": "enum", "name": "webengine-system-ffmpeg", "values": { "system": "yes", "qt": "no" } },
            "opus": { "type": "enum", "name": "webengine-system-opus", "values": { "system": "yes", "qt": "no" } },
            "webp": { "type": "enum", "name": "webengine-system-libwebp", "values": { "system": "yes", "qt": "no" } },
            "pepper-plugins": { "type": "boolean", "name": "webengine-pepper-plugins" },
            "printing-and-pdf": { "type": "boolean", "name": "webengine-printing-and-pdf" },
            "proprietary-codecs": { "type": "boolean", "name": "webengine-proprietary-codecs" },
            "spellchecker": { "type": "boolean", "name": "webengine-spellchecker" },
            "extensions": { "type": "boolean", "name": "webengine-extensions" },
            "webrtc": { "type": "boolean", "name": "webengine-webrtc" }
        }
    },

So it seems like if we have a -webengine-ffmpeg option, then we should
also have many other options to enable (and perhaps disable ?) other
optional features.

However, I'm not sure to understand the difference between the
"webengine-<something>" option and the corresponding "<something>"
option.

Also, it seems like some options such as webengine-ffmpeg or
webengine-icu can take multiple values: they are enums and not
booleans. should we use -webengine-ffmpeg=system for example ? Ditto
for the other dependencies;

For the record, the qt5webengine source code bundles chromium in
./src/3rdparty/, which itself bundles a bunch of things including
ffmpeg in ./src/3rdparty/chromium/third_party/ffmpeg/ (do you like when
a 3rdparty folder includes another third_party folder ?).

Obviously, in the context of Buildroot, we'd prefer to use as few
bundled libraries as possible, and use as much as possible system
libraries.

How is the configure.json above being parsed and used ?

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2020-09-17 18:51 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-16 21:11 [Buildroot] [PATCH 0/3 v4] package/qt5/qt5webengine: fix options and dependencies (branch yem/qt5webengine-options) Yann E. MORIN
2020-09-16 21:11 ` [Buildroot] [PATCH 1/3 v4] package/qt5/qt5webengine: fix ffmpeg/codec/alsa option handling for latest Yann E. MORIN
2020-09-17 12:55   ` Thomas Petazzoni
2020-09-17 15:39     ` Yann E. MORIN
2020-09-17 17:15       ` Peter Seiderer
2020-09-17 19:23         ` Nathan Ford
2020-09-17 21:08           ` Yann E. MORIN
2020-09-16 21:11 ` [Buildroot] [PATCH 2/3 v4] package/qt5/qt5webengine: ffmpeg supports needs webp mux Yann E. MORIN
2020-09-16 21:11 ` [Buildroot] [PATCH 3/3 v4] package/qt5/qt5webengine: fix build dependencies for autodetected packages Yann E. MORIN
2020-09-17 18:51   ` Thomas Petazzoni [this message]
2020-09-17 19:22     ` Nathan Ford
2020-09-17 20:07       ` Thomas Petazzoni
     [not found]     ` <20200918223027.74a2ea7c@gmx.net>
2020-09-18 20:33       ` Peter Seiderer
2021-01-11 22:24 ` [Buildroot] [PATCH 0/3 v4] package/qt5/qt5webengine: fix options and dependencies (branch yem/qt5webengine-options) Arnout Vandecappelle

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=20200917205147.79d63fc9@windsurf.hq.k.grp \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.