diff options
Diffstat (limited to 'Documentation/meson.build')
| -rw-r--r-- | Documentation/meson.build | 509 |
1 files changed, 273 insertions, 236 deletions
diff --git a/Documentation/meson.build b/Documentation/meson.build index 2a26fa8a5f..9d24f2da54 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -1,214 +1,226 @@ manpages = { # Category 1. - 'git-add.txt' : 1, - 'git-am.txt' : 1, - 'git-annotate.txt' : 1, - 'git-apply.txt' : 1, - 'git-archimport.txt' : 1, - 'git-archive.txt' : 1, - 'git-bisect.txt' : 1, - 'git-blame.txt' : 1, - 'git-branch.txt' : 1, - 'git-bugreport.txt' : 1, - 'git-bundle.txt' : 1, - 'git-cat-file.txt' : 1, - 'git-check-attr.txt' : 1, - 'git-check-ignore.txt' : 1, - 'git-check-mailmap.txt' : 1, - 'git-checkout-index.txt' : 1, - 'git-checkout.txt' : 1, - 'git-check-ref-format.txt' : 1, - 'git-cherry-pick.txt' : 1, - 'git-cherry.txt' : 1, - 'git-citool.txt' : 1, - 'git-clean.txt' : 1, - 'git-clone.txt' : 1, - 'git-column.txt' : 1, - 'git-commit-graph.txt' : 1, - 'git-commit-tree.txt' : 1, - 'git-commit.txt' : 1, - 'git-config.txt' : 1, - 'git-count-objects.txt' : 1, - 'git-credential-cache--daemon.txt' : 1, - 'git-credential-cache.txt' : 1, - 'git-credential-store.txt' : 1, - 'git-credential.txt' : 1, - 'git-cvsexportcommit.txt' : 1, - 'git-cvsimport.txt' : 1, - 'git-cvsserver.txt' : 1, - 'git-daemon.txt' : 1, - 'git-describe.txt' : 1, - 'git-diagnose.txt' : 1, - 'git-diff-files.txt' : 1, - 'git-diff-index.txt' : 1, - 'git-difftool.txt' : 1, - 'git-diff-tree.txt' : 1, - 'git-diff.txt' : 1, - 'git-fast-export.txt' : 1, - 'git-fast-import.txt' : 1, - 'git-fetch-pack.txt' : 1, - 'git-fetch.txt' : 1, - 'git-filter-branch.txt' : 1, - 'git-fmt-merge-msg.txt' : 1, - 'git-for-each-ref.txt' : 1, - 'git-for-each-repo.txt' : 1, - 'git-format-patch.txt' : 1, - 'git-fsck-objects.txt' : 1, - 'git-fsck.txt' : 1, - 'git-fsmonitor--daemon.txt' : 1, - 'git-gc.txt' : 1, - 'git-get-tar-commit-id.txt' : 1, - 'git-grep.txt' : 1, - 'git-gui.txt' : 1, - 'git-hash-object.txt' : 1, - 'git-help.txt' : 1, - 'git-hook.txt' : 1, - 'git-http-backend.txt' : 1, - 'git-http-fetch.txt' : 1, - 'git-http-push.txt' : 1, - 'git-imap-send.txt' : 1, - 'git-index-pack.txt' : 1, - 'git-init-db.txt' : 1, - 'git-init.txt' : 1, - 'git-instaweb.txt' : 1, - 'git-interpret-trailers.txt' : 1, - 'git-log.txt' : 1, - 'git-ls-files.txt' : 1, - 'git-ls-remote.txt' : 1, - 'git-ls-tree.txt' : 1, - 'git-mailinfo.txt' : 1, - 'git-mailsplit.txt' : 1, - 'git-maintenance.txt' : 1, - 'git-merge-base.txt' : 1, - 'git-merge-file.txt' : 1, - 'git-merge-index.txt' : 1, - 'git-merge-one-file.txt' : 1, - 'git-mergetool--lib.txt' : 1, - 'git-mergetool.txt' : 1, - 'git-merge-tree.txt' : 1, - 'git-merge.txt' : 1, - 'git-mktag.txt' : 1, - 'git-mktree.txt' : 1, - 'git-multi-pack-index.txt' : 1, - 'git-mv.txt' : 1, - 'git-name-rev.txt' : 1, - 'git-notes.txt' : 1, - 'git-p4.txt' : 1, - 'git-pack-objects.txt' : 1, - 'git-pack-redundant.txt' : 1, - 'git-pack-refs.txt' : 1, - 'git-patch-id.txt' : 1, - 'git-prune-packed.txt' : 1, - 'git-prune.txt' : 1, - 'git-pull.txt' : 1, - 'git-push.txt' : 1, - 'git-quiltimport.txt' : 1, - 'git-range-diff.txt' : 1, - 'git-read-tree.txt' : 1, - 'git-rebase.txt' : 1, - 'git-receive-pack.txt' : 1, - 'git-reflog.txt' : 1, - 'git-refs.txt' : 1, - 'git-remote-ext.txt' : 1, - 'git-remote-fd.txt' : 1, - 'git-remote.txt' : 1, - 'git-repack.txt' : 1, - 'git-replace.txt' : 1, - 'git-replay.txt' : 1, - 'git-request-pull.txt' : 1, - 'git-rerere.txt' : 1, - 'git-reset.txt' : 1, - 'git-restore.txt' : 1, - 'git-revert.txt' : 1, - 'git-rev-list.txt' : 1, - 'git-rev-parse.txt' : 1, - 'git-rm.txt' : 1, - 'git-send-email.txt' : 1, - 'git-send-pack.txt' : 1, - 'git-shell.txt' : 1, - 'git-sh-i18n--envsubst.txt' : 1, - 'git-sh-i18n.txt' : 1, - 'git-shortlog.txt' : 1, - 'git-show-branch.txt' : 1, - 'git-show-index.txt' : 1, - 'git-show-ref.txt' : 1, - 'git-show.txt' : 1, - 'git-sh-setup.txt' : 1, - 'git-sparse-checkout.txt' : 1, - 'git-stage.txt' : 1, - 'git-stash.txt' : 1, - 'git-status.txt' : 1, - 'git-stripspace.txt' : 1, - 'git-submodule.txt' : 1, - 'git-svn.txt' : 1, - 'git-switch.txt' : 1, - 'git-symbolic-ref.txt' : 1, - 'git-tag.txt' : 1, - 'git-unpack-file.txt' : 1, - 'git-unpack-objects.txt' : 1, - 'git-update-index.txt' : 1, - 'git-update-ref.txt' : 1, - 'git-update-server-info.txt' : 1, - 'git-upload-archive.txt' : 1, - 'git-upload-pack.txt' : 1, - 'git-var.txt' : 1, - 'git-verify-commit.txt' : 1, - 'git-verify-pack.txt' : 1, - 'git-verify-tag.txt' : 1, - 'git-version.txt' : 1, - 'git-web--browse.txt' : 1, - 'git-whatchanged.txt' : 1, - 'git-worktree.txt' : 1, - 'git-write-tree.txt' : 1, - 'git.txt' : 1, - 'gitk.txt' : 1, - 'gitweb.txt' : 1, - 'scalar.txt' : 1, + 'git-add.adoc' : 1, + 'git-am.adoc' : 1, + 'git-annotate.adoc' : 1, + 'git-apply.adoc' : 1, + 'git-archimport.adoc' : 1, + 'git-archive.adoc' : 1, + 'git-backfill.adoc' : 1, + 'git-bisect.adoc' : 1, + 'git-blame.adoc' : 1, + 'git-branch.adoc' : 1, + 'git-bugreport.adoc' : 1, + 'git-bundle.adoc' : 1, + 'git-cat-file.adoc' : 1, + 'git-check-attr.adoc' : 1, + 'git-check-ignore.adoc' : 1, + 'git-check-mailmap.adoc' : 1, + 'git-checkout-index.adoc' : 1, + 'git-checkout.adoc' : 1, + 'git-check-ref-format.adoc' : 1, + 'git-cherry-pick.adoc' : 1, + 'git-cherry.adoc' : 1, + 'git-citool.adoc' : 1, + 'git-clean.adoc' : 1, + 'git-clone.adoc' : 1, + 'git-column.adoc' : 1, + 'git-commit-graph.adoc' : 1, + 'git-commit-tree.adoc' : 1, + 'git-commit.adoc' : 1, + 'git-config.adoc' : 1, + 'git-count-objects.adoc' : 1, + 'git-credential-cache--daemon.adoc' : 1, + 'git-credential-cache.adoc' : 1, + 'git-credential-store.adoc' : 1, + 'git-credential.adoc' : 1, + 'git-cvsexportcommit.adoc' : 1, + 'git-cvsimport.adoc' : 1, + 'git-cvsserver.adoc' : 1, + 'git-daemon.adoc' : 1, + 'git-describe.adoc' : 1, + 'git-diagnose.adoc' : 1, + 'git-diff-files.adoc' : 1, + 'git-diff-index.adoc' : 1, + 'git-diff-pairs.adoc' : 1, + 'git-difftool.adoc' : 1, + 'git-diff-tree.adoc' : 1, + 'git-diff.adoc' : 1, + 'git-fast-export.adoc' : 1, + 'git-fast-import.adoc' : 1, + 'git-fetch-pack.adoc' : 1, + 'git-fetch.adoc' : 1, + 'git-filter-branch.adoc' : 1, + 'git-fmt-merge-msg.adoc' : 1, + 'git-for-each-ref.adoc' : 1, + 'git-for-each-repo.adoc' : 1, + 'git-format-patch.adoc' : 1, + 'git-fsck-objects.adoc' : 1, + 'git-fsck.adoc' : 1, + 'git-fsmonitor--daemon.adoc' : 1, + 'git-gc.adoc' : 1, + 'git-get-tar-commit-id.adoc' : 1, + 'git-grep.adoc' : 1, + 'git-gui.adoc' : 1, + 'git-hash-object.adoc' : 1, + 'git-help.adoc' : 1, + 'git-hook.adoc' : 1, + 'git-http-backend.adoc' : 1, + 'git-http-fetch.adoc' : 1, + 'git-http-push.adoc' : 1, + 'git-imap-send.adoc' : 1, + 'git-index-pack.adoc' : 1, + 'git-init-db.adoc' : 1, + 'git-init.adoc' : 1, + 'git-instaweb.adoc' : 1, + 'git-interpret-trailers.adoc' : 1, + 'git-last-modified.adoc' : 1, + 'git-log.adoc' : 1, + 'git-ls-files.adoc' : 1, + 'git-ls-remote.adoc' : 1, + 'git-ls-tree.adoc' : 1, + 'git-mailinfo.adoc' : 1, + 'git-mailsplit.adoc' : 1, + 'git-maintenance.adoc' : 1, + 'git-merge-base.adoc' : 1, + 'git-merge-file.adoc' : 1, + 'git-merge-index.adoc' : 1, + 'git-merge-one-file.adoc' : 1, + 'git-mergetool--lib.adoc' : 1, + 'git-mergetool.adoc' : 1, + 'git-merge-tree.adoc' : 1, + 'git-merge.adoc' : 1, + 'git-mktag.adoc' : 1, + 'git-mktree.adoc' : 1, + 'git-multi-pack-index.adoc' : 1, + 'git-mv.adoc' : 1, + 'git-name-rev.adoc' : 1, + 'git-notes.adoc' : 1, + 'git-p4.adoc' : 1, + 'git-pack-objects.adoc' : 1, + 'git-pack-refs.adoc' : 1, + 'git-patch-id.adoc' : 1, + 'git-prune-packed.adoc' : 1, + 'git-prune.adoc' : 1, + 'git-pull.adoc' : 1, + 'git-push.adoc' : 1, + 'git-quiltimport.adoc' : 1, + 'git-range-diff.adoc' : 1, + 'git-read-tree.adoc' : 1, + 'git-rebase.adoc' : 1, + 'git-receive-pack.adoc' : 1, + 'git-reflog.adoc' : 1, + 'git-refs.adoc' : 1, + 'git-remote-ext.adoc' : 1, + 'git-remote-fd.adoc' : 1, + 'git-remote.adoc' : 1, + 'git-repack.adoc' : 1, + 'git-replace.adoc' : 1, + 'git-replay.adoc' : 1, + 'git-repo.adoc' : 1, + 'git-request-pull.adoc' : 1, + 'git-rerere.adoc' : 1, + 'git-reset.adoc' : 1, + 'git-restore.adoc' : 1, + 'git-revert.adoc' : 1, + 'git-rev-list.adoc' : 1, + 'git-rev-parse.adoc' : 1, + 'git-rm.adoc' : 1, + 'git-send-email.adoc' : 1, + 'git-send-pack.adoc' : 1, + 'git-shell.adoc' : 1, + 'git-sh-i18n--envsubst.adoc' : 1, + 'git-sh-i18n.adoc' : 1, + 'git-shortlog.adoc' : 1, + 'git-show-branch.adoc' : 1, + 'git-show-index.adoc' : 1, + 'git-show-ref.adoc' : 1, + 'git-show.adoc' : 1, + 'git-sh-setup.adoc' : 1, + 'git-sparse-checkout.adoc' : 1, + 'git-stage.adoc' : 1, + 'git-stash.adoc' : 1, + 'git-status.adoc' : 1, + 'git-stripspace.adoc' : 1, + 'git-submodule.adoc' : 1, + 'git-svn.adoc' : 1, + 'git-switch.adoc' : 1, + 'git-symbolic-ref.adoc' : 1, + 'git-tag.adoc' : 1, + 'git-unpack-file.adoc' : 1, + 'git-unpack-objects.adoc' : 1, + 'git-update-index.adoc' : 1, + 'git-update-ref.adoc' : 1, + 'git-update-server-info.adoc' : 1, + 'git-upload-archive.adoc' : 1, + 'git-upload-pack.adoc' : 1, + 'git-var.adoc' : 1, + 'git-verify-commit.adoc' : 1, + 'git-verify-pack.adoc' : 1, + 'git-verify-tag.adoc' : 1, + 'git-version.adoc' : 1, + 'git-web--browse.adoc' : 1, + 'git-worktree.adoc' : 1, + 'git-write-tree.adoc' : 1, + 'git.adoc' : 1, + 'gitk.adoc' : 1, + 'gitweb.adoc' : 1, + 'scalar.adoc' : 1, # Category 5. - 'gitattributes.txt' : 5, - 'gitformat-bundle.txt' : 5, - 'gitformat-chunk.txt' : 5, - 'gitformat-commit-graph.txt' : 5, - 'gitformat-index.txt' : 5, - 'gitformat-pack.txt' : 5, - 'gitformat-signature.txt' : 5, - 'githooks.txt' : 5, - 'gitignore.txt' : 5, - 'gitmailmap.txt' : 5, - 'gitmodules.txt' : 5, - 'gitprotocol-capabilities.txt' : 5, - 'gitprotocol-common.txt' : 5, - 'gitprotocol-http.txt' : 5, - 'gitprotocol-pack.txt' : 5, - 'gitprotocol-v2.txt' : 5, - 'gitrepository-layout.txt' : 5, - 'gitweb.conf.txt' : 5, + 'gitattributes.adoc' : 5, + 'gitformat-bundle.adoc' : 5, + 'gitformat-chunk.adoc' : 5, + 'gitformat-commit-graph.adoc' : 5, + 'gitformat-index.adoc' : 5, + 'gitformat-loose.adoc' : 5, + 'gitformat-pack.adoc' : 5, + 'gitformat-signature.adoc' : 5, + 'githooks.adoc' : 5, + 'gitignore.adoc' : 5, + 'gitmailmap.adoc' : 5, + 'gitmodules.adoc' : 5, + 'gitprotocol-capabilities.adoc' : 5, + 'gitprotocol-common.adoc' : 5, + 'gitprotocol-http.adoc' : 5, + 'gitprotocol-pack.adoc' : 5, + 'gitprotocol-v2.adoc' : 5, + 'gitrepository-layout.adoc' : 5, + 'gitweb.conf.adoc' : 5, # Category 7. - 'gitcli.txt' : 7, - 'gitcore-tutorial.txt' : 7, - 'gitcredentials.txt' : 7, - 'gitcvs-migration.txt' : 7, - 'gitdiffcore.txt' : 7, - 'giteveryday.txt' : 7, - 'gitfaq.txt' : 7, - 'gitglossary.txt' : 7, - 'gitpacking.txt' : 7, - 'gitnamespaces.txt' : 7, - 'gitremote-helpers.txt' : 7, - 'gitrevisions.txt' : 7, - 'gitsubmodules.txt' : 7, - 'gittutorial-2.txt' : 7, - 'gittutorial.txt' : 7, - 'gitworkflows.txt' : 7, + 'gitcli.adoc' : 7, + 'gitcore-tutorial.adoc' : 7, + 'gitcredentials.adoc' : 7, + 'gitcvs-migration.adoc' : 7, + 'gitdiffcore.adoc' : 7, + 'giteveryday.adoc' : 7, + 'gitfaq.adoc' : 7, + 'gitglossary.adoc' : 7, + 'gitpacking.adoc' : 7, + 'gitnamespaces.adoc' : 7, + 'gitremote-helpers.adoc' : 7, + 'gitrevisions.adoc' : 7, + 'gitsubmodules.adoc' : 7, + 'gittutorial-2.adoc' : 7, + 'gittutorial.adoc' : 7, + 'gitworkflows.adoc' : 7, } +manpages_breaking_changes = { + 'git-pack-redundant.adoc' : 1, + 'git-whatchanged.adoc' : 1, +} + +if not get_option('breaking_changes') + manpages += manpages_breaking_changes +endif + docs_backend = get_option('docs_backend') if docs_backend == 'auto' - if find_program('asciidoc', required: false).found() + if find_program('asciidoc', dirs: program_path, native: true, required: false).found() docs_backend = 'asciidoc' - elif find_program('asciidoctor', required: false).found() + elif find_program('asciidoctor', dirs: program_path, native: true, required: false).found() docs_backend = 'asciidoctor' else error('Neither asciidoc nor asciidoctor were found.') @@ -216,7 +228,7 @@ if docs_backend == 'auto' endif if docs_backend == 'asciidoc' - asciidoc = find_program('asciidoc', required: true) + asciidoc = find_program('asciidoc', dirs: program_path, native: true) asciidoc_html = 'xhtml11' asciidoc_docbook = 'docbook' xmlto_extra = [ ] @@ -241,11 +253,21 @@ if docs_backend == 'asciidoc' '--attribute=build_dir=' + meson.current_build_dir(), ] + pager_opt = get_option('default_pager') + if pager_opt != '' and pager_opt != 'less' + asciidoc_common_options += '-agit-default-pager=' + pager_opt + endif + + editor_opt = get_option('default_editor') + if editor_opt != '' and editor_opt != 'vi' + asciidoc_common_options += '-agit-default-editor=' + editor_opt + endif + documentation_deps = [ asciidoc_conf, ] elif docs_backend == 'asciidoctor' - asciidoctor = find_program('asciidoctor', required: true) + asciidoctor = find_program('asciidoctor', dirs: program_path, native: true) asciidoc_html = 'xhtml5' asciidoc_docbook = 'docbook5' xmlto_extra = [ @@ -278,37 +300,50 @@ elif docs_backend == 'asciidoctor' '--require', 'asciidoctor-extensions', ] + pager_opt = get_option('default_pager') + if pager_opt != '' and pager_opt != 'less' + asciidoc_common_options += '-agit-default-pager=' + pager_opt + endif + + editor_opt = get_option('default_editor') + if editor_opt != '' and editor_opt != 'vi' + asciidoc_common_options += '-agit-default-editor=' + editor_opt + endif + documentation_deps = [ asciidoctor_extensions, ] endif -git = find_program('git', required: false) -xmlto = find_program('xmlto') +if get_option('breaking_changes') + asciidoc_common_options += ['--attribute', 'with-breaking-changes'] +endif + +xmlto = find_program('xmlto', dirs: program_path, native: true) cmd_lists = [ - 'cmds-ancillaryinterrogators.txt', - 'cmds-ancillarymanipulators.txt', - 'cmds-mainporcelain.txt', - 'cmds-plumbinginterrogators.txt', - 'cmds-plumbingmanipulators.txt', - 'cmds-synchingrepositories.txt', - 'cmds-synchelpers.txt', - 'cmds-guide.txt', - 'cmds-developerinterfaces.txt', - 'cmds-userinterfaces.txt', - 'cmds-purehelpers.txt', - 'cmds-foreignscminterface.txt', + 'cmds-ancillaryinterrogators.adoc', + 'cmds-ancillarymanipulators.adoc', + 'cmds-mainporcelain.adoc', + 'cmds-plumbinginterrogators.adoc', + 'cmds-plumbingmanipulators.adoc', + 'cmds-synchingrepositories.adoc', + 'cmds-synchelpers.adoc', + 'cmds-guide.adoc', + 'cmds-developerinterfaces.adoc', + 'cmds-userinterfaces.adoc', + 'cmds-purehelpers.adoc', + 'cmds-foreignscminterface.adoc', ] documentation_deps += custom_target( command: [ - perl, + shell, '@INPUT@', meson.project_source_root(), meson.current_build_dir(), ] + cmd_lists, - input: 'cmd-list.perl', + input: 'cmd-list.sh', output: cmd_lists ) @@ -325,7 +360,7 @@ foreach mode : [ 'diff', 'merge' ] 'MERGE_TOOLS_DIR=' + meson.project_source_root() / 'mergetools', ], input: 'generate-mergetool-list.sh', - output: 'mergetools-' + mode + '.txt', + output: 'mergetools-' + mode + '.adoc', ) endforeach @@ -343,8 +378,7 @@ foreach manpage, category : manpages output: fs.stem(manpage) + '.xml', ) - manpage_path = fs.stem(manpage) + '.' + category.to_string() - manpage_target = custom_target( + doc_targets += custom_target( command: [ xmlto, '-m', '@INPUT0@', @@ -360,14 +394,14 @@ foreach manpage, category : manpages 'manpage-normal.xsl', 'manpage-bold-literal.xsl', ], - output: manpage_path, + output: fs.stem(manpage) + '.' + category.to_string(), install: true, install_dir: get_option('mandir') / 'man' + category.to_string(), ) endif if get_option('docs').contains('html') - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--doctype=manpage', @@ -405,7 +439,7 @@ if get_option('docs').contains('html') pointing_to: 'git.html', ) - xsltproc = find_program('xsltproc') + xsltproc = find_program('xsltproc', dirs: program_path, native: true) user_manual_xml = custom_target( command: asciidoc_common_options + [ @@ -414,12 +448,12 @@ if get_option('docs').contains('html') '--out-file=@OUTPUT@', '@INPUT@', ], - input: 'user-manual.txt', + input: 'user-manual.adoc', output: 'user-manual.xml', depends: documentation_deps, ) - custom_target( + doc_targets += custom_target( command: [ xsltproc, '--xinclude', @@ -436,18 +470,19 @@ if get_option('docs').contains('html') ) articles = [ - 'DecisionMaking.txt', - 'MyFirstContribution.txt', - 'MyFirstObjectWalk.txt', - 'ReviewingGuidelines.txt', + 'BreakingChanges.adoc', + 'DecisionMaking.adoc', + 'MyFirstContribution.adoc', + 'MyFirstObjectWalk.adoc', + 'ReviewingGuidelines.adoc', 'SubmittingPatches', - 'ToolsForGit.txt', - 'git-bisect-lk2009.txt', - 'git-tools.txt', + 'ToolsForGit.adoc', + 'git-bisect-lk2009.adoc', + 'git-tools.adoc', ] foreach article : articles - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--out-file=@OUTPUT@', @@ -475,8 +510,10 @@ endif # Sanity check that we are not missing any tests present in 't/'. This check # only runs once at configure time and is thus best-effort, only. Furthermore, # it only verifies man pages for the sake of simplicity. -configured_manpages = manpages.keys() + [ 'git-bisect-lk2009.txt', 'git-tools.txt' ] -actual_manpages = run_command(shell, '-c', 'ls git*.txt scalar.txt', +configured_manpages = manpages.keys() +configured_manpages += manpages_breaking_changes.keys() +configured_manpages += [ 'git-bisect-lk2009.adoc', 'git-tools.adoc' ] +actual_manpages = run_command(shell, '-c', 'ls git*.adoc scalar.adoc', check: true, env: script_environment, ).stdout().strip().split('\n') |
