# Copyright 2019 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.

import("//build_overrides/pigweed.gni")

import("$dir_pw_build/python.gni")
import("$dir_pw_build/python_action.gni")
import("$dir_pw_docgen/docs.gni")

pw_doc_group("static_assets") {
  inputs = [
    "_static/css/pigweed.css",
    "_static/js/changelog.js",
    "_static/js/pigweed.js",
    "_static/pw_logo.ico",
    "_static/pw_logo.svg",
  ]
}

# Note: These may be useful for downstream projects, which is why they are
# split out from the overall docgen target below.
pw_doc_group("core_docs") {
  inputs = [
    "$dir_pw_build/py/gn_tests/BUILD.gn",
    "$dir_pw_build/py/pw_build/generate_python_wheel_cache.py",
    "$dir_pw_build/python.gni",
    "$dir_pw_build/python_gn_args.gni",
    "layout/page.html",
    "run_doxygen.py",
  ]
  sources = [
    "blog/01-kudzu.rst",
    "blog/index.rst",
    "code_of_conduct.rst",
    "code_reviews.rst",
    "concepts/index.rst",
    "contributing/docs/changelog.rst",
    "contributing/docs/index.rst",
    "contributing/docs/modules.rst",
    "contributing/docs/website.rst",
    "contributing/index.rst",
    "editors.rst",
    "embedded_cpp_guide.rst",
    "facades.rst",
    "faq.rst",
    "get_started/bazel.rst",
    "get_started/bazel_integration.rst",
    "get_started/first_time_setup.rst",
    "get_started/index.rst",
    "get_started/upstream.rst",
    "get_started/zephyr.rst",
    "glossary.rst",
    "infra/ci_cq_intro.rst",
    "infra/index.rst",
    "infra/rollers.rst",
    "mission.rst",
    "module_structure.rst",
    "os/index.rst",
    "os/zephyr/index.rst",
    "os/zephyr/kconfig.rst",
    "overview.rst",
    "size_optimizations.rst",
    "style/cli.rst",
    "style/commit_message.rst",
    "style/cpp.rst",
    "style/doxygen.rst",
    "style/protobuf.rst",
    "style/rest.rst",
    "style/writing.rst",
    "style_guide.rst",
  ]
}

# Documentation for upstream Pigweed targets.
group("target_docs") {
  deps = [
    "$dir_pigweed/targets/android:target_docs",
    "$dir_pigweed/targets/apollo4:target_docs",
    "$dir_pigweed/targets/apollo4_pw_system:target_docs",
    "$dir_pigweed/targets/arduino:target_docs",
    "$dir_pigweed/targets/docs:target_docs",
    "$dir_pigweed/targets/emcraft_sf2_som:docs",
    "$dir_pigweed/targets/host:target_docs",
    "$dir_pigweed/targets/host_device_simulator:target_docs",
    "$dir_pigweed/targets/lm3s6965evb_qemu:target_docs",
    "$dir_pigweed/targets/mimxrt595_evk:target_docs",
    "$dir_pigweed/targets/rp2040:target_docs",
    "$dir_pigweed/targets/stm32f429i_disc1:target_docs",
    "$dir_pigweed/targets/stm32f429i_disc1_stm32cube:target_docs",
  ]
}

group("module_docs") {
  deps = pw_module_docs
}

group("third_party_docs") {
  deps = [
    "$dir_pigweed/third_party/abseil-cpp:docs",
    "$dir_pigweed/third_party/boringssl:docs",
    "$dir_pigweed/third_party/emboss:docs",
    "$dir_pigweed/third_party/freertos:docs",
    "$dir_pigweed/third_party/fuchsia:docs",
    "$dir_pigweed/third_party/fuzztest:docs",
    "$dir_pigweed/third_party/googletest:docs",
    "$dir_pigweed/third_party/nanopb:docs",
    "$dir_pigweed/third_party/re2:docs",
    "$dir_pigweed/third_party/tinyusb:docs",
  ]
}

