meson: make GIT_HTML_PATH configurable

Makefile-based builds can configure Git's internal HTML_PATH by defining
htmldir, which is useful for packagers that put documentation in
different locations. Gentoo, for example, uses version-suffixed
directories like ${prefix}/share/doc/git-2.51 and puts the HTML
documentation in an 'html' subdirectory of the same.

Propagate the same configuration knob to Meson-based builds so that
"git --html-path" on such systems can be configured to output the
correct directory.

Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
main
D. Ben Knoble 2025-11-04 08:58:29 -05:00 committed by Junio C Hamano
parent 7f278e958a
commit d63417e3ad
7 changed files with 20 additions and 13 deletions

View File

@ -35,7 +35,7 @@ doc_targets += custom_target(
output: 'howto-index.html', output: 'howto-index.html',
depends: documentation_deps, depends: documentation_deps,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )


foreach howto : howto_sources foreach howto : howto_sources
@ -57,6 +57,6 @@ foreach howto : howto_sources
output: fs.stem(howto_stripped.full_path()) + '.html', output: fs.stem(howto_stripped.full_path()) + '.html',
depends: documentation_deps, depends: documentation_deps,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc/howto', install_dir: htmldir / 'howto',
) )
endforeach endforeach

View File

@ -412,7 +412,7 @@ foreach manpage, category : manpages
input: manpage, input: manpage,
output: fs.stem(manpage) + '.html', output: fs.stem(manpage) + '.html',
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )
endif endif
endforeach endforeach
@ -423,7 +423,7 @@ if get_option('docs').contains('html')
output: 'docinfo.html', output: 'docinfo.html',
copy: true, copy: true,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )


configure_file( configure_file(
@ -431,11 +431,11 @@ if get_option('docs').contains('html')
output: 'docbook-xsl.css', output: 'docbook-xsl.css',
copy: true, copy: true,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )


install_symlink('index.html', install_symlink('index.html',
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
pointing_to: 'git.html', pointing_to: 'git.html',
) )


@ -466,7 +466,7 @@ if get_option('docs').contains('html')
input: 'docbook.xsl', input: 'docbook.xsl',
output: 'user-manual.html', output: 'user-manual.html',
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )


articles = [ articles = [
@ -492,7 +492,7 @@ if get_option('docs').contains('html')
output: fs.stem(article) + '.html', output: fs.stem(article) + '.html',
depends: documentation_deps, depends: documentation_deps,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )
endforeach endforeach



View File

@ -53,7 +53,7 @@ doc_targets += custom_target(
output: 'api-index.html', output: 'api-index.html',
depends: documentation_deps, depends: documentation_deps,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc/technical', install_dir: htmldir / 'technical',
) )


foreach article : api_docs + articles foreach article : api_docs + articles
@ -63,6 +63,6 @@ foreach article : api_docs + articles
output: fs.stem(article) + '.html', output: fs.stem(article) + '.html',
depends: documentation_deps, depends: documentation_deps,
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc/technical', install_dir: htmldir / 'technical',
) )
endforeach endforeach

View File

@ -50,6 +50,6 @@ if get_option('docs').contains('html')
input: 'git-contacts.adoc', input: 'git-contacts.adoc',
output: 'git-contacts.html', output: 'git-contacts.html',
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )
endif endif

View File

@ -68,6 +68,6 @@ if get_option('docs').contains('html')
input: 'git-subtree.adoc', input: 'git-subtree.adoc',
output: 'git-subtree.html', output: 'git-subtree.html',
install: true, install: true,
install_dir: get_option('datadir') / 'doc/git-doc', install_dir: htmldir,
) )
endif endif

View File

@ -768,13 +768,18 @@ if test_output_directory == ''
test_output_directory = meson.project_build_root() / 'test-output' test_output_directory = meson.project_build_root() / 'test-output'
endif endif


htmldir = get_option('htmldir')
if htmldir == ''
htmldir = get_option('datadir') / 'doc/git-doc'
endif

# These variables are used for building libgit.a. # These variables are used for building libgit.a.
libgit_c_args = [ libgit_c_args = [
'-DBINDIR="' + get_option('bindir') + '"', '-DBINDIR="' + get_option('bindir') + '"',
'-DDEFAULT_GIT_TEMPLATE_DIR="' + get_option('datadir') / 'git-core/templates' + '"', '-DDEFAULT_GIT_TEMPLATE_DIR="' + get_option('datadir') / 'git-core/templates' + '"',
'-DFALLBACK_RUNTIME_PREFIX="' + get_option('prefix') + '"', '-DFALLBACK_RUNTIME_PREFIX="' + get_option('prefix') + '"',
'-DGIT_HOST_CPU="' + host_machine.cpu_family() + '"', '-DGIT_HOST_CPU="' + host_machine.cpu_family() + '"',
'-DGIT_HTML_PATH="' + get_option('datadir') / 'doc/git-doc"', '-DGIT_HTML_PATH="' + htmldir + '"',
'-DGIT_INFO_PATH="' + get_option('infodir') + '"', '-DGIT_INFO_PATH="' + get_option('infodir') + '"',
'-DGIT_LOCALE_PATH="' + get_option('localedir') + '"', '-DGIT_LOCALE_PATH="' + get_option('localedir') + '"',
'-DGIT_MAN_PATH="' + get_option('mandir') + '"', '-DGIT_MAN_PATH="' + get_option('mandir') + '"',

View File

@ -1,4 +1,6 @@
# Configuration for Git installation # Configuration for Git installation
option('htmldir', type: 'string', value: '',
description: 'Directory to install HTML docs to. Defaults to <datadir>/doc/git-doc')
option('perllibdir', type: 'string', value: '', option('perllibdir', type: 'string', value: '',
description: 'Directory to install perl lib to. Defaults to <datadir>/perl5') description: 'Directory to install perl lib to. Defaults to <datadir>/perl5')