blob: 4efbe1d8706d30e6b60cebf8d9784ddc9cb3cd95 [file] [log] [blame]
# Copyright 2022 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/components.gni")
# [START args_declare]
declare_args() {
# Set this in args.gn to override the greeting emitted by this example.
config_example_cpp_greeting = "World"
}
# [END args_declare]
# [START binary]
executable("bin") {
# [START_EXCLUDE]
output_name = "config_example_cpp"
sources = [ "main.cc" ]
# [END_EXCLUDE]
deps = [
":example_config",
# [START_EXCLUDE]
"//sdk/lib/sys/cpp",
"//sdk/lib/sys/inspect/cpp",
"//sdk/lib/syslog/cpp",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/async-loop:async-loop-default",
# [END_EXCLUDE]
]
}
# [END binary]
# [START component]
fuchsia_component_manifest("manifest") {
component_name = "config_example"
manifest = "meta/config_example.cml"
restricted_features = [ "structured_config" ]
}
fuchsia_component("component") {
cm_label = ":manifest"
deps = [ ":bin" ]
}
# [END component]
# [START library]
fuchsia_structured_config_cpp_elf_lib("example_config") {
cm_label = ":manifest"
}
# [END library]
# [START config_values_gn]
fuchsia_structured_config_values("values_from_gn") {
cm_label = ":manifest"
values = {
greeting = config_example_cpp_greeting
}
}
# [END config_values_gn]
# [START config_values_json]
fuchsia_structured_config_values("values_from_json_file") {
cm_label = ":manifest"
values_source = "../config_example_default_values.json5"
}
# [END config_values_json]
# [START package]
fuchsia_package("cpp_config_example") {
deps = [
":component",
":values_from_gn",
]
}
# [END package]
fuchsia_package("cpp_config_example_with_json_values") {
deps = [
":component",
":values_from_json_file",
]
}
group("cpp") {
deps = [
":cpp_config_example",
":cpp_config_example_with_json_values",
]
}