blob: f2003d4486905c370a7e97d94e518b2528c6111e [file] [log] [blame]
# 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.gni")
import("//build/dart/dart_library.gni")
import("//build/fidl/fidl.gni")
import("//build/flutter/flutter_component.gni")
import("//build/flutter/test.gni")
import("//build/testing/flutter_driver.gni")
import("//src/lib/icu/tools/static_icu_data.gni")
declare_args() {
# Build arg that allows overriding the default set of application entries
# using '--args=ermine_app_entries="config/app_launch_entries.json"'
ermine_app_entries = "config/app_launch_entries.json"
# Whether or not to launch screensaver.
ermine_start_screensaver = true
}
dart_library("lib") {
package_name = "ermine"
null_safe = true
entrypoints = [
"main.dart",
"test_main.dart",
]
services = [
"src/services/focus_service.dart",
"src/services/launch_service.dart",
"src/services/pointer_events_service.dart",
"src/services/preferences_service.dart",
"src/services/presenter_service.dart",
"src/services/shortcuts_service.dart",
"src/services/startup_service.dart",
"src/services/settings/battery_watcher_service.dart",
"src/services/settings/brightness_service.dart",
"src/services/settings/channel_service.dart",
"src/services/settings/datetime_service.dart",
"src/services/settings/memory_watcher_service.dart",
"src/services/settings/network_address_service.dart",
"src/services/settings/task_service.dart",
"src/services/settings/timezone_service.dart",
"src/services/settings/volume_service.dart",
"src/services/settings/wifi_service.dart",
]
states = [
"src/states/app_state.dart",
"src/states/app_state_impl.dart",
"src/states/settings_state.dart",
"src/states/settings_state_impl.dart",
"src/states/view_state.dart",
"src/states/view_state_impl.dart",
]
widgets = [
"src/widgets/app.dart",
"src/widgets/app_bar.dart",
"src/widgets/app_chips.dart",
"src/widgets/app_launcher.dart",
"src/widgets/app_switcher.dart",
"src/widgets/app_view.dart",
"src/widgets/dialogs/dialog.dart",
"src/widgets/dialogs/dialogs.dart",
"src/widgets/dialogs/text_only_dialog.dart",
"src/widgets/dialogs/textfield_dialog.dart",
"src/widgets/launch_button.dart",
"src/widgets/overlays.dart",
"src/widgets/quick_settings.dart",
"src/widgets/scrim.dart",
"src/widgets/settings/about_settings.dart",
"src/widgets/settings/channel_settings.dart",
"src/widgets/settings/setting_details.dart",
"src/widgets/settings/shortcut_settings.dart",
"src/widgets/settings/timezone_settings.dart",
"src/widgets/settings/wifi_settings.dart",
"src/widgets/side_bar.dart",
"src/widgets/status.dart",
"src/widgets/timeout.dart",
]
sources = entrypoints + services + states + widgets
deps = [
"//sdk/dart/fidl",
"//sdk/dart/fuchsia_inspect",
"//sdk/dart/fuchsia_internationalization_flutter",
"//sdk/dart/fuchsia_logger",
"//sdk/dart/fuchsia_scenic",
"//sdk/dart/fuchsia_scenic_flutter",
"//sdk/dart/fuchsia_services",
"//sdk/dart/zircon",
"//sdk/fidl/fuchsia.buildinfo",
"//sdk/fidl/fuchsia.device.manager",
"//sdk/fidl/fuchsia.element",
"//sdk/fidl/fuchsia.intl",
"//sdk/fidl/fuchsia.media",
"//sdk/fidl/fuchsia.media.audio",
"//sdk/fidl/fuchsia.memory",
"//sdk/fidl/fuchsia.net.interfaces",
"//sdk/fidl/fuchsia.power",
"//sdk/fidl/fuchsia.settings",
"//sdk/fidl/fuchsia.ssh",
"//sdk/fidl/fuchsia.sys",
"//sdk/fidl/fuchsia.ui.activity",
"//sdk/fidl/fuchsia.ui.app",
"//sdk/fidl/fuchsia.ui.brightness",
"//sdk/fidl/fuchsia.ui.focus",
"//sdk/fidl/fuchsia.ui.input",
"//sdk/fidl/fuchsia.ui.remotewidgets",
"//sdk/fidl/fuchsia.ui.shortcut",
"//sdk/fidl/fuchsia.ui.views",
"//sdk/fidl/fuchsia.update",
"//sdk/fidl/fuchsia.update.channelcontrol",
"//sdk/fidl/fuchsia.wlan.common",
"//sdk/fidl/fuchsia.wlan.policy",
"//src/experiences/session_shells/ermine/internationalization",
"//src/experiences/session_shells/ermine/keyboard_shortcuts",
"//src/experiences/session_shells/ermine/settings",
"//src/experiences/session_shells/ermine/utils:ermine_utils",
"//third_party/dart-pkg/git/flutter/packages/flutter",
"//third_party/dart-pkg/git/flutter/packages/flutter_driver",
"//third_party/dart-pkg/git/flutter/packages/flutter_localizations",
"//third_party/dart-pkg/git/flutter/packages/flutter_test",
"//third_party/dart-pkg/pub/async",
"//third_party/dart-pkg/pub/collection",
"//third_party/dart-pkg/pub/flutter_mobx",
"//third_party/dart-pkg/pub/intl",
"//third_party/dart-pkg/pub/mobx",
"//third_party/dart-pkg/pub/uuid",
"//third_party/dart-pkg/pub/vector_math",
]
}
flutter_component("component") {
if (flutter_driver_enabled) {
main_dart = "test_main.dart"
} else {
main_dart = "main.dart"
}
component_name = "ermine"
manifest = "meta/ermine.cmx"
deps = [
":app_launch_entries_resource",
":lib",
":resources",
":time_zone_list",
]
}
tz_ids_path = "${target_gen_dir}/tz_ids.txt"
static_icu_data("time_zone_list") {
command = "tz-ids"
output = tz_ids_path
# Put these time zones at the top for the convenience of Fuchsia developers.
fixed_order_ids = [
"America/Los_Angeles",
"America/New_York",
"Europe/Paris",
"Australia/Sydney",
]
fixed_order = string_join(",", fixed_order_ids)
command_args = [ "--fixed-order=${fixed_order}" ]
}
resource("app_launch_entries_resource") {
sources = [ ermine_app_entries ]
outputs = [ "data/app_launch_entries.json" ]
visibility = [ ":*" ]
}
preferences_path = "${target_gen_dir}/preferences.json"
generated_file("preferences") {
outputs = [ preferences_path ]
contents = {
screensaver = ermine_start_screensaver
}
output_conversion = "json"
}
resource("resources") {
sources = [
"config/keyboard_shortcuts.json",
rebase_path(preferences_path),
rebase_path(tz_ids_path),
rebase_path(
"//prebuilt/third_party/dart/${host_platform}/bin/resources/devtools/assets/fonts/MaterialIcons-Regular.otf"),
]
outputs = [ "data/{{source_file_part}}" ]
deps = [ ":preferences" ]
}
config_data("images") {
for_pkg = "ermine"
sources = rebase_path([
"images/Chromium-icon-2x.png",
"images/Default-icon-2x.png",
"images/Fuchsia-logo-2x.png",
"images/Linux-icon-2x.png",
"images/Settings-icon-2x.png",
"images/SimpleBrowser-icon-2x.png",
"images/SpinningSquare-icon-2x.png",
"images/Terminal-icon-2x.png",
])
outputs = [ "{{source_file_part}}" ]
}
flutter_test("ermine_unittests") {
null_safe = true
sources = [ "app_widget_test.dart" ]
deps = [
":lib",
"//sdk/dart/fuchsia_logger",
"//src/experiences/session_shells/ermine/internationalization",
"//src/experiences/session_shells/ermine/keyboard_shortcuts",
"//src/experiences/session_shells/ermine/utils:ermine_utils",
"//third_party/dart-pkg/git/flutter/packages/flutter",
"//third_party/dart-pkg/git/flutter/packages/flutter_test",
"//third_party/dart-pkg/pub/http",
"//third_party/dart-pkg/pub/intl",
"//third_party/dart-pkg/pub/mobx",
"//third_party/dart-pkg/pub/mockito",
"//third_party/dart-pkg/pub/test",
]
}