git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 04/11] meson: fix dependencies for generated headers

From
Patrick Steinhardt <ps@pks.im>
Date
Jan 14, 2025, 11:56 UTC
Message-ID
<20250114-b4-pks-meson-additions-v2-4-8d7ec676cfd9@pks.im>
In-Reply-To
<20250114-b4-pks-meson-additions-v2-0-8d7ec676cfd9@pks.im>

We generate a couple of headers from our documentation. These headers are added to the libgit sources, but two of them aren't used by the library, but instead by our builtins. This can cause parallel builds to fail because the builtin object may be compiled before the header was generated.

Fix the issue by adding both "config-list.h" and "hook-list.h" to the list of builtin sources. While "command-list.h" is generated similarly, it is used by "help.c" and thus part of the libgit sources indeed.

Reported-by: Evan Martin <evan.martin@gmail.com>
Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 meson.build | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/meson.build b/meson.build
index 213998986e8942cee080fc5b9b675860cf429ecc..4053024dadeb0aafc067784b976ed3bd96171181 100644
--- a/meson.build
+++ b/meson.build
@@ -487,6 +487,13 @@ libgit_sources = [
   'xdiff/xutils.c',
 ]
 
+libgit_sources += custom_target(
+  input: 'command-list.txt',
+  output: 'command-list.h',
+  command: [shell, meson.current_source_dir() + '/generate-cmdlist.sh', meson.current_source_dir(), '@OUTPUT@'],
+  env: script_environment,
+)
+
 builtin_sources = [
   'builtin/add.c',
   'builtin/am.c',
@@ -614,14 +621,7 @@ builtin_sources = [
   'builtin/write-tree.c',
 ]
 
-libgit_sources += custom_target(
-  input: 'command-list.txt',
-  output: 'command-list.h',
-  command: [shell, meson.current_source_dir() + '/generate-cmdlist.sh', meson.current_source_dir(), '@OUTPUT@'],
-  env: script_environment,
-)
-
-libgit_sources += custom_target(
+builtin_sources += custom_target(
   output: 'config-list.h',
   command: [
     shell,
@@ -632,7 +632,7 @@ libgit_sources += custom_target(
   env: script_environment,
 )
 
-libgit_sources += custom_target(
+builtin_sources += custom_target(
   input: 'Documentation/githooks.txt',
   output: 'hook-list.h',
   command: [
-- 
2.48.0.257.gd3603152ad.dirty
Previous: Toon ClaesNext: Patrick Steinhardt
Message 7 of 18 in “meson: a couple of additions”
  1. 00/11 meson: a couple of additionsPatrick Steinhardt, Jan 14, 2025
  2. 01/11 GIT-VERSION-GEN: simplify computing the dirty markerPatrick Steinhardt, Jan 14, 2025
  3. 02/11 GIT-VERSION-GEN: allow running without input and output filesPatrick Steinhardt, Jan 14, 2025
  4. Toon ClaesJan 21, 2025
  5. 03/11 meson: populate project version via GIT-VERSION-GENPatrick Steinhardt, Jan 14, 2025
  6. Toon ClaesJan 21, 2025
  7. 04/11 meson: fix dependencies for generated headersPatrick Steinhardt, Jan 14, 2025
  8. 05/11 meson: wire up development environmentsPatrick Steinhardt, Jan 14, 2025
  9. 06/11 meson: wire up generation of distribution archivePatrick Steinhardt, Jan 14, 2025
  10. Toon ClaesJan 21, 2025
  11. Patrick SteinhardtJan 22, 2025
  12. 07/11 meson: wire up fuzzersPatrick Steinhardt, Jan 14, 2025
  13. 08/11 meson: make the CSPRNG backend configurablePatrick Steinhardt, Jan 14, 2025
  14. 09/11 meson: fix compilation with Visual StudioPatrick Steinhardt, Jan 14, 2025
  15. 10/11 ci: raise error when Meson generates warningsPatrick Steinhardt, Jan 14, 2025
  16. Toon ClaesJan 21, 2025
  17. 11/11 ci: wire up Visual Studio build with MesonPatrick Steinhardt, Jan 14, 2025
  18. Junio C HamanoJan 14, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.