@@ -42,11 +42,16 @@ load("@pip_process//:requirements.bzl", "all_requirements", "requirement")
4242load ("@rules_python//sphinxdocs:sphinx.bzl" , "sphinx_build_binary" , "sphinx_docs" )
4343load ("@rules_python//sphinxdocs:sphinx_docs_library.bzl" , "sphinx_docs_library" )
4444load ("@score_python_basics//:defs.bzl" , "score_virtualenv" )
45- load ("//src/extensions:score_source_code_linker/ collect_source_files.bzl" , "parse_source_files_for_needs_links" )
45+ load ("//src/extensions/score_source_code_linker: collect_source_files.bzl" , "parse_source_files_for_needs_links" )
4646
4747sphinx_requirements = all_requirements + [
4848 "//src:plantuml_for_python" ,
49- "//src/extensions:score_extensions" ,
49+ "//src/extensions:score_plantuml" ,
50+ "//src/extensions/score_draw_uml_funcs:score_draw_uml_funcs" ,
51+ "//src/extensions/score_header_service:score_header_service" ,
52+ "//src/extensions/score_layout:score_layout" ,
53+ "//src/extensions/score_metamodel:score_metamodel" ,
54+ "//src/extensions/score_source_code_linker:score_source_code_linker" ,
5055]
5156
5257def docs (source_files_to_scan_for_needs_links = None , source_dir = "docs" , conf_dir = "docs" , build_dir_for_incremental = "_build" , docs_targets = []):
@@ -56,6 +61,11 @@ def docs(source_files_to_scan_for_needs_links = None, source_dir = "docs", conf_
5661 Current restrictions:
5762 * only callable from 'docs/BUILD'
5863 """
64+ sphinx_build_binary (
65+ name = "sphinx_build" ,
66+ visibility = ["//visibility:public" ],
67+ deps = sphinx_requirements ,
68+ )
5969
6070 # Parse source files for needs links
6171 # This needs to be created to generate a target, otherwise it won't execute as dependency for other macros
@@ -64,7 +74,8 @@ def docs(source_files_to_scan_for_needs_links = None, source_dir = "docs", conf_
6474 srcs_and_deps = source_files_to_scan_for_needs_links if source_files_to_scan_for_needs_links else [],
6575 )
6676
67- # TODO: Explain what this does / how it works?
77+ # We are iterating over all provided 'targets' in order to allow for automatic generation of them without
78+ # needing to modify the underlying 'docs.bzl' file.
6879 for target in docs_targets :
6980 suffix = "_" + target ["suffix" ] if target ["suffix" ] else ""
7081 external_needs_deps = target .get ("target" , [])
@@ -105,12 +116,12 @@ def _incremental(incremental_name = "incremental", live_name = "live_preview", s
105116 extra_dependencies: Additional dependencies besides the centrally maintained "sphinx_requirements".
106117 """
107118
108- dependencies = sphinx_requirements + extra_dependencies
119+ dependencies = sphinx_requirements + extra_dependencies + [ "@rules_python//python/runfiles" ]
109120 py_binary (
110121 name = incremental_name ,
111122 srcs = ["//src:incremental.py" ],
112123 deps = dependencies ,
113- data = [":score_source_code_parser" ] + external_needs_deps ,
124+ data = [":score_source_code_parser" ] + dependencies ,
114125 env = {
115126 "SOURCE_DIRECTORY" : source_dir ,
116127 "CONF_DIRECTORY" : conf_dir ,
@@ -144,7 +155,6 @@ def _ide_support():
144155def _docs (name = "docs" , format = "html" , external_needs_deps = list (), external_needs_def = dict ()):
145156 ext_needs_arg = "--define=external_needs_source=" + json .encode (external_needs_def )
146157
147- #fail(ext_needs_arg)
148158 sphinx_docs (
149159 name = name ,
150160 srcs = native .glob ([
@@ -157,7 +167,6 @@ def _docs(name = "docs", format = "html", external_needs_deps = list(), external
157167 "**/*.need" ,
158168 # Include the docs src itself
159169 # Note: we don't use py_library here to make it as close as possible to docs:incremental.
160- "**/*.py" ,
161170 "**/*.yaml" ,
162171 "**/*.json" ,
163172 "**/*.csv" ,
@@ -170,7 +179,7 @@ def _docs(name = "docs", format = "html", external_needs_deps = list(), external
170179 formats = [
171180 format ,
172181 ],
173- sphinx = "//src :sphinx_build" ,
182+ sphinx = ":sphinx_build" ,
174183 tags = [
175184 "manual" ,
176185 ],
0 commit comments