# All sources with doxygen comment blocks.
_doxygen_input_files = [  # keep-sorted: start
  "$dir_pw_alignment/public/pw_alignment/alignment.h",
  "$dir_pw_allocator/public/pw_allocator/allocator.h",
  "$dir_pw_allocator/public/pw_allocator/allocator_as_pool.h",
  "$dir_pw_allocator/public/pw_allocator/best_fit_block_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/block.h",
  "$dir_pw_allocator/public/pw_allocator/block_allocator_base.h",
  "$dir_pw_allocator/public/pw_allocator/buddy_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/buffer.h",
  "$dir_pw_allocator/public/pw_allocator/bump_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/capability.h",
  "$dir_pw_allocator/public/pw_allocator/chunk_pool.h",
  "$dir_pw_allocator/public/pw_allocator/deallocator.h",
  "$dir_pw_allocator/public/pw_allocator/dual_first_fit_block_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/fallback_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/first_fit_block_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/fuzzing.h",
  "$dir_pw_allocator/public/pw_allocator/last_fit_block_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/layout.h",
  "$dir_pw_allocator/public/pw_allocator/libc_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/metrics.h",
  "$dir_pw_allocator/public/pw_allocator/null_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/pool.h",
  "$dir_pw_allocator/public/pw_allocator/size_reporter.h",
  "$dir_pw_allocator/public/pw_allocator/synchronized_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/test_harness.h",
  "$dir_pw_allocator/public/pw_allocator/testing.h",
  "$dir_pw_allocator/public/pw_allocator/tracking_allocator.h",
  "$dir_pw_allocator/public/pw_allocator/typed_pool.h",
  "$dir_pw_allocator/public/pw_allocator/unique_ptr.h",
  "$dir_pw_allocator/public/pw_allocator/worst_fit_block_allocator.h",
  "$dir_pw_analog/public/pw_analog/analog_input.h",
  "$dir_pw_analog/public/pw_analog/microvolt_input.h",
  "$dir_pw_async/public/pw_async/context.h",
  "$dir_pw_async/public/pw_async/dispatcher.h",
  "$dir_pw_async/public/pw_async/fake_dispatcher_fixture.h",
  "$dir_pw_async/public/pw_async/function_dispatcher.h",
  "$dir_pw_async/public/pw_async/heap_dispatcher.h",
  "$dir_pw_async/public/pw_async/task.h",
  "$dir_pw_async/public/pw_async/task_function.h",
  "$dir_pw_async2/public/pw_async2/dispatcher.h",
  "$dir_pw_async2/public/pw_async2/dispatcher_base.h",
  "$dir_pw_async2/public/pw_async2/pend_func_task.h",
  "$dir_pw_async2/public/pw_async2/pendable_as_task.h",
  "$dir_pw_async2/public/pw_async2/poll.h",
  "$dir_pw_async2_basic/public_overrides/pw_async2/dispatcher_native.h",
  "$dir_pw_async_basic/public/pw_async_basic/dispatcher.h",
  "$dir_pw_base64/public/pw_base64/base64.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/gatt/client.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/gatt/server.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/host.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/low_energy/central.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/low_energy/connection.h",
  "$dir_pw_bluetooth/public/pw_bluetooth/low_energy/peripheral.h",
  "$dir_pw_bluetooth_proxy/public/pw_bluetooth_proxy/common.h",
  "$dir_pw_bluetooth_proxy/public/pw_bluetooth_proxy/hci_proxy.h",
  "$dir_pw_bluetooth_proxy/public/pw_bluetooth_proxy/passthrough_policy.h",
  "$dir_pw_bluetooth_proxy/public/pw_bluetooth_proxy/proxy_policy.h",
  "$dir_pw_bytes/public/pw_bytes/bit.h",
  "$dir_pw_bytes/public/pw_bytes/byte_builder.h",
  "$dir_pw_channel/public/pw_channel/channel.h",
  "$dir_pw_channel/public/pw_channel/forwarding_channel.h",
  "$dir_pw_channel/public/pw_channel/loopback_channel.h",
  "$dir_pw_chre/public/pw_chre/chre.h",
  "$dir_pw_chre/public/pw_chre/host_link.h",
  "$dir_pw_chrono/public/pw_chrono/system_clock.h",
  "$dir_pw_chrono/public/pw_chrono/system_timer.h",
  "$dir_pw_containers/public/pw_containers/filtered_view.h",
  "$dir_pw_containers/public/pw_containers/inline_deque.h",
  "$dir_pw_containers/public/pw_containers/inline_queue.h",
  "$dir_pw_containers/public/pw_containers/inline_var_len_entry_queue.h",
  "$dir_pw_crypto/public/pw_crypto/ecdsa.h",
  "$dir_pw_crypto/public/pw_crypto/sha256.h",
  "$dir_pw_digital_io/public/pw_digital_io/digital_io.h",
  "$dir_pw_function/public/pw_function/function.h",
  "$dir_pw_function/public/pw_function/pointer.h",
  "$dir_pw_function/public/pw_function/scope_guard.h",
  "$dir_pw_hdlc/public/pw_hdlc/decoder.h",
  "$dir_pw_hdlc/public/pw_hdlc/encoder.h",
  "$dir_pw_hdlc/public/pw_hdlc/router.h",
  "$dir_pw_i2c/public/pw_i2c/address.h",
  "$dir_pw_i2c/public/pw_i2c/device.h",
  "$dir_pw_i2c/public/pw_i2c/i2c_service.h",
  "$dir_pw_i2c/public/pw_i2c/initiator.h",
  "$dir_pw_i2c/public/pw_i2c/initiator_gmock.h",
  "$dir_pw_i2c/public/pw_i2c/initiator_mock.h",
  "$dir_pw_i2c/public/pw_i2c/register_device.h",
  "$dir_pw_i2c_linux/public/pw_i2c_linux/initiator.h",
  "$dir_pw_interrupt/public/pw_interrupt/context.h",
  "$dir_pw_json/public/pw_json/builder.h",
  "$dir_pw_kvs/public/pw_kvs/key_value_store.h",
  "$dir_pw_kvs/pw_kvs_private/config.h",
  "$dir_pw_log/public/pw_log/tokenized_args.h",
  "$dir_pw_log_string/public/pw_log_string/handler.h",
  "$dir_pw_log_tokenized/public/pw_log_tokenized/base64.h",
  "$dir_pw_log_tokenized/public/pw_log_tokenized/handler.h",
  "$dir_pw_log_tokenized/public/pw_log_tokenized/metadata.h",
  "$dir_pw_multibuf/public/pw_multibuf/allocator.h",
  "$dir_pw_multibuf/public/pw_multibuf/chunk.h",
  "$dir_pw_multibuf/public/pw_multibuf/header_chunk_region_tracker.h",
  "$dir_pw_multibuf/public/pw_multibuf/multibuf.h",
  "$dir_pw_multibuf/public/pw_multibuf/simple_allocator.h",
  "$dir_pw_multibuf/public/pw_multibuf/single_chunk_region_tracker.h",
  "$dir_pw_multibuf/public/pw_multibuf/stream.h",
  "$dir_pw_perf_test/public/pw_perf_test/event_handler.h",
  "$dir_pw_perf_test/public/pw_perf_test/perf_test.h",
  "$dir_pw_polyfill/public/pw_polyfill/language_feature_macros.h",
  "$dir_pw_polyfill/public/pw_polyfill/standard.h",
  "$dir_pw_preprocessor/public/pw_preprocessor/compiler.h",
  "$dir_pw_protobuf/public/pw_protobuf/find.h",
  "$dir_pw_random/public/pw_random/random.h",
  "$dir_pw_random/public/pw_random/xor_shift.h",
  "$dir_pw_rpc/public/pw_rpc/channel.h",
  "$dir_pw_rpc/public/pw_rpc/internal/config.h",
  "$dir_pw_rpc/public/pw_rpc/synchronous_call.h",
  "$dir_pw_span/public/pw_span/internal/config.h",
  "$dir_pw_spi/public/pw_spi/chip_selector.h",
  "$dir_pw_spi/public/pw_spi/chip_selector_digital_out.h",
  "$dir_pw_status/public/pw_status/status.h",
  "$dir_pw_stream/public/pw_stream/stream.h",
  "$dir_pw_stream_uart_linux/public/pw_stream_uart_linux/stream.h",
  "$dir_pw_string/public/pw_string/format.h",
  "$dir_pw_string/public/pw_string/string.h",
  "$dir_pw_string/public/pw_string/string_builder.h",
  "$dir_pw_string/public/pw_string/util.h",
  "$dir_pw_sync/public/pw_sync/binary_semaphore.h",
  "$dir_pw_sync/public/pw_sync/borrow.h",
  "$dir_pw_sync/public/pw_sync/counting_semaphore.h",
  "$dir_pw_sync/public/pw_sync/inline_borrowable.h",
  "$dir_pw_sync/public/pw_sync/interrupt_spin_lock.h",
  "$dir_pw_sync/public/pw_sync/lock_annotations.h",
  "$dir_pw_sync/public/pw_sync/mutex.h",
  "$dir_pw_sync/public/pw_sync/thread_notification.h",
  "$dir_pw_sync/public/pw_sync/timed_mutex.h",
  "$dir_pw_sync/public/pw_sync/timed_thread_notification.h",
  "$dir_pw_sync/public/pw_sync/virtual_basic_lockable.h",
  "$dir_pw_sys_io/public/pw_sys_io/sys_io.h",
  "$dir_pw_thread/public/pw_thread/test_thread_context.h",
  "$dir_pw_thread/public/pw_thread/thread.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/config.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/detokenize.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/encode_args.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/nested_tokenization.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/token_database.h",
  "$dir_pw_tokenizer/public/pw_tokenizer/tokenize.h",
  "$dir_pw_toolchain/public/pw_toolchain/no_destructor.h",
  "$dir_pw_transfer/public/pw_transfer/atomic_file_transfer_handler.h",
  "$dir_pw_uart/public/pw_uart/uart.h",
  "$dir_pw_unit_test/light_public_overrides/pw_unit_test/framework_backend.h",
  "$dir_pw_unit_test/public/pw_unit_test/config.h",
  "$dir_pw_unit_test/public/pw_unit_test/event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/googletest_handler_adapter.h",
  "$dir_pw_unit_test/public/pw_unit_test/googletest_style_event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/logging_event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/multi_event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/printf_event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/simple_printing_event_handler.h",
  "$dir_pw_unit_test/public/pw_unit_test/static_library_support.h",
  "$dir_pw_unit_test/public/pw_unit_test/test_record_event_handler.h",
  "$dir_pw_varint/public/pw_varint/stream.h",
  "$dir_pw_varint/public/pw_varint/varint.h",
  "$dir_pw_work_queue/public/pw_work_queue/work_queue.h",
]  # keep-sorted: end

