From patchwork Wed Jan 12 13:26:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Perez de Castro X-Patchwork-Id: 1579116 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.a=rsa-sha256 header.s=20170329 header.b=elNUtxCF; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::133; helo=smtp2.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JYpJ72Zs7z9sRR for ; Thu, 13 Jan 2022 00:27:03 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 1D6BB40A43; Wed, 12 Jan 2022 13:27:00 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FnHbX9h56RFq; Wed, 12 Jan 2022 13:26:56 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id 0198940BEE; Wed, 12 Jan 2022 13:26:54 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 662BE1BF3DC for ; Wed, 12 Jan 2022 13:26:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 54DA181328 for ; Wed, 12 Jan 2022 13:26:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp1.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=igalia.com Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16mbEOKINx5O for ; Wed, 12 Jan 2022 13:26:36 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 8A51D81325 for ; Wed, 12 Jan 2022 13:26:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=5/UYmWQaom/4EuoDr7tQ08bTeria7EBfcDplH/+33fA=; b=elNUtxCFPt6jwmFAQzHVwFkN0p BE86PZjguC8oHFSnyk2dxzJD03NivIpOaaRgysd6pz1+rjUjn0TLyU5msTvUKqXU7QR0pJErnGMqv 17LiC4T0SpXPDFPls/0wcfUHDZEA/7FLdNrvm9kmSVNtJtoOk8iUL239Xsfy8m8KADhW4yvgROk0R NjGO2J4wq61k3zKlgmt6qmqWlnQzC2BbI+zwR9T8G6xV6LNpoS+9DJAwuZ8rLXbXGgOo8MIB9K9O8 q9SXMNgqcAwu6+GgDIDMWHiC+H0jA8H1BQCHGQ+r4+qIHeTf6efmKViI8lZr57CpyJ+hL405z8QSw cTrgcRQg==; Received: from 91-153-34-128.elisa-laajakaista.fi ([91.153.34.128] helo=kodama) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA512__AES_256_GCM:256) (Exim) id 1n7de6-000ARv-7Z; Wed, 12 Jan 2022 14:26:34 +0100 Received: from localhost (kodama [local]) by kodama (OpenSMTPD) with ESMTPA id 42ceb521; Wed, 12 Jan 2022 13:26:19 +0000 (UTC) From: Adrian Perez de Castro To: buildroot@buildroot.org Date: Wed, 12 Jan 2022 15:26:17 +0200 Message-Id: <20220112132618.2634250-2-aperez@igalia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220112132618.2634250-1-aperez@igalia.com> References: <20220112132618.2634250-1-aperez@igalia.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH RFC 1/2] package/ninja: do not require cmake X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eric Le Bihan , Samuel Martin , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Use host-generic-package to manually build ninja. This avoids the need for host-cmake in preparation for the CMake build system machinery being changed to use ninja instead of make. Signed-off-by: Adrian Perez de Castro --- package/ninja/ninja.mk | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/package/ninja/ninja.mk b/package/ninja/ninja.mk index ab1941023e..ae3be6a14f 100644 --- a/package/ninja/ninja.mk +++ b/package/ninja/ninja.mk @@ -9,8 +9,42 @@ NINJA_SITE = $(call github,ninja-build,ninja,v$(NINJA_VERSION)) NINJA_LICENSE = Apache-2.0 NINJA_LICENSE_FILES = COPYING +# Ninja is used by CMake-based packages, avoid a circular dependency by +# by using host-generic-package instead and using a single command to +# compile the binary. This does in essence the same as the "bootstrap.py" +# included in the distribution avoiding the need for host-python. +define HOST_NINJA_BUILD_CMDS + cd $(@D) && $(HOSTCXX) $(HOST_CXXFLAGS) $(HOST_LDFLAGS) \ + src/build_log.cc \ + src/build.cc \ + src/clean.cc \ + src/clparser.cc \ + src/dyndep.cc \ + src/dyndep_parser.cc \ + src/debug_flags.cc \ + src/deps_log.cc \ + src/disk_interface.cc \ + src/edit_distance.cc \ + src/eval_env.cc \ + src/graph.cc \ + src/graphviz.cc \ + src/line_printer.cc \ + src/manifest_parser.cc \ + src/metrics.cc \ + src/parser.cc \ + src/state.cc \ + src/string_piece_util.cc \ + src/util.cc \ + src/version.cc \ + src/depfile_parser.cc \ + src/lexer.cc \ + src/subprocess-posix.cc \ + src/ninja.cc \ + -o ninja +endef + define HOST_NINJA_INSTALL_CMDS $(INSTALL) -m 0755 -D $(@D)/ninja $(HOST_DIR)/bin/ninja endef -$(eval $(host-cmake-package)) +$(eval $(host-generic-package)) From patchwork Wed Jan 12 13:26:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Perez de Castro X-Patchwork-Id: 1579117 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=igalia.com header.i=@igalia.com header.a=rsa-sha256 header.s=20170329 header.b=XW9pt5JV; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=buildroot.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver=) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JYpJK6qNQz9sRR for ; Thu, 13 Jan 2022 00:27:13 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id A7CC16FBC4; Wed, 12 Jan 2022 13:27:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jypAqwijmylf; Wed, 12 Jan 2022 13:27:10 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp3.osuosl.org (Postfix) with ESMTP id CFDBA6FBD5; Wed, 12 Jan 2022 13:27:09 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id C60A11BF3DC for ; Wed, 12 Jan 2022 13:26:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id AFBB940A35 for ; Wed, 12 Jan 2022 13:26:40 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=igalia.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l-ecMIbOvQ7a for ; Wed, 12 Jan 2022 13:26:40 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id D41D640193 for ; Wed, 12 Jan 2022 13:26:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=cvfaAdTOXgS0k41Y4Uzcu1hvhqpIMQ0B5tH+Y168Suo=; b=XW9pt5JVjqnHU9Ocurnu4a7rlM 01c84udHU9qn78KEpkXZ79yHVBeNhlJpBVz9uwUgd65Q7jVscNXKgjAn7RsoSI+S2KSpQIvit8+XK 1mbWfJ2i5tlmS/Tq2H1mN4RPfS+nI0/CSnYEa7p5QAGGSuuNkHZ0sKYWhGF5RtOCOTtI2tNN2MsWM +4coXIRP7jWs1+W47PMaxVxqfHrKeHC2wwfVf7Kb3RrX2TZFhb77RZwlaSSRg8gOo6w0ee8HB4U+l G273eOmCv/nVMbVQn/+4CjesKXfZzVvYzhyYmqm21mTD//etBy6iXkIq19mLm2jy9b8p+uAt7VUBa vak28AbQ==; Received: from 91-153-34-128.elisa-laajakaista.fi ([91.153.34.128] helo=kodama) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA512__AES_256_GCM:256) (Exim) id 1n7de9-000ARz-6P; Wed, 12 Jan 2022 14:26:37 +0100 Received: from localhost (kodama [local]) by kodama (OpenSMTPD) with ESMTPA id e4ee66a3; Wed, 12 Jan 2022 13:26:19 +0000 (UTC) From: Adrian Perez de Castro To: buildroot@buildroot.org Date: Wed, 12 Jan 2022 15:26:18 +0200 Message-Id: <20220112132618.2634250-3-aperez@igalia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220112132618.2634250-1-aperez@igalia.com> References: <20220112132618.2634250-1-aperez@igalia.com> MIME-Version: 1.0 Subject: [Buildroot] [PATCH RFC 2/2] package/pkg-cmake.mk: use ninja instead of make X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Eric Le Bihan , Samuel Martin , Thomas Petazzoni Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" Switch to ninja as the build tool for the CMake package infrastructure. Note that the changes make packages which use [host-]cmake-package depend on host-ninja. Signed-off-by: Adrian Perez de Castro --- package/pkg-cmake.mk | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/package/pkg-cmake.mk b/package/pkg-cmake.mk index 3b1db35fb6..65f005a914 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 @@ -88,6 +83,7 @@ define $(2)_CONFIGURE_CMDS rm -f CMakeCache.txt && \ PATH=$$(BR_PATH) \ $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ + -GNinja \ -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/share/buildroot/toolchainfile.cmake" \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DCMAKE_COLOR_MAKEFILE=OFF \ @@ -117,6 +113,7 @@ define $(2)_CONFIGURE_CMDS PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \ $$($$(PKG)_CONF_ENV) $$(BR2_CMAKE) $$($$(PKG)_SRCDIR) \ + -GNinja \ -DCMAKE_INSTALL_SO_NO_EXE=0 \ -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \ @@ -154,6 +151,8 @@ endif # primitives to find {C,LD}FLAGS, add it to the dependency list. $(2)_DEPENDENCIES += host-pkgconf +$(2)_DEPENDENCIES += host-ninja + $(2)_DEPENDENCIES += $(BR2_CMAKE_HOST_DEPENDENCY) # @@ -163,11 +162,13 @@ $(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)_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) + $$(HOST_MAKE_ENV) $$($$(PKG)_NINJA_ENV) \ + $$(NINJA) $$(NINJA_OPTS) $$($$(PKG)_NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) endef endif endif @@ -178,7 +179,8 @@ 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)_NINJA_ENV) \ + $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install endef endif @@ -188,7 +190,8 @@ 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)_NINJA_ENV) DESTDIR=$$(STAGING_DIR) \ + $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install endef endif @@ -198,7 +201,8 @@ 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)_NINJA_ENV) DESTDIR=$$(TARGET_DIR) \ + $$(NINJA) $$(NINJA_OPTS) -C $$($$(PKG)_BUILDDIR) install endef endif