Re: [PATCH 3/3] meson: wire up gitk and git-gui
- From
Karthik Nayak <karthik.188@gmail.com>
- Date
- Aug 19, 2025, 09:40 UTC
- Message-ID
- <CAOLa=ZTScBdh_JEvSez20+4cqnKaPaJmmmAGqGtdbzcTz703VQ@mail.gmail.com>
- In-Reply-To
- <20250819-b4-pks-meson-tcl-tk-v1-3-6bcaff0bc0a0@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 29 quoted lines
> Wire up both gitk and git-gui in Meson as subprojects. These two
> programs should be the last missing pieces for feature compatibility
> with our Makefile.
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> meson.build | 14 ++++++++++++++
> meson_options.txt | 4 ++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/meson.build b/meson.build
> index 5dd299b496..edf7b69a00 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -239,7 +239,9 @@ git = find_program('git', dirs: program_path, native: true, required: false)
> sed = find_program('sed', dirs: program_path, native: true)
> shell = find_program('sh', dirs: program_path, native: true)
> tar = find_program('tar', dirs: program_path, native: true)
> +tclsh = find_program('tclsh', required: get_option('git_gui'), native: false)
> time = find_program('time', dirs: program_path, required: get_option('benchmarks'))
> +wish = find_program('wish', required: get_option('git_gui').enabled() or get_option('gitk').enabled(), native: false)
>
> # Detect the target shell that is used by Git at runtime. Note that we prefer
> # "/bin/sh" over a PATH-based lookup, which provides a working shell on most
> @@ -2207,6 +2209,16 @@ configure_file(
> configuration: build_options_config,
> )
>
> +gitk_option = get_option('gitk').disable_auto_if(not wish.found())Since 'wish' is defined as required above when 'gitk' is enabled, would it even come here if there is no 'wish'?
Show 39 quoted lines
> +if gitk_option.allowed()
> + subproject('gitk')
> +endif
> +
> +git_gui_option = get_option('git_gui').disable_auto_if(not tclsh.found() or not wish.found())
> +if git_gui_option.allowed()
> + subproject('git-gui')
> +endif
> +
> # Development environments can be used via `meson devenv -C <builddir>`. This
> # allows you to execute test scripts directly with the built Git version and
> # puts the built version of Git in your PATH.
> @@ -2233,6 +2245,8 @@ summary({
> 'curl': curl,
> 'expat': expat,
> 'gettext': intl,
> + 'gitk': gitk_option.allowed(),
> + 'git-gui': git_gui_option.allowed(),
> 'gitweb': gitweb_option.allowed(),
> 'iconv': iconv,
> 'pcre2': pcre2,
> diff --git a/meson_options.txt b/meson_options.txt
> index 1668f260a1..8fa330771b 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -41,6 +41,10 @@ option('expat', type: 'feature', value: 'enabled',
> description: 'Build helpers used to push to remotes with the HTTP transport.')
> option('gettext', type: 'feature', value: 'auto',
> description: 'Build translation files.')
> +option('gitk', type: 'feature', value: 'auto',
> + description: 'Build the Gitk graphical repository browser. Requires Tcl/Tk.')
> +option('git_gui', type: 'feature', value: 'auto',
> + description: 'Build the git-gui graphical user interface for Git. Requires Tcl/Tk.')
> option('gitweb', type: 'feature', value: 'auto',
> description: 'Build Git web interface. Requires Perl.')
> option('iconv', type: 'feature', value: 'auto',
>
> --
> 2.51.0.261.g7ce5a0a67e.dirtyThe rest look good.
Thanks, Karthik