Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH RFC 1/1] package/wpewebkit: use ninja for faster builds
@ 2022-01-11 14:55 Adrian Perez de Castro
  2022-01-11 17:09 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Perez de Castro @ 2022-01-11 14:55 UTC (permalink / raw)
  To: buildroot; +Cc: Adrian Perez de Castro

Instruct CMake to use the Ninja generator, and override build/install
commands to use Ninja instead, which results in faster builds. The
host-ninja package is required to build some of the dependencies used
by wpewebkit (e.g. libepoxy) so in practice this is not introducing
a new host dependency that would slow down the build.

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
---
 package/wpewebkit/wpewebkit.mk | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index 64c179534f..2cbed60cb3 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -14,11 +14,12 @@ WPEWEBKIT_LICENSE_FILES = \
 	Source/WebCore/LICENSE-LGPL-2.1
 WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
 WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
-WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
+WPEWEBKIT_DEPENDENCIES = host-gperf host-ninja host-python3 host-ruby \
 	harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
 	libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
 
 WPEWEBKIT_CONF_OPTS = \
+	-GNinja \
 	-DPORT=WPE \
 	-DENABLE_ACCESSIBILITY=OFF \
 	-DENABLE_API_TESTS=OFF \
@@ -101,4 +102,24 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
 WPEWEBKIT_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
 endif
 
+define WPEWEBKIT_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) \
+		$(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR) -- $(NINJA_OPTS) $(WPEWEBKIT_NINJA_OPTS)
+endef
+
+define WPEWEBKIT_INSTALL_CMDS
+	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) \
+		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
+endef
+
+define WPEWEBKIT_INSTALL_STAGING_CMDS
+	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) DESTDIR=$(STAGING_DIR) \
+		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
+endef
+
+define WPEWEBKIT_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(WPEWEBKIT_MAKE_ENV) DESTDIR=$(TARGET_DIR) \
+		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
+endef
+
 $(eval $(cmake-package))
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH RFC 1/1] package/wpewebkit: use ninja for faster builds
  2022-01-11 14:55 [Buildroot] [PATCH RFC 1/1] package/wpewebkit: use ninja for faster builds Adrian Perez de Castro
@ 2022-01-11 17:09 ` Yann E. MORIN
  2022-01-12 13:29   ` Adrian Perez de Castro
  0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2022-01-11 17:09 UTC (permalink / raw)
  To: Adrian Perez de Castro; +Cc: buildroot

Adrian, All,

On 2022-01-11 16:55 +0200, Adrian Perez de Castro spake thusly:
> Instruct CMake to use the Ninja generator, and override build/install
> commands to use Ninja instead, which results in faster builds. The
> host-ninja package is required to build some of the dependencies used
> by wpewebkit (e.g. libepoxy) so in practice this is not introducing
> a new host dependency that would slow down the build.

As discussed on IRC, we concluded that a better option is to make the
cmake-package infrastructure in Buildroot ninja-aware, and that you were
going to have a look at it. Thanks! :-)

So, I've marked this patch as rejected in patchwork.

Regards,
Yann E. MORIN.

> Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
> ---
>  package/wpewebkit/wpewebkit.mk | 23 ++++++++++++++++++++++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
> 
> diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
> index 64c179534f..2cbed60cb3 100644
> --- a/package/wpewebkit/wpewebkit.mk
> +++ b/package/wpewebkit/wpewebkit.mk
> @@ -14,11 +14,12 @@ WPEWEBKIT_LICENSE_FILES = \
>  	Source/WebCore/LICENSE-LGPL-2.1
>  WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
>  WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
> -WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
> +WPEWEBKIT_DEPENDENCIES = host-gperf host-ninja host-python3 host-ruby \
>  	harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
>  	libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
>  
>  WPEWEBKIT_CONF_OPTS = \
> +	-GNinja \
>  	-DPORT=WPE \
>  	-DENABLE_ACCESSIBILITY=OFF \
>  	-DENABLE_API_TESTS=OFF \
> @@ -101,4 +102,24 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
>  WPEWEBKIT_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
>  endif
>  
> +define WPEWEBKIT_BUILD_CMDS
> +	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) \
> +		$(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR) -- $(NINJA_OPTS) $(WPEWEBKIT_NINJA_OPTS)
> +endef
> +
> +define WPEWEBKIT_INSTALL_CMDS
> +	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) \
> +		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
> +endef
> +
> +define WPEWEBKIT_INSTALL_STAGING_CMDS
> +	$(TARGET_MAKE_ENV) $(WPEWEBKIT_NINJA_ENV) DESTDIR=$(STAGING_DIR) \
> +		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
> +endef
> +
> +define WPEWEBKIT_INSTALL_TARGET_CMDS
> +	$(TARGET_MAKE_ENV) $(WPEWEBKIT_MAKE_ENV) DESTDIR=$(TARGET_DIR) \
> +		$(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
> +endef
> +
>  $(eval $(cmake-package))
> -- 
> 2.34.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH RFC 1/1] package/wpewebkit: use ninja for faster builds
  2022-01-11 17:09 ` Yann E. MORIN
@ 2022-01-12 13:29   ` Adrian Perez de Castro
  0 siblings, 0 replies; 3+ messages in thread
From: Adrian Perez de Castro @ 2022-01-12 13:29 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: buildroot


[-- Attachment #1.1: Type: text/plain, Size: 1040 bytes --]

Hi Yann, all,

On Tue, 11 Jan 2022 18:09:18 +0100 "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> Adrian, All,
> 
> On 2022-01-11 16:55 +0200, Adrian Perez de Castro spake thusly:
> > Instruct CMake to use the Ninja generator, and override build/install
> > commands to use Ninja instead, which results in faster builds. The
> > host-ninja package is required to build some of the dependencies used
> > by wpewebkit (e.g. libepoxy) so in practice this is not introducing
> > a new host dependency that would slow down the build.
> 
> As discussed on IRC, we concluded that a better option is to make the
> cmake-package infrastructure in Buildroot ninja-aware, and that you were
> going to have a look at it. Thanks! :-)

Here goes: https://patchwork.ozlabs.org/project/buildroot/list/?series=280723

> So, I've marked this patch as rejected in patchwork.

Good, as said on IRC, I also agree it worth it to take the long route and
try to get all CMake packages (or most, if all is not possible) working
with Ninja :)

Cheers,
—Adrián

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-12 13:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-11 14:55 [Buildroot] [PATCH RFC 1/1] package/wpewebkit: use ninja for faster builds Adrian Perez de Castro
2022-01-11 17:09 ` Yann E. MORIN
2022-01-12 13:29   ` Adrian Perez de Castro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox