blob: 3650ec6f92d9dec174b31b3bbeb8ecad5dbf4517 [file] [log] [blame]
# Copyright 2019 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("//topaz/runtime/flutter_runner/flutter_app.gni")
template("settings_app") {
config = invoker.config
base_sources = [
"src/models/settings_model.dart",
"src/setting_entry.dart",
"src/widgets/all_settings.dart",
]
base_resources = [
{
path = rebase_path(config)
dest = "settings.config"
},
]
base_deps = [
"//sdk/fidl/fuchsia.modular",
"//sdk/fidl/fuchsia.timezone",
"//sdk/fidl/fuchsia.ui.views",
"//sdk/fidl/fuchsia.wlan.service",
"//third_party/dart-pkg/git/flutter/packages/flutter",
"//third_party/dart-pkg/git/flutter/packages/flutter_test",
"//third_party/dart-pkg/pub/meta",
"//topaz/lib/settings:lib.settings",
"//topaz/public/dart/fuchsia_logger",
"//topaz/public/dart/fuchsia_modular",
"//topaz/public/dart/fuchsia_scenic_flutter",
"//topaz/public/dart/fuchsia_services",
"//topaz/public/dart/widgets:lib.widgets",
]
base_meta = [
{
path = "//topaz/bin/settings/meta/settings.cmx"
dest = "settings.cmx"
},
]
# We cannot define the flutter app as a component for the base/canonical
# target as tests target the dart library, which is only generated correctly
# when not defined as a component.
if (defined(invoker.extended) && invoker.extended) {
flutter_app(target_name) {
components = [
{
component_name = "settings"
component_type = "flutter"
package_root = "//topaz/bin/settings"
main_dart = "//topaz/bin/settings/lib/main.dart"
sources = base_sources
deps = base_deps
},
]
manifest = "//topaz/bin/settings/pubspec.yaml"
meta = base_meta
resources = base_resources
}
} else {
flutter_app(target_name) {
main_dart = "lib/main.dart"
package_name = "settings"
manifest = "pubspec.yaml"
meta = base_meta
sources = base_sources
resources = base_resources
deps = base_deps
}
}
}
# Defines a Flutter app target for the Settings app.
#
# This template allows products to have custom settings app by
# specifying a unique settings.config file specifying the options
# shown. It is important extended_settings_app is used and not settings_app,
# which is reserved for the topaz copy for generating the proper test artifacts.
#
# config (required)
# The file name of the settings configuration file defining what
# will be shown. see //topaz/bin/settings/settings.config as an
# example. The file should exist at the same root folder as
# template usage.
#
template("extended_settings_app") {
extended = true
settings_app(target_name) {
forward_variables_from(invoker, "*")
}
}