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',
depends: documentation_deps,
install: true,
install_dir: get_option('datadir') / 'doc/git-doc',
install_dir: htmldir,
)

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

View File

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

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

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

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

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


View File

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

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

View File

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

View File

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

View File

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

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

# These variables are used for building libgit.a.
libgit_c_args = [
'-DBINDIR="' + get_option('bindir') + '"',
'-DDEFAULT_GIT_TEMPLATE_DIR="' + get_option('datadir') / 'git-core/templates' + '"',
'-DFALLBACK_RUNTIME_PREFIX="' + get_option('prefix') + '"',
'-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_LOCALE_PATH="' + get_option('localedir') + '"',
'-DGIT_MAN_PATH="' + get_option('mandir') + '"',

View File

@ -1,4 +1,6 @@
# 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: '',
description: 'Directory to install perl lib to. Defaults to <datadir>/perl5')