threads / patch / 64954

patchmeson: fix building mergetool docs

Subject: [PATCH] meson: fix building mergetool docs

## tl;dr

2 messages between Feb 9, 2026 and Feb 9, 2026. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Phillip Wood· Feb 9, 2026, 10:08 UTC · lore
From: Phillip Wood <phillip.wood@dunelm.org.uk>

Building the documentation with meson when the build directory is not an immediate subdirectory of the source directory prints the following error

[2/1349] Generating Documentation/mer... command (wrapped by meson to set env) ../../Documentation/generate-mergetool-list.sh: line 15: ../git-mergetool--lib.sh: No such file or directory

The build does not fail because the failure is upstream of a pipe. Fix the error by passing the correct source directory when meson runs "generate-mergetool-list.sh". As that script sets $MERGE_TOOLS_DIR we do not need to set it in the environment when running the script.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
---
We should probably change the script so that error is not ignored
as well. I also wonder if we should use something more exotic than
"build" as the meson build directory in our CI though that wont make
any difference if the script does not fail.
Base-Commit: 3e0db84c88c57e70ac8be8c196dfa92c5d656fbc
Published-As: https://github.com/phillipwood/git/releases/tag/pw%2Fmeson-fix-mergetool-docs%2Fv1
View-Changes-At: https://github.com/phillipwood/git/compare/3e0db84c8...604c79018
Fetch-It-Via: git fetch https://github.com/phillipwood/git pw/meson-fix-mergetool-docs/v1
 Documentation/meson.build | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
Show changes to Documentation/meson.build +1 −4
diff --git a/Documentation/meson.build b/Documentation/meson.build
index f02dbc20cbc..d0e557c2078 100644
--- a/Documentation/meson.build
+++ b/Documentation/meson.build
@@ -353,13 +353,10 @@ foreach mode : [ 'diff', 'merge' ]
     command: [
       shell,
       '@INPUT@',
-      '..',
+      meson.project_source_root(),
       mode,
       '@OUTPUT@'
     ],
-    env: [
-      'MERGE_TOOLS_DIR=' + meson.project_source_root() / 'mergetools',
-    ],
     input: 'generate-mergetool-list.sh',
     output: 'mergetools-' + mode + '.adoc',
   )
-- 
2.52.0.362.g884e03848a9
Patrick Steinhardt· Feb 9, 2026, 12:32 UTC · re: Phillip Wood · lore

Re: [PATCH] meson: fix building mergetool docs

On Mon, Feb 09, 2026 at 10:08:43AM +0000, Phillip Wood wrote:
Show 8 quoted lines
> From: Phillip Wood <phillip.wood@dunelm.org.uk>
> 
> Building the documentation with meson when the build directory is
> not an immediate subdirectory of the source directory prints the
> following error
> 
> [2/1349] Generating Documentation/mer... command (wrapped by meson to set env)
> ../../Documentation/generate-mergetool-list.sh: line 15: ../git-mergetool--lib.sh: No such file or directory
Oh, good catch.
> The build does not fail because the failure is upstream of a pipe. Fix
> the error by passing the correct source directory when meson runs
> "generate-mergetool-list.sh". As that script sets $MERGE_TOOLS_DIR
> we do not need to set it in the environment when running the script.
Huh.
Show 6 quoted lines
> Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> ---
> We should probably change the script so that error is not ignored
> as well. I also wonder if we should use something more exotic than
> "build" as the meson build directory in our CI though that wont make
> any difference if the script does not fail.

We probably could, I guess. And making the script more solid would definitely be a very good step regardless of whether or not we want to use a more esoteric build directory.

Show 13 quoted lines
> diff --git a/Documentation/meson.build b/Documentation/meson.build
> index f02dbc20cbc..d0e557c2078 100644
> --- a/Documentation/meson.build
> +++ b/Documentation/meson.build
> @@ -353,13 +353,10 @@ foreach mode : [ 'diff', 'merge' ]
>      command: [
>        shell,
>        '@INPUT@',
> -      '..',
> +      meson.project_source_root(),
>        mode,
>        '@OUTPUT@'
>      ],

Makes sense. I assume that this is the only change required to make out-of-source builds work?

> -    env: [
> -      'MERGE_TOOLS_DIR=' + meson.project_source_root() / 'mergetools',
> -    ],

Hm. We indeed set this environment variable in the script itself. I was a bit puzzled at first because we don't export it, and it's not used directly. But we source "git-mergetool--lib.sh", which in turn uses the variable, so it shouldn't be needed to export it.

So this looks like a nice simplification to me, thanks!
Patrick

← back to recent threads