* [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator
@ 2023-02-24 11:15 Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-24 11:15 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
E.g. Commit
16e5c92ff5fd2b44a1126bd7d7538c68ce838213, and
78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
can now be replaced by: WEBKITGTK_CMAKE_NINJA = YES
Packages that are selecting Ninja, should also use the NINJA_{ENV,OPTS} variables iso the MAKE variables.
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/pkg-cmake.mk | 41 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 39 insertions(+), 2 deletions(-)
diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
index 8c375779cb..4ce3e6bada 100644
--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -65,6 +65,13 @@ else
$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
endif
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+$(2)_DEPENDENCIES += host-ninja
+$(2)_GENERATOR = "Ninja"
+else
+$(2)_GENERATOR = "Unix Makefiles"
+endif
+
#
# Configure step. Only define it if not already defined by the package
# .mk file. And take care of the differences between host and target
@@ -88,7 +95,7 @@ define $(2)_CONFIGURE_CMDS
rm -f CMakeCache.txt && \
PATH=$$(BR_PATH) \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
-DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_INSTALL_RUNSTATEDIR="/run" \
@@ -119,7 +126,7 @@ define $(2)_CONFIGURE_CMDS
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
@@ -165,45 +172,75 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
#
ifndef $(2)_BUILD_CMDS
ifeq ($(4),target)
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+define $(2)_BUILD_CMDS
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
+endef
+else
define $(2)_BUILD_CMDS
$$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
endef
+endif
+else
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+define $(2)_BUILD_CMDS
+ $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
+endef
else
define $(2)_BUILD_CMDS
$$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
endef
endif
endif
+endif
#
# Host installation step. Only define it if not already defined by the
# package .mk file.
#
ifndef $(2)_INSTALL_CMDS
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+define $(2)_INSTALL_CMDS
+ $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
+endef
+else
define $(2)_INSTALL_CMDS
$$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
endef
endif
+endif
#
# Staging installation step. Only define it if not already defined by
# the package .mk file.
#
ifndef $(2)_INSTALL_STAGING_CMDS
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+define $(2)_INSTALL_STAGING_CMDS
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(STAGING_DIR) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR install
+endef
+else
define $(2)_INSTALL_STAGING_CMDS
$$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
endef
endif
+endif
#
# Target installation step. Only define it if not already defined by
# the package .mk file.
#
ifndef $(2)_INSTALL_TARGET_CMDS
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+define $(2)_INSTALL_TARGET_CMDS
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(TARGET_DIR) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install
+endef
+else
define $(2)_INSTALL_TARGET_CMDS
$$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
endef
endif
+endif
# Call the generic package infrastructure to generate the necessary
# make targets
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v1 2/3] package/webkitgtk: use the CMAKE_NINJA flag
2023-02-24 11:15 [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
@ 2023-02-24 11:15 ` Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 3/3] package/wpewebkit: " Thomas Devoogdt
2023-02-24 17:53 ` [Buildroot] [PATCH v1 " John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-24 11:15 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
Replaces:
commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:05 2023 +0100
package/webkitgtk: Build with ninja
Webkitgtk needs cmake >= 3.20 when building with the make backend since
webkitgtk 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/webkitgtk/webkitgtk.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk
index 3263f7fea0..b43f97f0ca 100644
--- a/package/webkitgtk/webkitgtk.mk
+++ b/package/webkitgtk/webkitgtk.mk
@@ -13,6 +13,7 @@ WEBKITGTK_LICENSE_FILES = \
Source/WebCore/LICENSE-APPLE \
Source/WebCore/LICENSE-LGPL-2.1
WEBKITGTK_CPE_ID_VENDOR = webkitgtk
+WEBKITGTK_CMAKE_NINJA = YES
WEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \
enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \
libtasn1 libxml2 libxslt openjpeg sqlite webp woff2
@@ -139,23 +140,4 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
endif
-# webkitgtk needs cmake >= 3.20 when not building with ninja, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WEBKITGTK_CONF_OPTS += -GNinja
-WEBKITGTK_DEPENDENCIES += host-ninja
-
-define WEBKITGTK_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v1 3/3] package/wpewebkit: use the CMAKE_NINJA flag
2023-02-24 11:15 [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
@ 2023-02-24 11:15 ` Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-24 17:53 ` [Buildroot] [PATCH v1 " John Keeping
2 siblings, 1 reply; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-24 11:15 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
Replaces:
commit 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:06 2023 +0100
package/wpewebkit: Build with ninja
Wpewebkit needs cmake >= 3.20 when building with the make backend since
wpewebkit 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/wpewebkit/wpewebkit.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index 48e5c2f8cd..c1b5dee121 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -14,6 +14,7 @@ WPEWEBKIT_LICENSE_FILES = \
Source/WebCore/LICENSE-LGPL-2.1
WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
+WPEWEBKIT_CMAKE_NINJA = YES
WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
@@ -103,23 +104,4 @@ 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
-# wpewebkit needs cmake >= 3.20 when building with the make backend, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WPEWEBKIT_CONF_OPTS += -GNinja
-WPEWEBKIT_DEPENDENCIES += host-ninja
-
-define WPEWEBKIT_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-24 11:15 [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 3/3] package/wpewebkit: " Thomas Devoogdt
@ 2023-02-24 17:53 ` John Keeping
2023-02-24 18:12 ` Thomas Devoogdt
2 siblings, 1 reply; 19+ messages in thread
From: John Keeping @ 2023-02-24 17:53 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt, buildroot
On Fri, Feb 24, 2023 at 12:15:07PM +0100, Thomas Devoogdt wrote:
> E.g. Commit
> 16e5c92ff5fd2b44a1126bd7d7538c68ce838213, and
> 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
> can now be replaced by: WEBKITGTK_CMAKE_NINJA = YES
>
> Packages that are selecting Ninja, should also use the NINJA_{ENV,OPTS} variables iso the MAKE variables.
The current webkitgtk build commands use `cmake --build` and `cmake
--install`, wouldn't it be better to use those here?
I wonder if it makes more sense to replace anything generator-specific
(like $(PKG)_MAKE_OPTS or $(PKG)_NINJA_OPTS) with general
$(PKG)_CMAKE_BUILD_OPTS and $(PKG)_CMAKE_INSTALL_OPTS so that packages
become independent of the generator.
If those options are at the end of the command, then packages still have
the option (in the build phase) to pass built-tool specific options by
including `--` in the value.
> Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
> ---
> package/pkg-cmake.mk | 41 +++++++++++++++++++++++++++++++++++++++--
No change in docs/? ;-)
> 1 file changed, 39 insertions(+), 2 deletions(-)
>
> diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
> index 8c375779cb..4ce3e6bada 100644
> --- a/package/pkg-cmake.mk
> +++ b/package/pkg-cmake.mk
> @@ -65,6 +65,13 @@ else
> $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
> endif
>
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +$(2)_DEPENDENCIES += host-ninja
> +$(2)_GENERATOR = "Ninja"
> +else
> +$(2)_GENERATOR = "Unix Makefiles"
> +endif
> +
> #
> # Configure step. Only define it if not already defined by the package
> # .mk file. And take care of the differences between host and target
> @@ -88,7 +95,7 @@ define $(2)_CONFIGURE_CMDS
> rm -f CMakeCache.txt && \
> PATH=$$(BR_PATH) \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
> -DCMAKE_INSTALL_PREFIX="/usr" \
> -DCMAKE_INSTALL_RUNSTATEDIR="/run" \
> @@ -119,7 +126,7 @@ define $(2)_CONFIGURE_CMDS
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> -DCMAKE_INSTALL_SO_NO_EXE=0 \
> -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
> -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
> @@ -165,45 +172,75 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
> #
> ifndef $(2)_BUILD_CMDS
> ifeq ($(4),target)
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +define $(2)_BUILD_CMDS
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
> +endef
> +else
> define $(2)_BUILD_CMDS
> $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> endef
> +endif
> +else
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +define $(2)_BUILD_CMDS
> + $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
> +endef
> else
> define $(2)_BUILD_CMDS
> $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> endef
> endif
> endif
> +endif
>
> #
> # Host installation step. Only define it if not already defined by the
> # package .mk file.
> #
> ifndef $(2)_INSTALL_CMDS
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +define $(2)_INSTALL_CMDS
> + $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
> +endef
> +else
> define $(2)_INSTALL_CMDS
> $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
> endef
> endif
> +endif
>
> #
> # Staging installation step. Only define it if not already defined by
> # the package .mk file.
> #
> ifndef $(2)_INSTALL_STAGING_CMDS
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +define $(2)_INSTALL_STAGING_CMDS
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(STAGING_DIR) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR install
> +endef
> +else
> define $(2)_INSTALL_STAGING_CMDS
> $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
> endef
> endif
> +endif
>
> #
> # Target installation step. Only define it if not already defined by
> # the package .mk file.
> #
> ifndef $(2)_INSTALL_TARGET_CMDS
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +define $(2)_INSTALL_TARGET_CMDS
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(TARGET_DIR) $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install
> +endef
> +else
> define $(2)_INSTALL_TARGET_CMDS
> $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
> endef
> endif
> +endif
>
> # Call the generic package infrastructure to generate the necessary
> # make targets
> --
> 2.39.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-24 17:53 ` [Buildroot] [PATCH v1 " John Keeping
@ 2023-02-24 18:12 ` Thomas Devoogdt
0 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-24 18:12 UTC (permalink / raw)
To: John Keeping
Cc: Thomas Devoogdt, Samuel Martin, Thomas Devoogdt,
Thomas Petazzoni, buildroot, Adrian Perez de Castro,
Fabrice Fontaine
[-- Attachment #1.1: Type: text/plain, Size: 6274 bytes --]
Hi,
I don't disagree to have a more generic keyword to add build options. I
just took the meson example. Before I rewrite further, I would like to have
also feedback from others.
About webkit, yes it uses --build very recently. If I can fit the existing
MAKE_OPTS with that --build flag, then I will change it.
About the doc, I never came to the point where I had to change that, my
bad. But would prefer to first get this in to the code base. Documentation
can follow if everything stabilizes.
Kr,
Thomas
Op vr 24 feb. 2023 18:53 schreef John Keeping <john@metanate.com>:
> On Fri, Feb 24, 2023 at 12:15:07PM +0100, Thomas Devoogdt wrote:
> > E.g. Commit
> > 16e5c92ff5fd2b44a1126bd7d7538c68ce838213, and
> > 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
> > can now be replaced by: WEBKITGTK_CMAKE_NINJA = YES
> >
> > Packages that are selecting Ninja, should also use the NINJA_{ENV,OPTS}
> variables iso the MAKE variables.
>
> The current webkitgtk build commands use `cmake --build` and `cmake
> --install`, wouldn't it be better to use those here?
>
> I wonder if it makes more sense to replace anything generator-specific
> (like $(PKG)_MAKE_OPTS or $(PKG)_NINJA_OPTS) with general
> $(PKG)_CMAKE_BUILD_OPTS and $(PKG)_CMAKE_INSTALL_OPTS so that packages
> become independent of the generator.
>
> If those options are at the end of the command, then packages still have
> the option (in the build phase) to pass built-tool specific options by
> including `--` in the value.
>
> > Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
> > ---
> > package/pkg-cmake.mk | 41 +++++++++++++++++++++++++++++++++++++++--
>
> No change in docs/? ;-)
>
> > 1 file changed, 39 insertions(+), 2 deletions(-)
> >
> > diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
> > index 8c375779cb..4ce3e6bada 100644
> > --- a/package/pkg-cmake.mk
> > +++ b/package/pkg-cmake.mk
> > @@ -65,6 +65,13 @@ else
> > $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
> > endif
> >
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +$(2)_DEPENDENCIES += host-ninja
> > +$(2)_GENERATOR = "Ninja"
> > +else
> > +$(2)_GENERATOR = "Unix Makefiles"
> > +endif
> > +
> > #
> > # Configure step. Only define it if not already defined by the package
> > # .mk file. And take care of the differences between host and target
> > @@ -88,7 +95,7 @@ define $(2)_CONFIGURE_CMDS
> > rm -f CMakeCache.txt && \
> > PATH=$$(BR_PATH) \
> > $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> > - -G"Unix Makefiles" \
> > + -G$$($$(PKG)_GENERATOR) \
> >
> -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
> > -DCMAKE_INSTALL_PREFIX="/usr" \
> > -DCMAKE_INSTALL_RUNSTATEDIR="/run" \
> > @@ -119,7 +126,7 @@ define $(2)_CONFIGURE_CMDS
> > PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> > PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> > $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> > - -G"Unix Makefiles" \
> > + -G$$($$(PKG)_GENERATOR) \
> > -DCMAKE_INSTALL_SO_NO_EXE=0 \
> > -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
> > -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
> > @@ -165,45 +172,75 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
> > #
> > ifndef $(2)_BUILD_CMDS
> > ifeq ($(4),target)
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +define $(2)_BUILD_CMDS
> > + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS)
> $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
> > +endef
> > +else
> > define $(2)_BUILD_CMDS
> > $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> > endef
> > +endif
> > +else
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +define $(2)_BUILD_CMDS
> > + $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS)
> $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR)
> > +endef
> > else
> > define $(2)_BUILD_CMDS
> > $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> > endef
> > endif
> > endif
> > +endif
> >
> > #
> > # Host installation step. Only define it if not already defined by the
> > # package .mk file.
> > #
> > ifndef $(2)_INSTALL_CMDS
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +define $(2)_INSTALL_CMDS
> > + $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) $$(NINJA) $$(NINJA_OPTS)
> -C $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
> > +endef
> > +else
> > define $(2)_INSTALL_CMDS
> > $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
> > endef
> > endif
> > +endif
> >
> > #
> > # Staging installation step. Only define it if not already defined by
> > # the package .mk file.
> > #
> > ifndef $(2)_INSTALL_STAGING_CMDS
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +define $(2)_INSTALL_STAGING_CMDS
> > + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(STAGING_DIR)
> $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR install
> > +endef
> > +else
> > define $(2)_INSTALL_STAGING_CMDS
> > $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C
> $$($$(PKG)_BUILDDIR)
> > endef
> > endif
> > +endif
> >
> > #
> > # Target installation step. Only define it if not already defined by
> > # the package .mk file.
> > #
> > ifndef $(2)_INSTALL_TARGET_CMDS
> > +ifeq ($$($(3)_CMAKE_NINJA),YES)
> > +define $(2)_INSTALL_TARGET_CMDS
> > + $$(TARGET_MAKE_ENV) $$($$(PKG)_NINJA_ENV) DESTDIR=$$(TARGET_DIR)
> $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install
> > +endef
> > +else
> > define $(2)_INSTALL_TARGET_CMDS
> > $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE)
> $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C
> $$($$(PKG)_BUILDDIR)
> > endef
> > endif
> > +endif
> >
> > # Call the generic package infrastructure to generate the necessary
> > # make targets
> > --
> > 2.39.2
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
>
>
[-- Attachment #1.2: Type: text/html, Size: 8633 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] 19+ messages in thread
* [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-24 11:15 ` [Buildroot] [PATCH v1 3/3] package/wpewebkit: " Thomas Devoogdt
@ 2023-02-27 10:39 ` Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-27 10:39 UTC (permalink / raw)
To: buildroot
Cc: Samuel Martin, Thomas Devoogdt, Thomas Petazzoni,
Adrian Perez de Castro, Fabrice Fontaine
E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
WEBKITGTK_CMAKE_NINJA = YES
Packages that are selecting Ninja (or overtime another generator),
should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
$ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
The _MAKE_{ENV,OPTS} are translated to _BUILD_{ENV,OPTS}:
$ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
> package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
$ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
> package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
$ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
> package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
v2: made generator use more generic, other generators can now easily be added if required
---
package/musepack/musepack.mk | 2 +-
package/netopeer2/netopeer2.mk | 2 +-
package/pkg-cmake.mk | 26 ++++++++++++++------------
package/racehound/racehound.mk | 2 +-
4 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
index fc66c684a5..d4dd08df36 100644
--- a/package/musepack/musepack.mk
+++ b/package/musepack/musepack.mk
@@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
MUSEPACK_INSTALL_STAGING = YES
-MUSEPACK_MAKE = $(MAKE1)
+MUSEPACK_BUILD_OPTS = -j1
MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
diff --git a/package/netopeer2/netopeer2.mk b/package/netopeer2/netopeer2.mk
index 47fcd31acd..2ebb23eccd 100644
--- a/package/netopeer2/netopeer2.mk
+++ b/package/netopeer2/netopeer2.mk
@@ -24,7 +24,7 @@ NETOPEER2_CONF_OPTS = \
# affected mutualy.
NETOPEER2_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_netopeer2
-NETOPEER2_MAKE_ENV = \
+NETOPEER2_BUILD_ENV = \
SYSREPOCTL_EXECUTABLE=$(HOST_DIR)/bin/sysrepoctl \
SYSREPO_SHM_PREFIX=$(NETOPEER2_SYSREPO_SHM_PREFIX)
diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
index 8c375779cb..205a93db5f 100644
--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -51,11 +51,6 @@ endif
define inner-cmake-package
-$(2)_MAKE ?= $$(MAKE)
-$(2)_INSTALL_OPTS ?= install
-$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
-$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
-
$(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
@@ -65,6 +60,13 @@ else
$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
endif
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+$(2)_DEPENDENCIES += host-ninja
+$(2)_GENERATOR = "Ninja"
+else
+$(2)_GENERATOR = "Unix Makefiles"
+endif
+
#
# Configure step. Only define it if not already defined by the package
# .mk file. And take care of the differences between host and target
@@ -88,7 +90,7 @@ define $(2)_CONFIGURE_CMDS
rm -f CMakeCache.txt && \
PATH=$$(BR_PATH) \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
-DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_INSTALL_RUNSTATEDIR="/run" \
@@ -119,7 +121,7 @@ define $(2)_CONFIGURE_CMDS
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
@@ -166,11 +168,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
ifndef $(2)_BUILD_CMDS
ifeq ($(4),target)
define $(2)_BUILD_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$(BUILD_OPTS) $$($$(PKG)_BUILD_OPTS)
endef
else
define $(2)_BUILD_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$(BUILD_OPTS) $$($$(PKG)_BUILD_OPTS)
endef
endif
endif
@@ -181,7 +183,7 @@ endif
#
ifndef $(2)_INSTALL_CMDS
define $(2)_INSTALL_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
endef
endif
@@ -191,7 +193,7 @@ endif
#
ifndef $(2)_INSTALL_STAGING_CMDS
define $(2)_INSTALL_STAGING_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
endef
endif
@@ -201,7 +203,7 @@ endif
#
ifndef $(2)_INSTALL_TARGET_CMDS
define $(2)_INSTALL_TARGET_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
endef
endif
diff --git a/package/racehound/racehound.mk b/package/racehound/racehound.mk
index 6499e166d8..f63bb233f6 100644
--- a/package/racehound/racehound.mk
+++ b/package/racehound/racehound.mk
@@ -22,6 +22,6 @@ RACEHOUND_CONF_OPTS += \
-DKBUILD_VERSION_STRING=$(LINUX_VERSION_PROBED)
# cross compile environment for linux kernel module
-RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
+RACEHOUND_BUILD_ENV = $(LINUX_MAKE_FLAGS)
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v2 2/3] package/webkitgtk: use the CMAKE_NINJA flag
2023-02-27 10:39 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
@ 2023-02-27 10:39 ` Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 3/3] package/wpewebkit: " Thomas Devoogdt
2023-02-28 15:33 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-27 10:39 UTC (permalink / raw)
To: buildroot
Cc: Samuel Martin, Thomas Devoogdt, Thomas Petazzoni,
Adrian Perez de Castro, Fabrice Fontaine
Replaces:
commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:05 2023 +0100
package/webkitgtk: Build with ninja
Webkitgtk needs cmake >= 3.20 when building with the make backend since
webkitgtk 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/webkitgtk/webkitgtk.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk
index 3263f7fea0..b43f97f0ca 100644
--- a/package/webkitgtk/webkitgtk.mk
+++ b/package/webkitgtk/webkitgtk.mk
@@ -13,6 +13,7 @@ WEBKITGTK_LICENSE_FILES = \
Source/WebCore/LICENSE-APPLE \
Source/WebCore/LICENSE-LGPL-2.1
WEBKITGTK_CPE_ID_VENDOR = webkitgtk
+WEBKITGTK_CMAKE_NINJA = YES
WEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \
enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \
libtasn1 libxml2 libxslt openjpeg sqlite webp woff2
@@ -139,23 +140,4 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
endif
-# webkitgtk needs cmake >= 3.20 when not building with ninja, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WEBKITGTK_CONF_OPTS += -GNinja
-WEBKITGTK_DEPENDENCIES += host-ninja
-
-define WEBKITGTK_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v2 3/3] package/wpewebkit: use the CMAKE_NINJA flag
2023-02-27 10:39 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
@ 2023-02-27 10:39 ` Thomas Devoogdt
2023-02-28 15:33 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-27 10:39 UTC (permalink / raw)
To: buildroot
Cc: Samuel Martin, Thomas Devoogdt, Thomas Petazzoni,
Adrian Perez de Castro, Fabrice Fontaine
Replaces:
commit 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:06 2023 +0100
package/wpewebkit: Build with ninja
Wpewebkit needs cmake >= 3.20 when building with the make backend since
wpewebkit 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/wpewebkit/wpewebkit.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index 48e5c2f8cd..c1b5dee121 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -14,6 +14,7 @@ WPEWEBKIT_LICENSE_FILES = \
Source/WebCore/LICENSE-LGPL-2.1
WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
+WPEWEBKIT_CMAKE_NINJA = YES
WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
@@ -103,23 +104,4 @@ 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
-# wpewebkit needs cmake >= 3.20 when building with the make backend, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WPEWEBKIT_CONF_OPTS += -GNinja
-WPEWEBKIT_DEPENDENCIES += host-ninja
-
-define WPEWEBKIT_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-27 10:39 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 3/3] package/wpewebkit: " Thomas Devoogdt
@ 2023-02-28 15:33 ` John Keeping
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
2 siblings, 1 reply; 19+ messages in thread
From: John Keeping @ 2023-02-28 15:33 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Samuel Martin, Thomas Devoogdt, Thomas Petazzoni, buildroot,
Adrian Perez de Castro, Fabrice Fontaine
On Mon, Feb 27, 2023 at 11:39:54AM +0100, Thomas Devoogdt wrote:
> E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
> WEBKITGTK_CMAKE_NINJA = YES
>
> Packages that are selecting Ninja (or overtime another generator),
> should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
>
> No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
>
> $ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
>
> The _MAKE_{ENV,OPTS} are translated to _BUILD_{ENV,OPTS}:
>
> $ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> > package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
>
> $ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
This misses package/gdal/gdal.mk which does '_MAKE_OPTS +='.
> > package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> > package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
>
> Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
>
> $ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
>
> Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
> ---
> v2: made generator use more generic, other generators can now easily be added if required
> ---
> package/musepack/musepack.mk | 2 +-
> package/netopeer2/netopeer2.mk | 2 +-
> package/pkg-cmake.mk | 26 ++++++++++++++------------
> package/racehound/racehound.mk | 2 +-
> 4 files changed, 17 insertions(+), 15 deletions(-)
>
> diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
> index fc66c684a5..d4dd08df36 100644
> --- a/package/musepack/musepack.mk
> +++ b/package/musepack/musepack.mk
> @@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
> MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
> MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
> MUSEPACK_INSTALL_STAGING = YES
> -MUSEPACK_MAKE = $(MAKE1)
> +MUSEPACK_BUILD_OPTS = -j1
> MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
> MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
>
> diff --git a/package/netopeer2/netopeer2.mk b/package/netopeer2/netopeer2.mk
> index 47fcd31acd..2ebb23eccd 100644
> --- a/package/netopeer2/netopeer2.mk
> +++ b/package/netopeer2/netopeer2.mk
> @@ -24,7 +24,7 @@ NETOPEER2_CONF_OPTS = \
> # affected mutualy.
> NETOPEER2_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_netopeer2
>
> -NETOPEER2_MAKE_ENV = \
> +NETOPEER2_BUILD_ENV = \
> SYSREPOCTL_EXECUTABLE=$(HOST_DIR)/bin/sysrepoctl \
> SYSREPO_SHM_PREFIX=$(NETOPEER2_SYSREPO_SHM_PREFIX)
>
> diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
> index 8c375779cb..205a93db5f 100644
> --- a/package/pkg-cmake.mk
> +++ b/package/pkg-cmake.mk
> @@ -51,11 +51,6 @@ endif
>
> define inner-cmake-package
>
> -$(2)_MAKE ?= $$(MAKE)
> -$(2)_INSTALL_OPTS ?= install
> -$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
> -$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
> -
> $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
>
>
> @@ -65,6 +60,13 @@ else
> $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
> endif
>
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +$(2)_DEPENDENCIES += host-ninja
> +$(2)_GENERATOR = "Ninja"
> +else
> +$(2)_GENERATOR = "Unix Makefiles"
> +endif
> +
> #
> # Configure step. Only define it if not already defined by the package
> # .mk file. And take care of the differences between host and target
> @@ -88,7 +90,7 @@ define $(2)_CONFIGURE_CMDS
> rm -f CMakeCache.txt && \
> PATH=$$(BR_PATH) \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
> -DCMAKE_INSTALL_PREFIX="/usr" \
> -DCMAKE_INSTALL_RUNSTATEDIR="/run" \
> @@ -119,7 +121,7 @@ define $(2)_CONFIGURE_CMDS
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> -DCMAKE_INSTALL_SO_NO_EXE=0 \
> -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
> -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
> @@ -166,11 +168,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
> ifndef $(2)_BUILD_CMDS
> ifeq ($(4),target)
> define $(2)_BUILD_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$(BUILD_OPTS) $$($$(PKG)_BUILD_OPTS)
Where is $$(BUILD_OPTS) set? As far as I can see this is not needed.
> endef
> else
> define $(2)_BUILD_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$(BUILD_OPTS) $$($$(PKG)_BUILD_OPTS)
> endef
> endif
> endif
> @@ -181,7 +183,7 @@ endif
> #
> ifndef $(2)_INSTALL_CMDS
> define $(2)_INSTALL_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
> endef
> endif
>
> @@ -191,7 +193,7 @@ endif
> #
> ifndef $(2)_INSTALL_STAGING_CMDS
> define $(2)_INSTALL_STAGING_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
> endef
> endif
>
> @@ -201,7 +203,7 @@ endif
> #
> ifndef $(2)_INSTALL_TARGET_CMDS
> define $(2)_INSTALL_TARGET_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
> endef
> endif
>
> diff --git a/package/racehound/racehound.mk b/package/racehound/racehound.mk
> index 6499e166d8..f63bb233f6 100644
> --- a/package/racehound/racehound.mk
> +++ b/package/racehound/racehound.mk
> @@ -22,6 +22,6 @@ RACEHOUND_CONF_OPTS += \
> -DKBUILD_VERSION_STRING=$(LINUX_VERSION_PROBED)
>
> # cross compile environment for linux kernel module
> -RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
> +RACEHOUND_BUILD_ENV = $(LINUX_MAKE_FLAGS)
>
> $(eval $(cmake-package))
> --
> 2.39.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-28 15:33 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
@ 2023-02-28 15:55 ` Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
` (3 more replies)
0 siblings, 4 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-28 15:55 UTC (permalink / raw)
To: buildroot
Cc: Thomas Devoogdt, Samuel Martin, John Keeping, Thomas Devoogdt,
Thomas Petazzoni, Adrian Perez de Castro, Fabrice Fontaine
E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
WEBKITGTK_CMAKE_NINJA = YES
Packages that are selecting Ninja (or overtime another generator),
should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
$ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
The _MAKE_{ENV,OPTS} are translated to _BUILD_{ENV,OPTS}:
$ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
> package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
$ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
> package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
$ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
> package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
v2:
- made generator use more generic, other generators can now easily be added if required
v3:
- add _GENERATOR_PROGRAM
- add _GENERATOR_PARALLEL for make
- dropped BUILD_OPTS
- fix gdal.mk
---
package/gdal/gdal.mk | 2 +-
package/musepack/musepack.mk | 2 +-
package/netopeer2/netopeer2.mk | 2 +-
package/pkg-cmake.mk | 31 +++++++++++++++++++------------
package/racehound/racehound.mk | 2 +-
5 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/package/gdal/gdal.mk b/package/gdal/gdal.mk
index a3b11c53af..d8ce623283 100644
--- a/package/gdal/gdal.mk
+++ b/package/gdal/gdal.mk
@@ -19,7 +19,7 @@ GDAL_SUPPORTS_IN_SOURCE_BUILD = NO
# autotools in gdal. We need to force 'make' to use the Makefile,
# which is generated by CMake. GNUmakefile and autoconf are dropped in
# 3.6 so this can be dropped in future version.
-GDAL_MAKE_OPTS += -f Makefile
+GDAL_BUILD_OPTS += -f Makefile
# gdal at its core only needs host-pkgconf, libgeotiff, proj and tiff
# but since by default mrf driver support is enabled, it also needs
diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
index fc66c684a5..d4dd08df36 100644
--- a/package/musepack/musepack.mk
+++ b/package/musepack/musepack.mk
@@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
MUSEPACK_INSTALL_STAGING = YES
-MUSEPACK_MAKE = $(MAKE1)
+MUSEPACK_BUILD_OPTS = -j1
MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
diff --git a/package/netopeer2/netopeer2.mk b/package/netopeer2/netopeer2.mk
index 47fcd31acd..2ebb23eccd 100644
--- a/package/netopeer2/netopeer2.mk
+++ b/package/netopeer2/netopeer2.mk
@@ -24,7 +24,7 @@ NETOPEER2_CONF_OPTS = \
# affected mutualy.
NETOPEER2_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_netopeer2
-NETOPEER2_MAKE_ENV = \
+NETOPEER2_BUILD_ENV = \
SYSREPOCTL_EXECUTABLE=$(HOST_DIR)/bin/sysrepoctl \
SYSREPO_SHM_PREFIX=$(NETOPEER2_SYSREPO_SHM_PREFIX)
diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
index 8c375779cb..5f5988beb8 100644
--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -51,11 +51,6 @@ endif
define inner-cmake-package
-$(2)_MAKE ?= $$(MAKE)
-$(2)_INSTALL_OPTS ?= install
-$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
-$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
-
$(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
@@ -65,6 +60,16 @@ else
$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
endif
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+$(2)_DEPENDENCIES += host-ninja
+$(2)_GENERATOR = "Ninja"
+$(2)_GENERATOR_PROGRAM = $(HOST_DIR)/bin/ninja
+else
+$(2)_GENERATOR = "Unix Makefiles"
+$(2)_GENERATOR_PROGRAM = $(firstword $(BR2_MAKE))
+$(2)_GENERATOR_PARALLEL = -j$(PARALLEL_JOBS)
+endif
+
#
# Configure step. Only define it if not already defined by the package
# .mk file. And take care of the differences between host and target
@@ -88,7 +93,8 @@ define $(2)_CONFIGURE_CMDS
rm -f CMakeCache.txt && \
PATH=$$(BR_PATH) \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
-DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_INSTALL_RUNSTATEDIR="/run" \
@@ -119,7 +125,8 @@ define $(2)_CONFIGURE_CMDS
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
@@ -166,11 +173,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
ifndef $(2)_BUILD_CMDS
ifeq ($(4),target)
define $(2)_BUILD_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
endef
else
define $(2)_BUILD_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
endef
endif
endif
@@ -181,7 +188,7 @@ endif
#
ifndef $(2)_INSTALL_CMDS
define $(2)_INSTALL_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
endef
endif
@@ -191,7 +198,7 @@ endif
#
ifndef $(2)_INSTALL_STAGING_CMDS
define $(2)_INSTALL_STAGING_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
endef
endif
@@ -201,7 +208,7 @@ endif
#
ifndef $(2)_INSTALL_TARGET_CMDS
define $(2)_INSTALL_TARGET_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
endef
endif
diff --git a/package/racehound/racehound.mk b/package/racehound/racehound.mk
index 6499e166d8..f63bb233f6 100644
--- a/package/racehound/racehound.mk
+++ b/package/racehound/racehound.mk
@@ -22,6 +22,6 @@ RACEHOUND_CONF_OPTS += \
-DKBUILD_VERSION_STRING=$(LINUX_VERSION_PROBED)
# cross compile environment for linux kernel module
-RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
+RACEHOUND_BUILD_ENV = $(LINUX_MAKE_FLAGS)
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v3 2/3] package/webkitgtk: use the CMAKE_NINJA flag
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
@ 2023-02-28 15:55 ` Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 3/3] package/wpewebkit: " Thomas Devoogdt
` (2 subsequent siblings)
3 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-28 15:55 UTC (permalink / raw)
To: buildroot
Cc: Thomas Devoogdt, Samuel Martin, John Keeping, Thomas Devoogdt,
Thomas Petazzoni, Adrian Perez de Castro, Fabrice Fontaine
Replaces:
commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:05 2023 +0100
package/webkitgtk: Build with ninja
Webkitgtk needs cmake >= 3.20 when building with the make backend since
webkitgtk 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/webkitgtk/webkitgtk.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk
index 3263f7fea0..b43f97f0ca 100644
--- a/package/webkitgtk/webkitgtk.mk
+++ b/package/webkitgtk/webkitgtk.mk
@@ -13,6 +13,7 @@ WEBKITGTK_LICENSE_FILES = \
Source/WebCore/LICENSE-APPLE \
Source/WebCore/LICENSE-LGPL-2.1
WEBKITGTK_CPE_ID_VENDOR = webkitgtk
+WEBKITGTK_CMAKE_NINJA = YES
WEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \
enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \
libtasn1 libxml2 libxslt openjpeg sqlite webp woff2
@@ -139,23 +140,4 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
endif
-# webkitgtk needs cmake >= 3.20 when not building with ninja, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WEBKITGTK_CONF_OPTS += -GNinja
-WEBKITGTK_DEPENDENCIES += host-ninja
-
-define WEBKITGTK_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v3 3/3] package/wpewebkit: use the CMAKE_NINJA flag
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
@ 2023-02-28 15:55 ` Thomas Devoogdt
2023-03-03 12:15 ` [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2023-03-06 11:02 ` Arnout Vandecappelle
3 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-02-28 15:55 UTC (permalink / raw)
To: buildroot
Cc: Thomas Devoogdt, Samuel Martin, John Keeping, Thomas Devoogdt,
Thomas Petazzoni, Adrian Perez de Castro, Fabrice Fontaine
Replaces:
commit 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:06 2023 +0100
package/wpewebkit: Build with ninja
Wpewebkit needs cmake >= 3.20 when building with the make backend since
wpewebkit 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/wpewebkit/wpewebkit.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index 48e5c2f8cd..c1b5dee121 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -14,6 +14,7 @@ WPEWEBKIT_LICENSE_FILES = \
Source/WebCore/LICENSE-LGPL-2.1
WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
+WPEWEBKIT_CMAKE_NINJA = YES
WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
@@ -103,23 +104,4 @@ 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
-# wpewebkit needs cmake >= 3.20 when building with the make backend, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WPEWEBKIT_CONF_OPTS += -GNinja
-WPEWEBKIT_DEPENDENCIES += host-ninja
-
-define WPEWEBKIT_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 3/3] package/wpewebkit: " Thomas Devoogdt
@ 2023-03-03 12:15 ` John Keeping
2023-03-06 11:02 ` Arnout Vandecappelle
3 siblings, 0 replies; 19+ messages in thread
From: John Keeping @ 2023-03-03 12:15 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Samuel Martin, Thomas Devoogdt, Thomas Petazzoni, buildroot,
Adrian Perez de Castro, Fabrice Fontaine
On Tue, Feb 28, 2023 at 04:55:26PM +0100, Thomas Devoogdt wrote:
> E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
> WEBKITGTK_CMAKE_NINJA = YES
>
> Packages that are selecting Ninja (or overtime another generator),
> should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
>
> No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
>
> $ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
>
> The _MAKE_{ENV,OPTS} are translated to _BUILD_{ENV,OPTS}:
>
> $ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> > package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
>
> $ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> > package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
>
> Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
>
> $ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
>
> Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
> ---
> v2:
> - made generator use more generic, other generators can now easily be added if required
> v3:
> - add _GENERATOR_PROGRAM
> - add _GENERATOR_PARALLEL for make
> - dropped BUILD_OPTS
> - fix gdal.mk
> ---
> package/gdal/gdal.mk | 2 +-
> package/musepack/musepack.mk | 2 +-
> package/netopeer2/netopeer2.mk | 2 +-
> package/pkg-cmake.mk | 31 +++++++++++++++++++------------
> package/racehound/racehound.mk | 2 +-
> 5 files changed, 23 insertions(+), 16 deletions(-)
>
> diff --git a/package/gdal/gdal.mk b/package/gdal/gdal.mk
> index a3b11c53af..d8ce623283 100644
> --- a/package/gdal/gdal.mk
> +++ b/package/gdal/gdal.mk
> @@ -19,7 +19,7 @@ GDAL_SUPPORTS_IN_SOURCE_BUILD = NO
> # autotools in gdal. We need to force 'make' to use the Makefile,
> # which is generated by CMake. GNUmakefile and autoconf are dropped in
> # 3.6 so this can be dropped in future version.
> -GDAL_MAKE_OPTS += -f Makefile
> +GDAL_BUILD_OPTS += -f Makefile
Do we need "--" here before the flag?
The documentation says:
cmake --build <dir> [<options>] [-- <build-tool-options>]
implying that this is necessary.
But is the option even needed with `cmake --build`? I wonder if CMake
always uses the right Makefile anyway.
> # gdal at its core only needs host-pkgconf, libgeotiff, proj and tiff
> # but since by default mrf driver support is enabled, it also needs
> diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
> index fc66c684a5..d4dd08df36 100644
> --- a/package/musepack/musepack.mk
> +++ b/package/musepack/musepack.mk
> @@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
> MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
> MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
> MUSEPACK_INSTALL_STAGING = YES
> -MUSEPACK_MAKE = $(MAKE1)
> +MUSEPACK_BUILD_OPTS = -j1
> MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
> MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
>
> diff --git a/package/netopeer2/netopeer2.mk b/package/netopeer2/netopeer2.mk
> index 47fcd31acd..2ebb23eccd 100644
> --- a/package/netopeer2/netopeer2.mk
> +++ b/package/netopeer2/netopeer2.mk
> @@ -24,7 +24,7 @@ NETOPEER2_CONF_OPTS = \
> # affected mutualy.
> NETOPEER2_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_netopeer2
>
> -NETOPEER2_MAKE_ENV = \
> +NETOPEER2_BUILD_ENV = \
> SYSREPOCTL_EXECUTABLE=$(HOST_DIR)/bin/sysrepoctl \
> SYSREPO_SHM_PREFIX=$(NETOPEER2_SYSREPO_SHM_PREFIX)
>
> diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
> index 8c375779cb..5f5988beb8 100644
> --- a/package/pkg-cmake.mk
> +++ b/package/pkg-cmake.mk
> @@ -51,11 +51,6 @@ endif
>
> define inner-cmake-package
>
> -$(2)_MAKE ?= $$(MAKE)
> -$(2)_INSTALL_OPTS ?= install
> -$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
> -$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
> -
> $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
>
>
> @@ -65,6 +60,16 @@ else
> $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
> endif
>
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +$(2)_DEPENDENCIES += host-ninja
> +$(2)_GENERATOR = "Ninja"
> +$(2)_GENERATOR_PROGRAM = $(HOST_DIR)/bin/ninja
> +else
> +$(2)_GENERATOR = "Unix Makefiles"
> +$(2)_GENERATOR_PROGRAM = $(firstword $(BR2_MAKE))
> +$(2)_GENERATOR_PARALLEL = -j$(PARALLEL_JOBS)
Should this be passed to ninja as well? The default may be higher than
the number of parallel jobs configured.
And for make should we use:
$(wordlist 2,$(words $(BR2_MAKE)),$(BR2_MAKE))
? Although that requires passing build options after "--" which breaks
the generic $(PKG)_BUILD_OPTS handling; "-j" is special in that cmake
recognises the option itself.
> +endif
> +
> #
> # Configure step. Only define it if not already defined by the package
> # .mk file. And take care of the differences between host and target
> @@ -88,7 +93,8 @@ define $(2)_CONFIGURE_CMDS
> rm -f CMakeCache.txt && \
> PATH=$$(BR_PATH) \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> + -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
> -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
> -DCMAKE_INSTALL_PREFIX="/usr" \
> -DCMAKE_INSTALL_RUNSTATEDIR="/run" \
> @@ -119,7 +125,8 @@ define $(2)_CONFIGURE_CMDS
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> + -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
> -DCMAKE_INSTALL_SO_NO_EXE=0 \
> -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
> -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
> @@ -166,11 +173,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
> ifndef $(2)_BUILD_CMDS
> ifeq ($(4),target)
> define $(2)_BUILD_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
> endef
> else
> define $(2)_BUILD_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
> endef
> endif
> endif
> @@ -181,7 +188,7 @@ endif
> #
> ifndef $(2)_INSTALL_CMDS
> define $(2)_INSTALL_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
> endef
> endif
>
> @@ -191,7 +198,7 @@ endif
> #
> ifndef $(2)_INSTALL_STAGING_CMDS
> define $(2)_INSTALL_STAGING_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
> endef
> endif
>
> @@ -201,7 +208,7 @@ endif
> #
> ifndef $(2)_INSTALL_TARGET_CMDS
> define $(2)_INSTALL_TARGET_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
> endef
> endif
>
> diff --git a/package/racehound/racehound.mk b/package/racehound/racehound.mk
> index 6499e166d8..f63bb233f6 100644
> --- a/package/racehound/racehound.mk
> +++ b/package/racehound/racehound.mk
> @@ -22,6 +22,6 @@ RACEHOUND_CONF_OPTS += \
> -DKBUILD_VERSION_STRING=$(LINUX_VERSION_PROBED)
>
> # cross compile environment for linux kernel module
> -RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
> +RACEHOUND_BUILD_ENV = $(LINUX_MAKE_FLAGS)
>
> $(eval $(cmake-package))
> --
> 2.39.2
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
` (2 preceding siblings ...)
2023-03-03 12:15 ` [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
@ 2023-03-06 11:02 ` Arnout Vandecappelle
2023-03-07 16:10 ` Thomas Devoogdt
3 siblings, 1 reply; 19+ messages in thread
From: Arnout Vandecappelle @ 2023-03-06 11:02 UTC (permalink / raw)
To: Thomas Devoogdt, buildroot
Cc: Samuel Martin, John Keeping, Thomas Devoogdt, Thomas Petazzoni,
Adrian Perez de Castro, Fabrice Fontaine
Hi Thomas,
On 28/02/2023 16:55, Thomas Devoogdt wrote:
[snip]
> ifndef $(2)_BUILD_CMDS
> ifeq ($(4),target)
> define $(2)_BUILD_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
To avoid breaking existing (external) packages, I would add something like:
$(2)_BUILD_OPTS ?= -- $(2)_MAKE_OPTS
(inside the CMAKE_NINJA condition, only for make)
That way, existing packages would work unchanged (and it would remove the need
to change gdal and racehound in this patch).
Similarly for the environment.
Eventually we'll completely remove those variables, but then there should
still be a warning about their use, like we have for BUILDROOT_DL_DIR in
Makefile.legacy.
Regards,
Arnout
[snip]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator
2023-03-06 11:02 ` Arnout Vandecappelle
@ 2023-03-07 16:10 ` Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 " Thomas Devoogdt
0 siblings, 1 reply; 19+ messages in thread
From: Thomas Devoogdt @ 2023-03-07 16:10 UTC (permalink / raw)
To: Arnout Vandecappelle, John Keeping
Cc: Samuel Martin, Thomas Petazzoni, buildroot,
Adrian Perez de Castro, Fabrice Fontaine
Hi all,
Thx for the review John and Arnout.
I updated the commits on my private git branch:
https://github.com/buildroot/buildroot/compare/master...ThomasDevoogdt:buildroot:thode/cmake-ninja
I will do some tests, and if all is ok, then I will send a new series of emails.
Kr,
Thomas
Op ma 6 mrt 2023 om 12:02 schreef Arnout Vandecappelle <arnout@mind.be>:
>
> Hi Thomas,
>
> On 28/02/2023 16:55, Thomas Devoogdt wrote:
> [snip]
> > ifndef $(2)_BUILD_CMDS
> > ifeq ($(4),target)
> > define $(2)_BUILD_CMDS
> > - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> > + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) $$($$(PKG)_GENERATOR_PARALLEL) $$($$(PKG)_BUILD_OPTS)
>
> To avoid breaking existing (external) packages, I would add something like:
>
> $(2)_BUILD_OPTS ?= -- $(2)_MAKE_OPTS
>
> (inside the CMAKE_NINJA condition, only for make)
>
> That way, existing packages would work unchanged (and it would remove the need
> to change gdal and racehound in this patch).
>
> Similarly for the environment.
>
>
> Eventually we'll completely remove those variables, but then there should
> still be a warning about their use, like we have for BUILDROOT_DL_DIR in
> Makefile.legacy.
>
>
> Regards,
> Arnout
>
>
> [snip]
>
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v4 1/3] pkg-cmake: add option to select the Ninja generator
2023-03-07 16:10 ` Thomas Devoogdt
@ 2023-03-13 6:55 ` Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-03-13 6:55 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
WEBKITGTK_CMAKE_NINJA = YES
Packages that are selecting Ninja (or overtime another generator),
should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
$ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
$ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
The _MAKE_{ENV,OPTS} are copied to _BUILD_{ENV,OPTS}, usage:
$ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
> package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
$ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
> package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
$ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
> package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
v2:
- made generator use more generic, other generators can now easily be added if required
v3:
- add _GENERATOR_PROGRAM
- add _GENERATOR_PARALLEL for make
- dropped BUILD_OPTS
- fix gdal.mk
v4:
- restored _MAKE_ENV/_MAKE_OPTS for the Unix Makefiles case
- always set -j$(PARALLEL_JOBS)
---
package/musepack/musepack.mk | 2 +-
package/pkg-cmake.mk | 35 +++++++++++++++++++++++------------
2 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
index fc66c684a5..d4dd08df36 100644
--- a/package/musepack/musepack.mk
+++ b/package/musepack/musepack.mk
@@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
MUSEPACK_INSTALL_STAGING = YES
-MUSEPACK_MAKE = $(MAKE1)
+MUSEPACK_BUILD_OPTS = -j1
MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
index 8c375779cb..36ab88d3a1 100644
--- a/package/pkg-cmake.mk
+++ b/package/pkg-cmake.mk
@@ -51,11 +51,6 @@ endif
define inner-cmake-package
-$(2)_MAKE ?= $$(MAKE)
-$(2)_INSTALL_OPTS ?= install
-$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
-$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
-
$(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
@@ -65,6 +60,20 @@ else
$(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
endif
+ifeq ($$($(3)_CMAKE_NINJA),YES)
+$(2)_DEPENDENCIES += host-ninja
+$(2)_GENERATOR = "Ninja"
+$(2)_GENERATOR_PROGRAM = $(HOST_DIR)/bin/ninja
+else
+$(2)_GENERATOR = "Unix Makefiles"
+$(2)_GENERATOR_PROGRAM = $(firstword $(BR2_MAKE))
+
+# Generator specific code (make) should be avoided,
+# but for now, copy them to the new variables.
+$(2)_BUILD_ENV ?= $$($(2)_MAKE_ENV)
+$(2)_BUILD_OPTS ?= -- $$($(2)_MAKE_OPTS)
+endif
+
#
# Configure step. Only define it if not already defined by the package
# .mk file. And take care of the differences between host and target
@@ -88,7 +97,8 @@ define $(2)_CONFIGURE_CMDS
rm -f CMakeCache.txt && \
PATH=$$(BR_PATH) \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
-DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DCMAKE_INSTALL_RUNSTATEDIR="/run" \
@@ -119,7 +129,8 @@ define $(2)_CONFIGURE_CMDS
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
$$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
- -G"Unix Makefiles" \
+ -G$$($$(PKG)_GENERATOR) \
+ -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
-DCMAKE_INSTALL_SO_NO_EXE=0 \
-DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
@@ -166,11 +177,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
ifndef $(2)_BUILD_CMDS
ifeq ($(4),target)
define $(2)_BUILD_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
endef
else
define $(2)_BUILD_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
endef
endif
endif
@@ -181,7 +192,7 @@ endif
#
ifndef $(2)_INSTALL_CMDS
define $(2)_INSTALL_CMDS
- $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
endef
endif
@@ -191,7 +202,7 @@ endif
#
ifndef $(2)_INSTALL_STAGING_CMDS
define $(2)_INSTALL_STAGING_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
endef
endif
@@ -201,7 +212,7 @@ endif
#
ifndef $(2)_INSTALL_TARGET_CMDS
define $(2)_INSTALL_TARGET_CMDS
- $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
+ $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
endef
endif
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v4 2/3] package/webkitgtk: use the CMAKE_NINJA flag
2023-03-13 6:55 ` [Buildroot] [PATCH v4 " Thomas Devoogdt
@ 2023-03-13 6:55 ` Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 3/3] package/wpewebkit: " Thomas Devoogdt
2023-03-13 18:48 ` [Buildroot] [PATCH v4 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-03-13 6:55 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
Replaces:
commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:05 2023 +0100
package/webkitgtk: Build with ninja
Webkitgtk needs cmake >= 3.20 when building with the make backend since
webkitgtk 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/webkitgtk/webkitgtk.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/webkitgtk/webkitgtk.mk b/package/webkitgtk/webkitgtk.mk
index 3263f7fea0..b43f97f0ca 100644
--- a/package/webkitgtk/webkitgtk.mk
+++ b/package/webkitgtk/webkitgtk.mk
@@ -13,6 +13,7 @@ WEBKITGTK_LICENSE_FILES = \
Source/WebCore/LICENSE-APPLE \
Source/WebCore/LICENSE-LGPL-2.1
WEBKITGTK_CPE_ID_VENDOR = webkitgtk
+WEBKITGTK_CMAKE_NINJA = YES
WEBKITGTK_DEPENDENCIES = host-ruby host-python3 host-gperf \
enchant harfbuzz icu jpeg libgcrypt libgtk3 libsecret libsoup \
libtasn1 libxml2 libxslt openjpeg sqlite webp woff2
@@ -139,23 +140,4 @@ ifeq ($(BR2_ARM_CPU_ARMV5)$(BR2_ARM_CPU_ARMV6)$(BR2_MIPS_CPU_MIPS32R6)$(BR2_MIPS
WEBKITGTK_CONF_OPTS += -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF
endif
-# webkitgtk needs cmake >= 3.20 when not building with ninja, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WEBKITGTK_CONF_OPTS += -GNinja
-WEBKITGTK_DEPENDENCIES += host-ninja
-
-define WEBKITGTK_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
-define WEBKITGTK_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WEBKITGTK_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [Buildroot] [PATCH v4 3/3] package/wpewebkit: use the CMAKE_NINJA flag
2023-03-13 6:55 ` [Buildroot] [PATCH v4 " Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
@ 2023-03-13 6:55 ` Thomas Devoogdt
2023-03-13 18:48 ` [Buildroot] [PATCH v4 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: Thomas Devoogdt @ 2023-03-13 6:55 UTC (permalink / raw)
To: buildroot; +Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt
Replaces:
commit 78d499409f71d8a22b0632c8ebc06f67ee6ae6dd
Author: Peter Korsgaard <peter@korsgaard.com>
Date: Thu Feb 9 18:07:06 2023 +0100
package/wpewebkit: Build with ninja
Wpewebkit needs cmake >= 3.20 when building with the make backend since
wpewebkit 3.8.0.
Cmake 3.20 is above our minimal version in
support/dependencies/check-host-cmake.mk, so this breaks builds on hosts
with cmake >= 3.18 < 3.20 - So use the ninja backend instead.
https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
package/wpewebkit/wpewebkit.mk | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/package/wpewebkit/wpewebkit.mk b/package/wpewebkit/wpewebkit.mk
index 48e5c2f8cd..c1b5dee121 100644
--- a/package/wpewebkit/wpewebkit.mk
+++ b/package/wpewebkit/wpewebkit.mk
@@ -14,6 +14,7 @@ WPEWEBKIT_LICENSE_FILES = \
Source/WebCore/LICENSE-LGPL-2.1
WPEWEBKIT_CPE_ID_VENDOR = wpewebkit
WPEWEBKIT_CPE_ID_PRODUCT = wpe_webkit
+WPEWEBKIT_CMAKE_NINJA = YES
WPEWEBKIT_DEPENDENCIES = host-gperf host-python3 host-ruby \
harfbuzz cairo icu jpeg libepoxy libgcrypt libgles libsoup libtasn1 \
libpng libxslt openjpeg wayland-protocols webp wpebackend-fdo
@@ -103,23 +104,4 @@ 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
-# wpewebkit needs cmake >= 3.20 when building with the make backend, which is
-# above our minimal version in
-# support/dependencies/check-host-cmake.mk, so use the ninja backend:
-# https://github.com/WebKit/WebKit/commit/6cd89696b5d406c1a3d9a7a9bbb18fda9284fa1f
-WPEWEBKIT_CONF_OPTS += -GNinja
-WPEWEBKIT_DEPENDENCIES += host-ninja
-
-define WPEWEBKIT_BUILD_CMDS
- $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_STAGING_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(STAGING_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
-define WPEWEBKIT_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) DESTDIR=$(TARGET_DIR) $(BR2_CMAKE) --install $(WPEWEBKIT_BUILDDIR)
-endef
-
$(eval $(cmake-package))
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Buildroot] [PATCH v4 1/3] pkg-cmake: add option to select the Ninja generator
2023-03-13 6:55 ` [Buildroot] [PATCH v4 " Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 3/3] package/wpewebkit: " Thomas Devoogdt
@ 2023-03-13 18:48 ` John Keeping
2 siblings, 0 replies; 19+ messages in thread
From: John Keeping @ 2023-03-13 18:48 UTC (permalink / raw)
To: Thomas Devoogdt
Cc: Adrian Perez de Castro, Samuel Martin, Thomas Devoogdt, buildroot
On Mon, Mar 13, 2023 at 07:55:14AM +0100, Thomas Devoogdt wrote:
> E.g. Commit 16e5c92ff5fd2b44a1126bd7d7538c68ce838213 can now be replaced by:
> WEBKITGTK_CMAKE_NINJA = YES
>
> Packages that are selecting Ninja (or overtime another generator),
> should also use the _BUILD_{ENV,OPTS} variables iso the _MAKE variables.
>
> No _INSTALL{,_STAGING,_TARGET}_OPTS used so far:
>
> $ grep '_INSTALL_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_STAGING_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
> $ grep '_INSTALL_TARGET_OPTS' $(grep -rl "cmake-package" package/*/*.mk)
>
> The _MAKE_{ENV,OPTS} are copied to _BUILD_{ENV,OPTS}, usage:
>
> $ grep '_MAKE_ENV =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/netopeer2/netopeer2.mk:NETOPEER2_MAKE_ENV = \
> > package/racehound/racehound.mk:RACEHOUND_MAKE_ENV = $(LINUX_MAKE_FLAGS)
>
> $ grep '_MAKE_OPTS =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/mariadb/mariadb.mk:HOST_MARIADB_MAKE_OPTS = import_executables
> > package/zeek/zeek.mk:HOST_ZEEK_MAKE_OPTS = binpac bifcl
>
> Only "musepack" seems to overwrite MAKE to enforce -j1, so replace it:
>
> $ grep '_MAKE =' $(grep -rl "cmake-package" package/*/*.mk)
>
> > package/musepack/musepack.mk:MUSEPACK_MAKE = $(MAKE1)
>
> Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
Reviewed-by: John Keeping <john@metanate.com>
(minor nit: the commit message seems to be out-of-date in mentioning
MAKE_ENV and MAKE_OPTS for packages which are no longer updated here)
> ---
> v2:
> - made generator use more generic, other generators can now easily be added if required
> v3:
> - add _GENERATOR_PROGRAM
> - add _GENERATOR_PARALLEL for make
> - dropped BUILD_OPTS
> - fix gdal.mk
> v4:
> - restored _MAKE_ENV/_MAKE_OPTS for the Unix Makefiles case
> - always set -j$(PARALLEL_JOBS)
> ---
> package/musepack/musepack.mk | 2 +-
> package/pkg-cmake.mk | 35 +++++++++++++++++++++++------------
> 2 files changed, 24 insertions(+), 13 deletions(-)
>
> diff --git a/package/musepack/musepack.mk b/package/musepack/musepack.mk
> index fc66c684a5..d4dd08df36 100644
> --- a/package/musepack/musepack.mk
> +++ b/package/musepack/musepack.mk
> @@ -9,7 +9,7 @@ MUSEPACK_SITE = http://files.musepack.net/source
> MUSEPACK_SOURCE = musepack_src_$(MUSEPACK_VERSION).tar.gz
> MUSEPACK_DEPENDENCIES = libcuefile libreplaygain
> MUSEPACK_INSTALL_STAGING = YES
> -MUSEPACK_MAKE = $(MAKE1)
> +MUSEPACK_BUILD_OPTS = -j1
> MUSEPACK_LICENSE = BSD-3-Clause (*mpcdec), LGPL-2.1+ (*mpcenc)
> MUSEPACK_LICENSE_FILES = libmpcdec/COPYING libmpcenc/quant.c
>
> diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk
> index 8c375779cb..36ab88d3a1 100644
> --- a/package/pkg-cmake.mk
> +++ b/package/pkg-cmake.mk
> @@ -51,11 +51,6 @@ endif
>
> define inner-cmake-package
>
> -$(2)_MAKE ?= $$(MAKE)
> -$(2)_INSTALL_OPTS ?= install
> -$(2)_INSTALL_STAGING_OPTS ?= DESTDIR=$$(STAGING_DIR) install/fast
> -$(2)_INSTALL_TARGET_OPTS ?= DESTDIR=$$(TARGET_DIR) install/fast
> -
> $(3)_SUPPORTS_IN_SOURCE_BUILD ?= YES
>
>
> @@ -65,6 +60,20 @@ else
> $(2)_BUILDDIR = $$($(2)_SRCDIR)/buildroot-build
> endif
>
> +ifeq ($$($(3)_CMAKE_NINJA),YES)
> +$(2)_DEPENDENCIES += host-ninja
> +$(2)_GENERATOR = "Ninja"
> +$(2)_GENERATOR_PROGRAM = $(HOST_DIR)/bin/ninja
> +else
> +$(2)_GENERATOR = "Unix Makefiles"
> +$(2)_GENERATOR_PROGRAM = $(firstword $(BR2_MAKE))
> +
> +# Generator specific code (make) should be avoided,
> +# but for now, copy them to the new variables.
> +$(2)_BUILD_ENV ?= $$($(2)_MAKE_ENV)
> +$(2)_BUILD_OPTS ?= -- $$($(2)_MAKE_OPTS)
> +endif
> +
> #
> # Configure step. Only define it if not already defined by the package
> # .mk file. And take care of the differences between host and target
> @@ -88,7 +97,8 @@ define $(2)_CONFIGURE_CMDS
> rm -f CMakeCache.txt && \
> PATH=$$(BR_PATH) \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> + -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
> -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \
> -DCMAKE_INSTALL_PREFIX="/usr" \
> -DCMAKE_INSTALL_RUNSTATEDIR="/run" \
> @@ -119,7 +129,8 @@ define $(2)_CONFIGURE_CMDS
> PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
> $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \
> - -G"Unix Makefiles" \
> + -G$$($$(PKG)_GENERATOR) \
> + -DCMAKE_MAKE_PROGRAM="$$($$(PKG)_GENERATOR_PROGRAM)" \
> -DCMAKE_INSTALL_SO_NO_EXE=0 \
> -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
> -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
> @@ -166,11 +177,11 @@ $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY)
> ifndef $(2)_BUILD_CMDS
> ifeq ($(4),target)
> define $(2)_BUILD_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
> endef
> else
> define $(2)_BUILD_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --build $$($$(PKG)_BUILDDIR) -j$(PARALLEL_JOBS) $$($$(PKG)_BUILD_OPTS)
> endef
> endif
> endif
> @@ -181,7 +192,7 @@ endif
> #
> ifndef $(2)_INSTALL_CMDS
> define $(2)_INSTALL_CMDS
> - $$(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(HOST_MAKE_ENV) $$($$(PKG)_BUILD_ENV) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_OPTS)
> endef
> endif
>
> @@ -191,7 +202,7 @@ endif
> #
> ifndef $(2)_INSTALL_STAGING_CMDS
> define $(2)_INSTALL_STAGING_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_STAGING_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(STAGING_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_STAGING_OPTS)
> endef
> endif
>
> @@ -201,7 +212,7 @@ endif
> #
> ifndef $(2)_INSTALL_TARGET_CMDS
> define $(2)_INSTALL_TARGET_CMDS
> - $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPTS) $$($$(PKG)_INSTALL_TARGET_OPTS) -C $$($$(PKG)_BUILDDIR)
> + $$(TARGET_MAKE_ENV) $$($$(PKG)_BUILD_ENV) DESTDIR=$$(TARGET_DIR) $$(BR2_CMAKE) --install $$($$(PKG)_BUILDDIR) $$($$(PKG)_INSTALL_TARGET_OPTS)
> endef
> endif
>
> --
> 2.39.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2023-03-13 18:48 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-24 11:15 [Buildroot] [PATCH v1 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-24 11:15 ` [Buildroot] [PATCH v1 3/3] package/wpewebkit: " Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-27 10:39 ` [Buildroot] [PATCH v2 3/3] package/wpewebkit: " Thomas Devoogdt
2023-02-28 15:33 ` [Buildroot] [PATCH v2 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2023-02-28 15:55 ` [Buildroot] [PATCH v3 " Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-02-28 15:55 ` [Buildroot] [PATCH v3 3/3] package/wpewebkit: " Thomas Devoogdt
2023-03-03 12:15 ` [Buildroot] [PATCH v3 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2023-03-06 11:02 ` Arnout Vandecappelle
2023-03-07 16:10 ` Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 " Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 2/3] package/webkitgtk: use the CMAKE_NINJA flag Thomas Devoogdt
2023-03-13 6:55 ` [Buildroot] [PATCH v4 3/3] package/wpewebkit: " Thomas Devoogdt
2023-03-13 18:48 ` [Buildroot] [PATCH v4 1/3] pkg-cmake: add option to select the Ninja generator John Keeping
2023-02-24 17:53 ` [Buildroot] [PATCH v1 " John Keeping
2023-02-24 18:12 ` Thomas Devoogdt
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.