diff --git a/docs/meson.build b/docs/meson.build index 73693353d..9bd80ba7c 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -15,10 +15,25 @@ docs_gen = custom_target( build_by_default: true, install: false) +refman_gen = custom_target( + 'gen_refman', + input: files('sitemap.txt'), + output: 'configured_sitemap.txt', + depfile: 'reman_dep.d', + command: [ + find_program('./genrefman.py'), + '-g', 'md', + '-s', '@INPUT@', + '-o', '@OUTPUT@', + '--depfile', '@DEPFILE@', + '--force-color', + ], +) + hotdoc = import('hotdoc') documentation = hotdoc.generate_doc(meson.project_name(), project_version: meson.project_version(), - sitemap: 'sitemap.txt', + sitemap: refman_gen, build_by_default: true, depends: docs_gen, index: 'markdown/index.md', @@ -30,6 +45,7 @@ documentation = hotdoc.generate_doc(meson.project_name(), git_upload_repository: 'git@github.com:mesonbuild/mesonbuild.github.io.git', edit_on_github_repository: 'https://github.com/mesonbuild/meson', syntax_highlighting_activate: true, + keep_markup_in_code_blocks: true, ) run_target('upload', diff --git a/docs/sitemap.txt b/docs/sitemap.txt index b659a1a8a..a2790eb0a 100644 --- a/docs/sitemap.txt +++ b/docs/sitemap.txt @@ -71,6 +71,7 @@ index.md Creating-OSX-packages.md Creating-Linux-binaries.md Project-templates.md + @REFMAN_PLACEHOLDER@ Reference-manual.md Reference-tables.md Style-guide.md diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py index 19a1728c7..609b8da3b 100644 --- a/mesonbuild/modules/hotdoc.py +++ b/mesonbuild/modules/hotdoc.py @@ -110,7 +110,7 @@ class HotdocTargetBuilder: self.check_extra_arg_type(arg, v) return - valid_types = (str, bool, mesonlib.File, build.IncludeDirs, build.CustomTarget, build.BuildTarget) + valid_types = (str, bool, mesonlib.File, build.IncludeDirs, build.CustomTarget, build.CustomTargetIndex, build.BuildTarget) if not isinstance(value, valid_types): raise InvalidArguments('Argument "{}={}" should be of type: {}.'.format( arg, value, [t.__name__ for t in valid_types])) @@ -210,6 +210,8 @@ class HotdocTargetBuilder: self.add_extension_paths(dep.extra_extension_paths) elif isinstance(dep, build.CustomTarget) or isinstance(dep, build.BuildTarget): self._dependencies.append(dep) + elif isinstance(dep, build.CustomTargetIndex): + self._dependencies.append(dep.target) return [f.strip('-I') for f in cflags] @@ -239,9 +241,12 @@ class HotdocTargetBuilder: cmd.append(os.path.join(self.builddir, arg.get_curdir(), inc_dir)) continue - elif isinstance(arg, build.CustomTarget) or isinstance(arg, build.BuildTarget): + elif isinstance(arg, (build.BuildTarget, build.CustomTarget)): self._dependencies.append(arg) arg = self.interpreter.backend.get_target_filename_abs(arg) + elif isinstance(arg, build.CustomTargetIndex): + self._dependencies.append(arg.target) + arg = self.interpreter.backend.get_target_filename_abs(arg) cmd.append(arg) @@ -262,7 +267,7 @@ class HotdocTargetBuilder: res.append(self.ensure_file(val)) return res - if not isinstance(value, mesonlib.File): + if isinstance(value, str): return mesonlib.File.from_source_file(self.sourcedir, self.subdir, value) return value @@ -288,7 +293,7 @@ class HotdocTargetBuilder: def make_targets(self): self.check_forbidden_args() - file_types = (str, mesonlib.File) + file_types = (str, mesonlib.File, build.CustomTarget, build.CustomTargetIndex) self.process_known_arg("--index", file_types, mandatory=True, value_processor=self.ensure_file) self.process_known_arg("--project-version", str, mandatory=True) self.process_known_arg("--sitemap", file_types, mandatory=True, value_processor=self.ensure_file)