blob: 76cf686ab79b5e150ebda077d169b50c3aade740 [file] [log] [blame] [edit]
# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/build_api_module.gni")
import("//build/dart/dart_packages.gni")
import("//build/python/python.gni")
import("//build/python/python_binary.gni")
import("//build/python/python_host_test.gni")
group("docsgen") {
deps = [
":dart_sdk_docs($host_toolchain)",
":invoke_fidldoc",
]
}
_dartdoc_transforms_script_target = "dartdoc_transforms"
python_binary(_dartdoc_transforms_script_target) {
main_source = "//build/dart/gen_reference_docs.py"
output_name = "gen_reference_docs.pyz"
sources = [ "//build/dart/generate_dart_toc.py" ]
deps = [ "//third_party/pyyaml:yaml" ]
}
# Runs one time python fidl generation script.
# See dartdoc_transforms.py for more information
action("dart_sdk_docs") {
script_output = get_target_outputs(":${_dartdoc_transforms_script_target}")
script = script_output[0]
inputs = [
"//sdk/dart",
"//analysis_options.yaml",
"//prebuilt/third_party/dart/${host_platform}/bin/pub",
"//prebuilt/third_party/dart/${host_platform}/bin/dartdoc",
]
outputs = [
"$target_out_dir/dartdoc_out.zip",
"$target_gen_dir/.packages",
"$target_gen_dir/lib/lib.dart",
"$target_gen_dir/pubspec.lock",
"$target_gen_dir/pubspec.yaml",
]
depfile = "$target_out_dir/$target_name.d"
args = [
"--delete-artifact-files",
"--run-toc",
"--zipped-result",
"--gen-dir",
rebase_path(target_gen_dir, root_build_dir),
"--out-dir",
rebase_path(target_out_dir, target_gen_dir),
"--prebuilts-dir",
rebase_path("//prebuilt/third_party/dart/${host_platform}/bin",
target_gen_dir),
"--dep-file",
rebase_path(depfile, root_build_dir),
]
foreach(pkg, dart_packages_list) {
args += [ rebase_path(pkg, root_build_dir) ]
}
deps = [ ":${_dartdoc_transforms_script_target}" ] + dart_packages_list
}
# # Expose relevant paths for the infrastructure to upload.
build_api_module("generated_docs") {
contents = {
output_path = rebase_path("$host_out_dir/obj/tools/docsgen", root_build_dir)
dartdoc_zip = "dartdoc_out.zip"
}
}
_fidldoc_transforms_script_target = "fidldoc_transforms"
python_binary(_fidldoc_transforms_script_target) {
main_source = "//build/fidl/gen_fidldocs.py"
output_name = "gen_fidldocs.pyz"
sources = []
deps = []
}
# Runs one time python fidldoc generation script.
action("invoke_fidldoc") {
script_output = get_target_outputs(":${_fidldoc_transforms_script_target}")
script = script_output[0]
inputs = []
outputs = [ "$target_out_dir/fidldoc.zip" ]
depfile = "$target_out_dir/$target_name.d"
args = [
"--zipped-result",
"--build-dir",
rebase_path(root_build_dir, root_build_dir),
"--out-dir",
rebase_path(target_out_dir, root_build_dir),
"--dep-file",
rebase_path(depfile, root_build_dir),
]
deps = [
":${_fidldoc_transforms_script_target}",
"//build/fidl:sdk_fidl",
"//tools/fidl/fidldoc($host_toolchain)",
]
}