diff --git a/MODULE.bazel b/MODULE.bazel index e35c7e2e9..9b85d4112 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -46,6 +46,7 @@ bazel_dep(name = "emboss", version = "2024.1017.203246", repo_name = "com_google # LINT.ThenChange(/pw_package/py/pw_package/packages/emboss.py:emboss) bazel_dep(name = "hedron_compile_commands", dev_dependency = True) +bazel_dep(name = "rules_doxygen", version = "2.0.0", dev_dependency = True) # Repository overrides # ==================== @@ -351,3 +352,54 @@ cipd_repository( path = "pigweed/pw_transfer_test_binaries/${os=linux}-${arch=amd64}", tag = "version:pw_transfer_test_binaries_528098d588f307881af83f769207b8e6e1b57520-linux-amd64-cipd.cipd", ) + +# Doxygen setup +# ============= + +# Get executables. +cipd_repository( + name = "doxygen_linux_amd64", + path = "pigweed/third_party/doxygen/linux-amd64", + # TODO: b/384045900 - Update to a fresher executable. + tag = "version:1.9.6-1", +) + +cipd_repository( + name = "doxygen_mac_amd64", + path = "pigweed/third_party/doxygen/mac-amd64", + # TODO: b/384045900 - Update to a fresher executable. + tag = "version:1.9.6-1", +) + +cipd_repository( + name = "doxygen_mac_arm64", + path = "pigweed/third_party/doxygen/mac-arm64", + tag = "git_revision:401de7aa290e21f557e28515a5887fc40a092f62", +) + +cipd_repository( + name = "doxygen_windows_amd64", + path = "pigweed/third_party/doxygen/windows-amd64", + # TODO: b/384045900 - Update to a fresher executable. + tag = "version:1.9.6-1", +) + +# Configure rules_doxygen to use our executables. +doxygen_extension = use_extension("@rules_doxygen//:extensions.bzl", "doxygen_extension", dev_dependency = True) +doxygen_extension.configuration( + executable = "@doxygen_linux_amd64//:bin/doxygen", + platform = "linux", +) +doxygen_extension.configuration( + executable = "@doxygen_mac_amd64//:doxygen", + platform = "mac", +) +doxygen_extension.configuration( + executable = "@doxygen_mac_arm64//:doxygen", + platform = "mac-arm", +) +doxygen_extension.configuration( + executable = "@doxygen_windows_amd64//:windows.exe", + platform = "windows", +) +use_repo(doxygen_extension, "doxygen") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index fd15d58d1..fd6ee1cf0 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -105,6 +105,8 @@ "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_doxygen/2.0.0/MODULE.bazel": "6a03ed1238e0b59a9a0fb5517ee76af5c2f184d86ca6211c0a4f58209d87e822", + "https://bcr.bazel.build/modules/rules_doxygen/2.0.0/source.json": "d51f0aa27a27a94c032ae29171128c54bb17d07e121ee14bef9540d779d278c4", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", @@ -893,6 +895,63 @@ ] } }, + "@@rules_doxygen+//:extensions.bzl%doxygen_extension": { + "general": { + "bzlTransitiveDigest": "Jb4pRfRO631HXPSLw3DudBVW3VSgETeTY7bpkGrp4z4=", + "usagesDigest": "C+e2p5+sKndB4Cv6qFry+JfwVSfSeHhsDs1iYlwfQmI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "doxygen": { + "bzlFile": "@@rules_doxygen+//:extensions.bzl", + "ruleClassName": "doxygen_repository", + "attributes": { + "versions": [ + "", + "", + "", + "", + "1.12.0" + ], + "sha256s": [ + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000", + "0000000000000000000000000000000000000000000000000000000000000000", + "3c42c3f3fb206732b503862d9c9c11978920a8214f223a3950bbf2520be5f647" + ], + "platforms": [ + "linux", + "mac", + "mac-arm", + "windows", + "linux-arm" + ], + "executables": [ + "'@@+_repo_rules+doxygen_linux_amd64//:bin/doxygen'", + "'@@+_repo_rules+doxygen_mac_amd64//:doxygen'", + "'@@+_repo_rules+doxygen_mac_arm64//:doxygen'", + "'@@+_repo_rules+doxygen_windows_amd64//:windows.exe'", + "" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_doxygen+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_doxygen+", + "rules_doxygen", + "rules_doxygen+" + ] + ] + } + }, "@@rules_fuzzing+//fuzzing/private:extensions.bzl%non_module_dependencies": { "general": { "bzlTransitiveDigest": "pkrbyh5sNG44812OoOPN82CzTlQh8VgkdLgGuzdZwIw=", diff --git a/docs/BUILD.bazel b/docs/BUILD.bazel index 7c5573507..006e19bc7 100644 --- a/docs/BUILD.bazel +++ b/docs/BUILD.bazel @@ -13,6 +13,7 @@ # the License. load("@bazel_skylib//rules:copy_directory.bzl", "copy_directory") +load("@doxygen//:doxygen.bzl", "doxygen") load("@rules_python//sphinxdocs:sphinx.bzl", "sphinx_build_binary", "sphinx_docs") load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") load("//pw_build:compatibility.bzl", "incompatible_with_mcu") @@ -145,6 +146,163 @@ sphinx_docs_library( target_compatible_with = incompatible_with_mcu(), ) +filegroup( + name = "doxygen_srcs", + srcs = [ + "//pw_alignment:doxygen", + "//pw_allocator:doxygen", + "//pw_analog:doxygen", + "//pw_async:doxygen", + "//pw_async2:doxygen", + "//pw_async2_basic:doxygen", + "//pw_async_basic:doxygen", + "//pw_base64:doxygen", + "//pw_bluetooth:doxygen", + "//pw_bluetooth_proxy:doxygen", + "//pw_build:doxygen", + "//pw_bytes:doxygen", + "//pw_channel:doxygen", + "//pw_chre:doxygen", + "//pw_chrono:doxygen", + "//pw_clock_tree:doxygen", + "//pw_clock_tree_mcuxpresso:doxygen", + "//pw_containers:doxygen", + "//pw_crypto:doxygen", + "//pw_digital_io:doxygen", + "//pw_display:doxygen", + "//pw_elf:doxygen", + "//pw_function:doxygen", + "//pw_hdlc:doxygen", + "//pw_hex_dump:doxygen", + "//pw_i2c:doxygen", + "//pw_i2c_linux:doxygen", + "//pw_interrupt:doxygen", + "//pw_json:doxygen", + "//pw_kvs:doxygen", + "//pw_log:doxygen", + "//pw_log_string:doxygen", + "//pw_log_tokenized:doxygen", + "//pw_malloc:doxygen", + "//pw_multibuf:doxygen", + "//pw_numeric:doxygen", + "//pw_perf_test:doxygen", + "//pw_polyfill:doxygen", + "//pw_preprocessor:doxygen", + "//pw_protobuf:doxygen", + "//pw_random:doxygen", + "//pw_rpc:doxygen", + "//pw_span:doxygen", + "//pw_spi:doxygen", + "//pw_status:doxygen", + "//pw_stream:doxygen", + "//pw_stream_uart_linux:doxygen", + "//pw_string:doxygen", + "//pw_sync:doxygen", + "//pw_sys_io:doxygen", + "//pw_system:doxygen", + "//pw_thread:doxygen", + "//pw_tokenizer:doxygen", + "//pw_toolchain:doxygen", + "//pw_transfer:doxygen", + "//pw_uart:doxygen", + "//pw_unit_test:doxygen", + "//pw_varint:doxygen", + "//pw_work_queue:doxygen", + ], +) + +# Run Doxygen on the gathered headers to generate XML. +doxygen( + name = "doxygen_build", + srcs = [ + ":doxygen_srcs", + ], + outs = [ + "xml", + ], + # TODO: b/384047922 - Move configuration to a dedicated Doxyfile. + configurations = [ + # Use `leading-asterisk` even though `leading-slashes` is more + # semantically accurate (all Doxygen comments in Pigweed codebase + # start with `///`). See the discussion about undocumented Doxygen + # behavior at the bottom of this section: + # https://breathe.readthedocs.io/en/latest/markups.html#aliases + "ALIASES = \"rst=^^@verbatim embed:rst:leading-asterisk^^\"", + "ALIASES += \"endrst=@endverbatim\"", + "ALIASES += \"rstref{1}=@verbatim embed:rst:inline :ref:`\\1` @endverbatim\"", + "ALIASES += \"crossref{3}=@verbatim embed:rst:inline :\\1:\\2:`\\3` @endverbatim\"", + "ALIASES += \"c_macro{1}=@crossref{c,macro,\\1}\"", + "ALIASES += \"cpp_class{1}=@crossref{cpp,class,\\1}\"", + "ALIASES += \"cpp_func{1}=@crossref{cpp,func,\\1}\"", + "ALIASES += \"cpp_type{1}=@crossref{cpp,type,\\1}\"", + "ALIASES += \"cpp_enum{1}=@crossref{cpp,type,\\1}\"", + "ALIASES += \"pw_status{1}=@crossref{c,enumerator,\\1}\"", + "CASE_SENSE_NAMES = NO", + "ENABLE_PREPROCESSING = YES", + "EXTRACT_PACKAGE = YES", + "EXTRACT_PRIV_VIRTUAL = YES", + "EXTRACT_STATIC = YES", + "GENERATE_HTML = NO", + "GENERATE_XML = YES", + "INCLUDE_GRAPH = NO", + "MACRO_EXPANSION = YES", + "PROJECT_NAME = Pigweed", + """PREDEFINED = __cplusplus=202002L \\ + PW_LOCKABLE= \\ + PW_PRINTF_FORMAT(...)= \\ + PW_CONSTEXPR_CPP20= \\ + PW_EXCLUSIVE_LOCK_FUNCTION(...)= \\ + PW_EXCLUSIVE_TRYLOCK_FUNCTION(...)= \\ + PW_UNLOCK_FUNCTION(...)= \\ + PW_NO_LOCK_SAFETY_ANALYSIS= \\ + PW_CXX_STANDARD_IS_SUPPORTED(...)=1 \\ + PW_EXTERN_C_START= \\ + PW_LOCKS_EXCLUDED(...)= \\ + PW_EXCLUSIVE_LOCKS_REQUIRED(...)= \\ + PW_GUARDED_BY(...)= \\ + PW_NO_SANITIZE(...)= \\ + PW_NODISCARD_STR(...)= \\ + configSUPPORT_STATIC_ALLOCATION=1 \\ + configUSE_TIMERS=1 \\ + configCHECK_FOR_STACK_OVERFLOW=1 \\ + PW_EXCLUDE_FROM_DOXYGEN=1""", + "RECURSIVE = YES", + ], + # Don't use rules_doxygen's `aliases` attribute. Define aliases within + # `configurations`. The `aliases` attribute doesn't render aliases with + # args correctly: https://github.com/TendTo/rules_doxygen/issues/12 + # aliases = [] + target_compatible_with = incompatible_with_mcu(), +) + +# Package up the Doxygen-generated XML in a way that's easy for +# Breathe/Sphinx to consume. +sphinx_docs_library( + name = "doxygen_xml", + srcs = [":doxygen_build"], + prefix = "doxygen/", + target_compatible_with = incompatible_with_mcu(), +) + +sphinx_build_binary( + name = "sphinx_build", + target_compatible_with = incompatible_with_mcu(), + deps = [ + "//pw_console/py:pw_console", + "//pw_docgen/py:pw_docgen", + "@python_packages//breathe", + "@python_packages//pydata_sphinx_theme", + "@python_packages//sphinx", + "@python_packages//sphinx_argparse", + "@python_packages//sphinx_copybutton", + "@python_packages//sphinx_design", + "@python_packages//sphinx_reredirects", + "@python_packages//sphinx_sitemap", + "@python_packages//sphinxcontrib_mermaid", + "@rules_python//python/runfiles", + ], +) + # Use Sphinx to build the main pigweed.dev website. # # The main `docs` target must output a directory containing the fully @@ -157,10 +315,11 @@ sphinx_docs( formats = [ "html", ], - sphinx = ":sphinx-build", + sphinx = ":sphinx_build", strip_prefix = "docs/", target_compatible_with = incompatible_with_mcu(), deps = [ + ":doxygen_xml", ":not_prefixed", ":prefixed", # TODO: https://pwbug.dev/383540117 - Move this comment to a dedicated @@ -234,8 +393,7 @@ sphinx_docs( "//pw_compilation_testing:docs", "//pw_config_loader:docs", "//pw_console:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_containers:docs", + "//pw_containers:docs", "//pw_cpu_exception:docs", "//pw_cpu_exception_cortex_m:docs", "//pw_cpu_exception_risc_v:docs", @@ -248,13 +406,13 @@ sphinx_docs( "//pw_dma_mcuxpresso:docs", "//pw_docgen:docs", "//pw_doctor:docs", + "//pw_elf:docs", "//pw_emu:docs", "//pw_env_setup:docs", "//pw_env_setup_zephyr:docs", "//pw_file:docs", "//pw_format:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_function:docs", + "//pw_function:docs", "//pw_fuzzer:docs", "//pw_grpc:docs", "//pw_hdlc:docs", @@ -269,8 +427,7 @@ sphinx_docs( "//pw_interrupt_xtensa:docs", "//pw_interrupt_zephyr:docs", "//pw_intrusive_ptr:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_json:docs", + "//pw_json:docs", "//pw_kvs:docs", "//pw_libc:docs", "//pw_libcxx:docs", @@ -295,20 +452,17 @@ sphinx_docs( "//pw_package:docs", "//pw_perf_test:docs", "//pw_persistent_ram:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_polyfill:docs", + "//pw_polyfill:docs", "//pw_preprocessor:docs", "//pw_presubmit:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_protobuf:docs", + "//pw_protobuf:docs", "//pw_protobuf_compiler:docs", "//pw_random:docs", "//pw_random_fuchsia:docs", "//pw_result:docs", "//pw_ring_buffer:docs", "//pw_router:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_rpc:docs", + "//pw_rpc:docs", "//pw_rpc_transport:docs", "//pw_rust:sphinx", "//pw_sensor:docs", @@ -325,11 +479,9 @@ sphinx_docs( "//pw_stream_shmem_mcuxpresso:docs", "//pw_stream_uart_linux:docs", "//pw_stream_uart_mcuxpresso:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_string:docs", + "//pw_string:docs", "//pw_symbolizer:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_sync:docs", + "//pw_sync:docs", "//pw_sync_baremetal:docs", "//pw_sync_embos:docs", "//pw_sync_freertos:docs", @@ -348,8 +500,7 @@ sphinx_docs( "//pw_sys_io_stm32cube:docs", "//pw_sys_io_zephyr:docs", "//pw_system:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_target_runner:docs", + "//pw_target_runner:docs", "//pw_thread:docs", "//pw_thread_embos:docs", "//pw_thread_freertos:docs", @@ -359,19 +510,16 @@ sphinx_docs( "//pw_tls_client:docs", "//pw_tls_client_boringssl:docs", "//pw_tls_client_mbedtls:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_tokenizer:docs", + "//pw_tokenizer:docs", "//pw_toolchain:docs", "//pw_trace:docs", "//pw_trace_tokenized:docs", "//pw_transfer:docs", "//pw_uart:docs", "//pw_uart_mcuxpresso:docs", - # TODO: https://pwbug.dev/378765499 - Update downstream projects. - # "//pw_unit_test:docs", + "//pw_unit_test:docs", "//pw_unit_test_zephyr:docs", - # TODO: https://pwbug.dev/378570156 - Enable after Doxygen lands. - # "//pw_varint:docs", + "//pw_varint:docs", "//pw_watch:docs", "//pw_web:docs", "//pw_work_queue:docs", @@ -380,86 +528,3 @@ sphinx_docs( "//:docs", ], ) - -sphinx_build_binary( - name = "sphinx-build", - target_compatible_with = incompatible_with_mcu(), - deps = [ - "//pw_console/py:pw_console", - "//pw_docgen/py:pw_docgen", - "@python_packages//breathe", - "@python_packages//pydata_sphinx_theme", - "@python_packages//sphinx", - "@python_packages//sphinx_argparse", - "@python_packages//sphinx_copybutton", - "@python_packages//sphinx_design", - "@python_packages//sphinx_reredirects", - "@python_packages//sphinx_sitemap", - "@python_packages//sphinxcontrib_mermaid", - ], -) - -filegroup( - name = "doxygen", - srcs = [ - "//pw_alignment:doxygen", - "//pw_allocator:doxygen", - "//pw_analog:doxygen", - "//pw_async:doxygen", - "//pw_async2:doxygen", - "//pw_async2_basic:doxygen", - "//pw_async_basic:doxygen", - "//pw_base64:doxygen", - "//pw_bluetooth:doxygen", - "//pw_bluetooth_proxy:doxygen", - "//pw_build:doxygen", - "//pw_bytes:doxygen", - "//pw_channel:doxygen", - "//pw_chre:doxygen", - "//pw_chrono:doxygen", - "//pw_clock_tree:doxygen", - "//pw_clock_tree_mcuxpresso:doxygen", - "//pw_containers:doxygen", - "//pw_crypto:doxygen", - "//pw_digital_io:doxygen", - "//pw_display:doxygen", - "//pw_elf:doxygen", - "//pw_function:doxygen", - "//pw_hdlc:doxygen", - "//pw_hex_dump:doxygen", - "//pw_i2c:doxygen", - "//pw_i2c_linux:doxygen", - "//pw_interrupt:doxygen", - "//pw_json:doxygen", - "//pw_kvs:doxygen", - "//pw_log:doxygen", - "//pw_log_string:doxygen", - "//pw_log_tokenized:doxygen", - "//pw_malloc:doxygen", - "//pw_multibuf:doxygen", - "//pw_numeric:doxygen", - "//pw_perf_test:doxygen", - "//pw_polyfill:doxygen", - "//pw_preprocessor:doxygen", - "//pw_protobuf:doxygen", - "//pw_random:doxygen", - "//pw_rpc:doxygen", - "//pw_span:doxygen", - "//pw_spi:doxygen", - "//pw_status:doxygen", - "//pw_stream:doxygen", - "//pw_stream_uart_linux:doxygen", - "//pw_string:doxygen", - "//pw_sync:doxygen", - "//pw_sys_io:doxygen", - "//pw_system:doxygen", - "//pw_thread:doxygen", - "//pw_tokenizer:doxygen", - "//pw_toolchain:doxygen", - "//pw_transfer:doxygen", - "//pw_uart:doxygen", - "//pw_unit_test:doxygen", - "//pw_varint:doxygen", - "//pw_work_queue:doxygen", - ], -) diff --git a/docs/conf.py b/docs/conf.py index c0b4141f4..689373a54 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -300,10 +300,13 @@ def pygments_monkeypatch_style(mod_name, cls): templates_path = ['docs/layout'] exclude_patterns = ['docs/templates/**'] +doxygen_xml_path = ( + './doxygen/xml/' if is_bazel_build else './../../../doxygen/xml/' +) breathe_projects = { # Assuming doxygen output is at out/docs/doxygen/ # This dir should be relative to out/docs/gen/docs/pw_docgen_tree/ - "Pigweed": "./../../../doxygen/xml/", + "Pigweed": doxygen_xml_path, } breathe_default_project = "Pigweed" breathe_debug_trace_directives = True diff --git a/pw_analog/BUILD.bazel b/pw_analog/BUILD.bazel index e00bf933c..fed203f8d 100644 --- a/pw_analog/BUILD.bazel +++ b/pw_analog/BUILD.bazel @@ -98,19 +98,23 @@ pw_cc_test( ], ) -filegroup( - name = "doxygen", - srcs = [ - "public/pw_analog/analog_input.h", - "public/pw_analog/microvolt_input.h", - ], -) - sphinx_docs_library( name = "docs", srcs = [ "docs.rst", + # These header files must be provided to Sphinx because + # some of their code is directly included in docs.rst. + "public/pw_analog/analog_input_gmock.h", + "public/pw_analog/microvolt_input_gmock.h", ], prefix = "pw_analog/", target_compatible_with = incompatible_with_mcu(), ) + +filegroup( + name = "doxygen", + srcs = [ + "public/pw_analog/analog_input.h", + "public/pw_analog/microvolt_input.h", + ], +) diff --git a/pw_async2/BUILD.bazel b/pw_async2/BUILD.bazel index 9d126478f..fe5af3059 100644 --- a/pw_async2/BUILD.bazel +++ b/pw_async2/BUILD.bazel @@ -374,6 +374,7 @@ sphinx_docs_library( "backends.rst", "docs.rst", "guides.rst", + "reference.rst", ], prefix = "pw_async2/", target_compatible_with = incompatible_with_mcu(), diff --git a/pw_elf/BUILD.bazel b/pw_elf/BUILD.bazel index 2f42a7217..cf3afcc86 100644 --- a/pw_elf/BUILD.bazel +++ b/pw_elf/BUILD.bazel @@ -12,6 +12,8 @@ # License for the specific language governing permissions and limitations under # the License. +load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") +load("//pw_build:compatibility.bzl", "incompatible_with_mcu") load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") package(default_visibility = ["//visibility:public"]) @@ -60,10 +62,13 @@ pw_cc_test( ], ) -# Bazel does not yet support building docs. -filegroup( +sphinx_docs_library( name = "docs", - srcs = ["docs.rst"], + srcs = [ + "docs.rst", + ], + prefix = "pw_elf/", + target_compatible_with = incompatible_with_mcu(), ) filegroup( diff --git a/pw_tokenizer/BUILD.bazel b/pw_tokenizer/BUILD.bazel index 90b32357d..e4facde96 100644 --- a/pw_tokenizer/BUILD.bazel +++ b/pw_tokenizer/BUILD.bazel @@ -367,12 +367,12 @@ sphinx_docs_library( name = "docs", srcs = [ "Kconfig", - # "api.rst", + "api.rst", "detokenization.rst", "docs.rst", "get_started.rst", - "tokenization.rst", "token_databases.rst", + "tokenization.rst", ], prefix = "pw_tokenizer/", target_compatible_with = incompatible_with_mcu(), diff --git a/pw_unit_test/BUILD.bazel b/pw_unit_test/BUILD.bazel index 3fcf629bc..b2f4e397b 100644 --- a/pw_unit_test/BUILD.bazel +++ b/pw_unit_test/BUILD.bazel @@ -14,9 +14,7 @@ load("@local_config_platform//:constraints.bzl", "HOST_CONSTRAINTS") load("@rules_python//python:proto.bzl", "py_proto_library") - -# TODO: https://pwbug.dev/378765499 - Update downstream projects. -# load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") +load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") load("//pw_build:compatibility.bzl", "boolean_constraint_value", "incompatible_with_mcu") load("//pw_build:pw_cc_binary.bzl", "pw_cc_binary") load("//pw_build:pw_facade.bzl", "pw_facade") @@ -516,12 +514,11 @@ filegroup( ], ) -# TODO: https://pwbug.dev/378765499 - Update downstream projects. -# sphinx_docs_library( -# name = "docs", -# srcs = [ -# "docs.rst", -# ], -# prefix = "pw_unit_test/", -# target_compatible_with = incompatible_with_mcu(), -# ) +sphinx_docs_library( + name = "docs", + srcs = [ + "docs.rst", + ], + prefix = "pw_unit_test/", + target_compatible_with = incompatible_with_mcu(), +)