* [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
* [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
* 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
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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox