aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build14
-rw-r--r--meson_options.txt4
l---------subprojects/git-gui1
l---------subprojects/gitk1
4 files changed, 20 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index 762e2d0fc0..6f155beafa 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
@@ -2254,6 +2256,16 @@ configure_file(
configuration: build_options_config,
)
+gitk_option = get_option('gitk').disable_auto_if(not wish.found())
+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.
@@ -2280,6 +2292,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 e0be260ae1..659cbb218f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -43,6 +43,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',
diff --git a/subprojects/git-gui b/subprojects/git-gui
new file mode 120000
index 0000000000..c6d917088b
--- /dev/null
+++ b/subprojects/git-gui
@@ -0,0 +1 @@
+../git-gui \ No newline at end of file
diff --git a/subprojects/gitk b/subprojects/gitk
new file mode 120000
index 0000000000..b66ad18ae5
--- /dev/null
+++ b/subprojects/gitk
@@ -0,0 +1 @@
+../gitk-git \ No newline at end of file