blob: b211345dca63310206c5f6e6bbb5b381c6b0916c [file] [log] [blame]
# Copyright 2024 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/fuchsia/platform_version.gni")
import("//build/python/python_action.gni")
import("//build/python/python_binary.gni")
python_binary("sdk_ir") {
# TODO(b/367413842): Enable MyPy type checking
enable_mypy = false
main_source = "sdk_ir.py"
sources = [ "merge.py" ]
deps = [ "//build/python/modules/depfile" ]
}
template("platform_ir") {
python_action(target_name) {
binary_label = ":sdk_ir"
sdk_fidl_json = "${root_build_dir}/sdk_fidl_json.json"
if (defined(invoker.api_level)) {
api_level = invoker.api_level
platform_ir = "${root_build_dir}/platform-ir-${api_level}.json"
} else {
platform_ir = "${root_build_dir}/platform-ir-PLATFORM.json"
not_needed([ "invoker" ])
}
depfile = "${platform_ir}.d"
inputs = [ sdk_fidl_json ]
outputs = [ platform_ir ]
args = [
"--sdk-fidl-json",
rebase_path(sdk_fidl_json, root_build_dir),
"--output",
rebase_path(platform_ir, root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
]
if (defined(invoker.api_level)) {
args += [
"--api-level",
"${api_level}",
]
}
deps = [
# Generates `sdk_fidl_json`.
"//build/fidl:sdk_fidl",
]
}
}
platform_ir("platform_ir_platform") {
}
platform_ir_deps = [ ":platform_ir_platform" ]
foreach(supported_level,
platform_version.frozen_api_levels + [
"NEXT",
"HEAD",
]) {
label = "platform_ir_${supported_level}"
platform_ir_deps += [ ":${label}" ]
platform_ir(label) {
api_level = supported_level
}
}
group("generate-platform-ir") {
deps = platform_ir_deps
}