# 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/bucket.h",
  "$dir_pw_allocator/public/pw_allocator/bucket_block_allocator.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/allocate_task.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/proxy_host.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" ]
}