pw_python_action("generate_doxygen") {
  _output_dir = "docs/doxygen"
  script = "run_doxygen.py"
  inputs = [
    "//PIGWEED_MODULES",
    "Doxyfile",
  ]
  inputs += _doxygen_input_files
  args = [
    "--gn-root",
    rebase_path("//", root_build_dir),
    "--pigweed-modules-file",
    rebase_path("//PIGWEED_MODULES", root_build_dir),
    "--output-dir",
    _output_dir,
    "--doxygen-config",
    rebase_path("Doxyfile", root_build_dir),
    "--include-paths",
  ]
  args += rebase_path(_doxygen_input_files, root_build_dir)
  outputs = [
    "$root_build_dir/$_output_dir/html/index.html",
    "$root_build_dir/$_output_dir/xml/index.xml",
  ]
}

pw_doc_gen("docs") {
  conf = "conf.py"
  sources = [
    # Note: These must use the "docs" prefix for links and image references. In
    # contrast, the pw_doc_group above should not use the docs prefix.
    "automated_analysis.rst",
    "build_system.rst",
    "changelog.rst",
    "index.rst",
    "modules.rst",
    "python_build.rst",
    "targets.rst",
    "third_party_support.rst",
  ]
  output_directory = target_gen_dir
  deps = [
    ":core_docs",
    ":generate_doxygen",
    ":module_docs",
    ":static_assets",
    ":target_docs",
    ":third_party_docs",
    "$dir_pigweed/kudzu:docs",
    "$dir_pigweed/seed:seeds",
    "$dir_pw_env_setup:python.install",
  ]

  # Required to set the PYTHONPATH so automodule, autoclass or autofunction RST
  # directives work.
  python_metadata_deps = [ "$dir_pw_env_setup:core_pigweed_python_packages" ]
}
