blob: f29437b8efab1a0d369ca0e1c6bf3cfce6e0090b [file]
# Copyright 2025 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
load("@bazel_skylib//rules:copy_directory.bzl", "copy_directory")
load("@doxygen//:doxygen.bzl", "doxygen")
load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library")
load("//pw_build:compatibility.bzl", "incompatible_with_mcu")
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
filegroup(
name = "website",
srcs = [
"footer.html",
"header.html",
"index.md",
"layout.xml",
"styles.css",
],
)
filegroup(
name = "srcs",
srcs = [
":modules.h",
"//pw_alignment:doxygen",
"//pw_allocator:doxygen",
"//pw_analog:doxygen",
"//pw_async:doxygen",
"//pw_async2:doxygen",
"//pw_async_basic:doxygen",
"//pw_base64:doxygen",
"//pw_bloat:doxygen",
"//pw_bluetooth:doxygen",
"//pw_bluetooth_proxy:doxygen",
"//pw_bluetooth_sapphire:doxygen",
"//pw_build:doxygen",
"//pw_bytes:doxygen",
"//pw_channel:doxygen",
"//pw_checksum: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_digital_io_mcuxpresso:doxygen",
"//pw_display:doxygen",
"//pw_elf:doxygen",
"//pw_enum:doxygen",
"//pw_function:doxygen",
"//pw_hdlc:doxygen",
"//pw_hex_dump:doxygen",
"//pw_i2c:doxygen",
"//pw_i2c_linux:doxygen",
"//pw_i2c_zephyr: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_memory:doxygen",
"//pw_multibuf:doxygen",
"//pw_numeric:doxygen",
"//pw_perf_test:doxygen",
"//pw_persistent_ram:doxygen",
"//pw_polyfill:doxygen",
"//pw_preprocessor:doxygen",
"//pw_protobuf:doxygen",
"//pw_random:doxygen",
"//pw_result: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_trace_tokenized:doxygen",
"//pw_transfer:doxygen",
"//pw_uart:doxygen",
"//pw_unit_test:doxygen",
"//pw_uuid:doxygen",
"//pw_varint:doxygen",
"//pw_work_queue:doxygen",
"//third_party/freertos:doxygen",
],
)
doxygen(
name = "build",
srcs = [
":srcs",
":website",
],
outs = [
"html",
"xml",
],
doxyfile_template = "Doxyfile",
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
)
filegroup(
name = "_html_1",
srcs = [":build"],
output_group = "html",
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
)
copy_directory(
name = "_html_2",
src = ":_html_1",
out = "cc",
tags = ["manual"],
)
sphinx_docs_library(
name = "html",
srcs = [":_html_2"],
prefix = "doxygen/api/",
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
visibility = ["//visibility:public"],
)
filegroup(
name = "_xml",
srcs = [":build"],
output_group = "xml",
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
)
sphinx_docs_library(
name = "xml",
srcs = [":_xml"],
prefix = "_doxygen/",
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
visibility = ["//visibility:public"],
)
sphinx_docs_library(
name = "docs",
srcs = ["modules.h"],
tags = ["manual"],
target_compatible_with = incompatible_with_mcu(),
visibility = ["//visibility:public"],
)