From patchwork Mon Oct 14 14:06:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13835088 Received: from fout-a4-smtp.messagingengine.com (fout-a4-smtp.messagingengine.com [103.168.172.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 909001A0724 for ; Mon, 14 Oct 2024 14:06:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.147 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914809; cv=none; b=crSSS+YG3b27u9EkieIr1NYkxHgTt7OuhOkxFxYeei5sQyKAcoHmmwhgr6et6NwICZ9d+A2Jg1JUK95GM30n30aVqKbx/fzLkE3HWyzLFqetCgKb3AvtgtqMk4v8T9xenVL9sB5YkU+BGONYlO9mcCTD19JKPv5uJbZcrFXVIs0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914809; c=relaxed/simple; bh=wT/WLnuP0m8AahY9739F/pF9KHkH1I4mJwQPtUfC43U=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=N+RyWewmKsarqj3qp+pBmm7/yWVLN+weLCjxNx16I/EzbqmsftJLe5RQDm/NIEjI6KWyecFoYY40mZbmkf1UukGlBsbPsWcQaOgfcEA/uh/2qzC7+jKk9/oTDEuEHgOFBrtg7qpl0+4zeHvy8BoFrSVYemhI79z0NzF7b/vlEfM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=Uqbau+Ji; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=itKeSe3O; arc=none smtp.client-ip=103.168.172.147 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="Uqbau+Ji"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="itKeSe3O" Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfout.phl.internal (Postfix) with ESMTP id B7D8E1380214; Mon, 14 Oct 2024 10:06:46 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Mon, 14 Oct 2024 10:06:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1728914806; x=1729001206; bh=S1U9PHRDHL wDox5AkVkNYiaBNc0mAX6xsG7NWaKEJT4=; b=Uqbau+JiSVikApGYDyyx5H0dl5 UIDRUhIxOhyiq/q/sphzr6JAe/4t8HtXc6QM4nyjEe7hOCVasSeONlHfvjWcJgCw hacpZCkxbEJ/6in9bEOVjFH+IzjPa8okCZoqjX4YLEBB02S+KloZg/1uoR4tRdA8 1b+3TUGEDlQgpEJQTW9OMG0SBDgVBFVCFxsl9gRuttUcixETXmL511toexoCtWgi D/IFQt6PUgYdHC/J2GE+BfZdV3nforGCXvUmoPkRmUFhQLDbTk4QvIE+c9ONYmWU 4hybLZDNVal877IqfavMx5Friowp8UFt8KcxhAo4UtQwbglM6Q7ejrpQmf/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1728914806; x=1729001206; bh=S1U9PHRDHLwDox5AkVkNYiaBNc0m AX6xsG7NWaKEJT4=; b=itKeSe3O/AUXql9iwLjzTtEdAkdsa7xfTw+Xqfj6bRv5 X+DxWbD5h0odEEUNcvNDvYgfYMBWfFNZBgxiSI1SXDEO8KDOYaUd+76yhjEN9Eqp oJeO9OF7ghd+3bHk/o6NAN87jRnlJb8h+oNm7x/6w5S0bDFbQX+0yJXiEXRe0sDd /UpGnJIPejRZ+2XLxpy8LkaoLUWVq1hKHqXh86e036MAh2v0cfwuFKEUIctNe8H7 d9VNq82mAl4BImFuv2L/P37wytD0nNy173mMoQtYlT0bddGyzxu6apgXkH8Pa2Jp ylEDCFVkTS6rpFKMsyNdbrtD1KE4dRyQZehcl3dvZg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeghedgjedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopegvughrvggvlhesghhmrghilhdrtghomhdprhgtphhtthhopehjohhhrghn nhgvshdrshgthhhinhguvghlihhnsehgmhigrdguvg X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 14 Oct 2024 10:06:45 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 11829577 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 14 Oct 2024 14:05:30 +0000 (UTC) Date: Mon, 14 Oct 2024 16:06:41 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Ed Reel , Johannes Schindelin Subject: [PATCH 1/3] Makefile: extract script to generate clar declarations Message-ID: <346aa2f08307fb9c501a4b9ac3322beb44dc9d5d.1728914219.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Extract the script to generate function declarations for the clar unit testing framework into a standalone script. This is done such that we can reuse it in other build systems. Signed-off-by: Patrick Steinhardt --- Makefile | 4 +--- t/unit-tests/generate-clar-decls.sh | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100755 t/unit-tests/generate-clar-decls.sh diff --git a/Makefile b/Makefile index feeed6f9321..87b86c5be1a 100644 --- a/Makefile +++ b/Makefile @@ -3904,9 +3904,7 @@ GIT-TEST-SUITES: FORCE fi $(UNIT_TEST_DIR)/clar-decls.h: $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) GIT-TEST-SUITES - $(QUIET_GEN)for suite in $(CLAR_TEST_SUITES); do \ - sed -ne "s/^\(void test_$${suite}__[a-zA-Z_0-9][a-zA-Z_0-9]*(void)$$\)/extern \1;/p" $(UNIT_TEST_DIR)/$$suite.c; \ - done >$@ + $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-decls.sh "$@" $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) $(UNIT_TEST_DIR)/clar.suite: $(UNIT_TEST_DIR)/clar-decls.h $(QUIET_GEN)awk -f $(UNIT_TEST_DIR)/clar-generate.awk $< >$(UNIT_TEST_DIR)/clar.suite $(CLAR_TEST_OBJS): $(UNIT_TEST_DIR)/clar-decls.h diff --git a/t/unit-tests/generate-clar-decls.sh b/t/unit-tests/generate-clar-decls.sh new file mode 100755 index 00000000000..6646a90f711 --- /dev/null +++ b/t/unit-tests/generate-clar-decls.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +if test $# -lt 2 +then + echo "USAGE: $0 ..." 2>&1 + exit 1 +fi + +OUTPUT="$1" +shift + +while test "$#" -ne 0 +do + suite="$1" + shift + sed -ne "s/^\(void test_$suite__[a-zA-Z_0-9][a-zA-Z_0-9]*(void)$\)/extern \1;/p" "$suite" || + exit 1 +done >"$OUTPUT" From patchwork Mon Oct 14 14:06:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13835089 Received: from fout-a4-smtp.messagingengine.com (fout-a4-smtp.messagingengine.com [103.168.172.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0239B1ABEA6 for ; Mon, 14 Oct 2024 14:06:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.147 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914810; cv=none; b=q55c8wga/TDgSeF9kBEazAh4Y2wccLTMrrwqzWPZeXu6YWHvwFc1YXa2bAYqX+wdPIVBPEPSWwCQSRgALZuTnwGQXz7kNLszL0TzjcZs/ZAbTgXKJbTCK9KC55szc6AJfjaqNBDbAQSYN+NWTQlJHTRDhxzdAqEZkNKrFBdkyBU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914810; c=relaxed/simple; bh=+yI83K1a0+L5dY9acS2pL/6311wdJOObB0OKyha7YH0=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=I63fMQga3RzgDoB37uVdetld6KC+EQPNthAmKdQ6N8DlvdR709UCXcOSOJe70PxQs5CEIwi8u+fsS4xm5TWUnVr6ikxzh+yrPMlPYVv+iASb0Q6ik5UTTDANL6NMNlxkXiWlyPoQzKzqW5KMQ6G+5iHp/hZnlSXd4GIhkGzmuBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=nj2hagY6; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=BWoeZVGs; arc=none smtp.client-ip=103.168.172.147 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="nj2hagY6"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="BWoeZVGs" Received: from phl-compute-07.internal (phl-compute-07.phl.internal [10.202.2.47]) by mailfout.phl.internal (Postfix) with ESMTP id 13F3413801F7; Mon, 14 Oct 2024 10:06:48 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-07.internal (MEProxy); Mon, 14 Oct 2024 10:06:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1728914808; x=1729001208; bh=Fz9gQvkRAs iUAHsqT95MhfuyrGDCWCR/pMfy+IWke7g=; b=nj2hagY6OmDQNHHrzyok/6oZ0F qJEO2NeyrYDPs35NAa9SYcxKDMn/2p/OIBe3ONmWfZeW4YiU685Gg7h3YlAScyxy jVlo8UPK/WDVXiitCm2bYcsRPxwAPgpBAKNHSBwcclr/F+K2n/+uTJdNwbh9nVkE VUJm6guEf6EppJ3ww8LsFLtNNfDBgGakyn9pTlY0z5WxZA4PX+8V+uycx/YtO3C+ om83tNv7FvcRjsBIJlsR0ETXst9ZPEKth492ShdIUNJezex6fxyQJSfRXdo1nuRj akTVLlvi73coUalHsVINe0pBYi9hfuLyLlh78L7ecaFiFzdK5iBEtBLo/1xw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1728914808; x=1729001208; bh=Fz9gQvkRAsiUAHsqT95MhfuyrGDC WCR/pMfy+IWke7g=; b=BWoeZVGs7ae3D+emiIRftvv2t12crSd6A8GxE/tkzNVb epcF8CCCdn0hIOjDFF9rLCpcys4nurmz1987/31p4ca4CCythwDFlqQJIxkxnMfN XG8gQVsbyVmwFBr4QEhZDFIovQgvhAL06vv4wD7pxlmwoRKMfjp7euqwmOsejHBB jJKX+B2QWNdRte5x0al3brVSm92NtpNoVrw6eSgbXQmJkN8Q0pJxKlhD3t319LQW OUTcswd+nArP3XtjEmHdn3EoLREbUTdRyOT/yExp8qGmvsM0UkjsGAnoTIOjoM2Z lFGpFZr7TnVisSaaeedvXVbV951iYR2m41c9lbk0Zg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeghedgjeduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprh gtphhtthhopehjohhhrghnnhgvshdrshgthhhinhguvghlihhnsehgmhigrdguvgdprhgt phhtthhopegvughrvggvlhesghhmrghilhdrtghomh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 14 Oct 2024 10:06:46 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 7d25a1ea (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 14 Oct 2024 14:05:33 +0000 (UTC) Date: Mon, 14 Oct 2024 16:06:44 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Ed Reel , Johannes Schindelin Subject: [PATCH 2/3] cmake: fix compilation of clar-based unit tests Message-ID: References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The compilation of clar-based unit tests is broken because we do not add the binary directory into which we generate the "clar-decls.h" and "clar.suite" files as include directories. Instead, we accidentally set up the source directory as include directory. Fix this and propagate the include directories of "unit-tests.lib" to the "unit-tests" executable so that the latter uses the same include directories. Reported-by: Ed Reel Signed-off-by: Patrick Steinhardt --- contrib/buildsystems/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index 62af7b33d2f..093852ad9d6 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1042,7 +1042,7 @@ file(WRITE "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" "${clar_decls}" "${clar list(TRANSFORM clar_test_SUITES PREPEND "${CMAKE_SOURCE_DIR}/t/unit-tests/") list(TRANSFORM clar_test_SUITES APPEND ".c") add_library(unit-tests-lib ${clar_test_SUITES} "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c") -target_include_directories(unit-tests-lib PRIVATE "${CMAKE_SOURCE_DIR}/t/unit-tests") +target_include_directories(unit-tests-lib PUBLIC "${CMAKE_BINARY_DIR}/t/unit-tests") add_executable(unit-tests "${CMAKE_SOURCE_DIR}/t/unit-tests/unit-test.c") target_link_libraries(unit-tests unit-tests-lib common-main) set_target_properties(unit-tests From patchwork Mon Oct 14 14:06:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13835090 Received: from fout-a4-smtp.messagingengine.com (fout-a4-smtp.messagingengine.com [103.168.172.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 453F21AD9C3 for ; Mon, 14 Oct 2024 14:06:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.147 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914812; cv=none; b=inLZYNXr0GASYCxjT+L2gyVD916Awxjr+Uz84dp66lvNEjCpMreeLES4wPlxQnzYgC34UWZrCJlwEoif1FgmGmPPyidzTmpHYIlaqIp9BPDFuN9fZGlXQIIMC/69uc0Eg/RB+p49shoePtlpwJzA7J3X+pegYm44X8SMvQRJYWM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728914812; c=relaxed/simple; bh=GsLwj5/w33fv4cikxIvLwctBSP2ExHPAE6i4bKSo6PU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=gQO5EVloISJjSpsHh5eIgpbztrhnL8WTqi2bsaT7+7sx4x+DpGsMBqC3P5OqLya7imFxakCKU4AS66y9IvcCRm0d3EIZEjMCdz8Mul9mqqVwvAo5TKAe2LnQwRzlNXpemeLfCT2tfbu2nk5iiUIVpHM687hqOFwdKNkL99n00UI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=j1aTaxSJ; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=UltOuLkQ; arc=none smtp.client-ip=103.168.172.147 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="j1aTaxSJ"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="UltOuLkQ" Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfout.phl.internal (Postfix) with ESMTP id 5B352138023C; Mon, 14 Oct 2024 10:06:50 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-12.internal (MEProxy); Mon, 14 Oct 2024 10:06:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1728914810; x=1729001210; bh=nXEBxyoUXU 2vNAnXcDZ4i2LAL0iOEDM9z+7UIryYypU=; b=j1aTaxSJ9CsGvJO2m2T2TJVah3 Mge8TNSjK7dPMPPSlc32xZ8MPk4o9+hqSzpdlw8KMA/Ev8mTyETCWLRCD3QVgu7o 95/z9khEptye6nRt8MFEELJ/ZE8voYRNsYiS+pGa8cbdYZIR3RuXjZoPwbjzEtZg R6bz5Z/863tAflydzTEi8bAejZisDwJhES3ZTsgPRsRvuU7UFy/+Y+bzcjtQqSsv gSqn+vSrHClCThZr6DUIxwHtvH2wEKxmzEvPNnAg6ucy+Gre3o2C954vx9se4kht +5gdnVez+kdKWvgg6jL/jALPufBi91WcsjFxDkpctosKmmzIaicUTcPGHCUA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1728914810; x=1729001210; bh=nXEBxyoUXU2vNAnXcDZ4i2LAL0iO EDM9z+7UIryYypU=; b=UltOuLkQDpspRYhEX9yZLtT77FlWkFC4jfbRcv483AFf XqUqLBSGO5FMntSCJth7ZIoDvx9mGqD6WPatkruz0ClrqvTVVfmOcOYamyYGoNLX uQly38cX2Z2hzY7Ax2GYj839FdPW3iTX0eINGTAoW7XTUTUDPAQ1l24sWZ+SXLcN vCtF+0AqogvjbYIIBMdiP+A409mUgOKR9UcdeFiAP8e16zC9IXu1SQn1DDNUpTO4 3MeuhpJPswLWHSJJXrc9OYvhVHDlU1l4pa3f4wunCt0VGTQ3P6irK4Twczk1kQOA 2mJL9Jkqi5O1ru1Gn8v5nl9FWNZ/MKoAiGsZcj6gIg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdeghedgjedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhepfffhvfevuffkfhggtggujgesthdtredttddtvden ucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrghrughtuceophhssehpkhhsrdhimh eqnecuggftrfgrthhtvghrnhepveekkeffhfeitdeludeigfejtdetvdelvdduhefgueeg udfghfeukefhjedvkedtnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghrtghpthhtohepfedpmhhouggvpehs mhhtphhouhhtpdhrtghpthhtohepvggurhgvvghlsehgmhgrihhlrdgtohhmpdhrtghpth htohepjhhohhgrnhhnvghsrdhstghhihhnuggvlhhinhesghhmgidruggvpdhrtghpthht ohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrgh X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 14 Oct 2024 10:06:49 -0400 (EDT) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 61697154 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 14 Oct 2024 14:05:36 +0000 (UTC) Date: Mon, 14 Oct 2024 16:06:47 +0200 From: Patrick Steinhardt To: git@vger.kernel.org Cc: Ed Reel , Johannes Schindelin Subject: [PATCH 3/3] cmake: set up proper dependencies for generated clar headers Message-ID: <129d28ae48ad984e9fae8bf803ae50a390b15a46.1728914219.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: The auto-generated headers used by clar are written at configure time and thus do not get regenerated automatically. Refactor the build recipes such that we use custom commands instead, which also has the benefit that we can reuse the same infrastructure as our Makefile. Signed-off-by: Patrick Steinhardt --- contrib/buildsystems/CMakeLists.txt | 50 +++++++---------------------- 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index 093852ad9d6..9f80ab92656 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1002,46 +1002,20 @@ foreach(unit_test ${unit_test_PROGRAMS}) endforeach() parse_makefile_for_scripts(clar_test_SUITES "CLAR_TEST_SUITES" "") - -set(clar_decls "") -set(clar_cbs "") -set(clar_cbs_count 0) -set(clar_suites "static struct clar_suite _clar_suites[] = {\n") -list(LENGTH clar_test_SUITES clar_suites_count) -foreach(suite ${clar_test_SUITES}) - file(STRINGS "${CMAKE_SOURCE_DIR}/t/unit-tests/${suite}.c" decls - REGEX "^void test_${suite}__[a-zA-Z_0-9][a-zA-Z_0-9]*\\(void\\)$") - - list(LENGTH decls decls_count) - string(REGEX REPLACE "void (test_${suite}__([a-zA-Z_0-9]*))\\(void\\)" " { \"\\2\", &\\1 },\n" cbs ${decls}) - string(JOIN "" cbs ${cbs}) - list(TRANSFORM decls PREPEND "extern ") - string(JOIN ";\n" decls ${decls}) - - string(APPEND clar_decls "${decls};\n") - string(APPEND clar_cbs - "static const struct clar_func _clar_cb_${suite}[] = {\n" - ${cbs} - "};\n") - string(APPEND clar_suites - " {\n" - " \"${suite}\",\n" - " { NULL, NULL },\n" - " { NULL, NULL },\n" - " _clar_cb_${suite}, ${decls_count}, 1\n" - " },\n") - math(EXPR clar_cbs_count "${clar_cbs_count}+${decls_count}") -endforeach() -string(APPEND clar_suites - "};\n" - "static const size_t _clar_suite_count = ${clar_suites_count};\n" - "static const size_t _clar_callback_count = ${clar_cbs_count};\n") -file(WRITE "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${clar_decls}") -file(WRITE "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" "${clar_decls}" "${clar_cbs}" "${clar_suites}") - list(TRANSFORM clar_test_SUITES PREPEND "${CMAKE_SOURCE_DIR}/t/unit-tests/") list(TRANSFORM clar_test_SUITES APPEND ".c") -add_library(unit-tests-lib ${clar_test_SUITES} "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c") +add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" + COMMAND ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" ${clar_test_SUITES} + DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh ${clar_test_SUITES}) +add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" + COMMAND awk -f "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" > "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" + DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h") + +add_library(unit-tests-lib ${clar_test_SUITES} + "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c" + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" + "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" +) target_include_directories(unit-tests-lib PUBLIC "${CMAKE_BINARY_DIR}/t/unit-tests") add_executable(unit-tests "${CMAKE_SOURCE_DIR}/t/unit-tests/unit-test.c") target_link_libraries(unit-tests unit-tests-lib common-main)