blob: 3778f701bbb06ab661b2e0f9ae5cdd5e9606e295 [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.
#
# Package for the Flutter embedder for Fuchsia.
load(
"@rules_fuchsia//fuchsia:defs.bzl",
"fuchsia_cc_binary",
"fuchsia_cc_test",
"fuchsia_component_manifest",
"fuchsia_test_group",
"fuchsia_test_package",
"fuchsia_tests",
)
load("@rules_cc//cc:defs.bzl", "cc_library")
cc_library(
name = "logging",
srcs = [
"fuchsia_logger.cc",
"fuchsia_logger.h",
"logging.h",
],
deps = [
"@fuchsia_sdk//pkg/syslog",
],
)
cc_library(
name = "embedder_state",
srcs = [
"embedder_state.h",
"flatland_connection.h",
"software_surface.h",
],
deps = [
"//src/embedder/engine:embedder_header",
],
)
cc_library(
name = "pointer_utility",
srcs = [
"pointer_utility.h",
":logging",
],
deps = [
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-engine",
"@fuchsia_sdk//pkg/trace-provider-so",
],
)
cc_library(
name = "mouse_delegate",
srcs = [
"mouse_delegate.cc",
"mouse_delegate.h",
],
deps = [
":logging",
":pointer_utility",
"//src/embedder/engine:embedder_header",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
],
)
cc_library(
name = "keyboard",
srcs = [
"keyboard.cc",
"keyboard.h",
],
deps = [
":logging",
"//src/embedder/engine:embedder_header",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.input:fuchsia.ui.input_cc",
],
)
cc_library(
name = "text_delegate",
srcs = [
"platform_message_channels.h",
"text_delegate.cc",
"text_delegate.h",
],
deps = [
":keyboard",
":logging",
"//src/embedder/engine:embedder_header",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.input:fuchsia.ui.input_cc",
"@rapidjson",
],
)
cc_library(
name = "touch_delegate",
srcs = [
"touch_delegate.cc",
"touch_delegate.h",
],
deps = [
":logging",
":pointer_utility",
"//src/embedder/engine:embedder_header",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
],
)
# ELF binary that takes the path to Flutter app assets as an argument
# and runs the Flutter app defined by those assets.
fuchsia_cc_binary(
name = "embedder",
srcs = [
"accessibility_bridge.cc",
"accessibility_bridge.h",
"flatland_connection.cc",
"flatland_ids.h",
"flatland_view_provider.h",
"main.cc",
"platform_message_channels.h",
"pointer_utility.h",
"root_inspect_node.cc",
"root_inspect_node.h",
"software_surface.cc",
"software_surface.h",
"standard_message_codec/byte_buffer_streams.h",
"standard_message_codec/byte_streams.h",
"standard_message_codec/encodable_value.h",
"standard_message_codec/message_codec.h",
"standard_message_codec/method_call.h",
"standard_message_codec/method_codec.h",
"standard_message_codec/method_result.h",
"standard_message_codec/standard_codec_serializer.h",
"standard_message_codec/standard_message_codec.cc",
"standard_message_codec/standard_message_codec.h",
"standard_message_codec/standard_method_codec.h",
],
visibility = ["//visibility:public"],
deps = [
":embedder_state",
":keyboard",
":logging",
":mouse_delegate",
":text_delegate",
":touch_delegate",
"//src/embedder/engine:embedder_header",
"//src/embedder/engine:libflutter_engine_for_platform",
"@fuchsia_sdk//fidl/fuchsia.fonts:fuchsia.fonts_cc",
"@fuchsia_sdk//fidl/fuchsia.sysmem:fuchsia.sysmem_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.app:fuchsia.ui.app_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/fit",
"@fuchsia_sdk//pkg/scenic_cpp",
"@fuchsia_sdk//pkg/sys_cpp",
"@fuchsia_sdk//pkg/syslog",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-engine",
"@fuchsia_sdk//pkg/trace-provider-so",
"@rapidjson",
],
)
fuchsia_cc_test(
name = "keyboard_unittests",
size = "small",
srcs = ["keyboard_unittests.cc"],
visibility = ["//visibility:public"],
deps = [
":embedder_state",
":keyboard",
":logging",
"//src/embedder/engine:embedder_header",
"//src/embedder/engine:libflutter_engine_for_platform",
"@com_google_googletest//:gtest_main",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/scenic_cpp",
"@rapidjson",
],
)
fuchsia_cc_test(
name = "mouse_delegate_unittests",
size = "small",
srcs = ["mouse_delegate_unittests.cc"],
visibility = ["//visibility:public"],
deps = [
":embedder_state",
":logging",
":mouse_delegate",
"//src/embedder/engine:embedder_header",
"//src/embedder/engine:libflutter_engine_for_platform",
"//src/embedder/test_util:mouse_event_builder",
"@com_google_googletest//:gtest_main",
"@fuchsia_sdk//fidl/fuchsia.accessibility.semantics:fuchsia.accessibility.semantics_cc",
"@fuchsia_sdk//fidl/fuchsia.fonts:fuchsia.fonts_cc",
"@fuchsia_sdk//fidl/fuchsia.sysmem:fuchsia.sysmem_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.app:fuchsia.ui.app_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/fdio",
"@fuchsia_sdk//pkg/fit",
"@fuchsia_sdk//pkg/scenic_cpp",
"@fuchsia_sdk//pkg/sys_cpp",
"@fuchsia_sdk//pkg/sys_inspect_cpp",
"@fuchsia_sdk//pkg/syslog",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-engine",
"@fuchsia_sdk//pkg/trace-provider-so",
],
)
fuchsia_cc_test(
name = "text_delegate_unittests",
size = "small",
srcs = ["text_delegate_unittests.cc"],
visibility = ["//visibility:public"],
deps = [
":embedder_state",
":logging",
":text_delegate",
"//src/embedder/engine:embedder_header",
"//src/embedder/engine:libflutter_engine_for_platform",
"@com_google_googletest//:gtest_main",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/scenic_cpp",
"@rapidjson",
],
)
fuchsia_cc_test(
name = "touch_delegate_unittests",
size = "small",
srcs = ["touch_delegate_unittests.cc"],
visibility = ["//visibility:public"],
deps = [
":embedder_state",
":logging",
":touch_delegate",
"//src/embedder/engine:embedder_header",
"//src/embedder/engine:libflutter_engine_for_platform",
"//src/embedder/test_util:touch_event_builder",
"@com_google_googletest//:gtest_main",
"@fuchsia_sdk//fidl/fuchsia.fonts:fuchsia.fonts_cc",
"@fuchsia_sdk//fidl/fuchsia.sysmem:fuchsia.sysmem_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.app:fuchsia.ui.app_cc",
"@fuchsia_sdk//fidl/fuchsia.ui.composition:fuchsia.ui.composition_cc",
"@fuchsia_sdk//pkg/async-loop-cpp",
"@fuchsia_sdk//pkg/async-loop-default",
"@fuchsia_sdk//pkg/fdio",
"@fuchsia_sdk//pkg/fit",
"@fuchsia_sdk//pkg/scenic_cpp",
"@fuchsia_sdk//pkg/sys_cpp",
"@fuchsia_sdk//pkg/syslog",
"@fuchsia_sdk//pkg/trace",
"@fuchsia_sdk//pkg/trace-engine",
"@fuchsia_sdk//pkg/trace-provider-so",
],
)
fuchsia_test_package(
name = "keyboard_unittests_pkg",
package_name = "keyboard_unittests_pkg",
components = [
":keyboard_unittests",
],
visibility = ["//visibility:public"],
deps = [
"//src/embedder/engine:libflutter_engine_pkg_resource",
],
)
fuchsia_test_package(
name = "mouse_delegate_unittests_pkg",
package_name = "mouse_delegate_unittests_pkg",
components = [
":mouse_delegate_unittests",
],
visibility = ["//visibility:public"],
deps = [
"//src/embedder/engine:libflutter_engine_pkg_resource",
],
)
fuchsia_test_package(
name = "text_delegate_unittests_pkg",
package_name = "text_delegate_unittests_pkg",
components = [
":text_delegate_unittests",
],
visibility = ["//visibility:public"],
deps = [
"//src/embedder/engine:libflutter_engine_pkg_resource",
],
)
fuchsia_test_package(
name = "touch_delegate_unittests_pkg",
package_name = "touch_delegate_unittests_pkg",
components = [
":touch_delegate_unittests",
],
visibility = ["//visibility:public"],
deps = [
"//src/embedder/engine:libflutter_engine_pkg_resource",
],
)
fuchsia_component_manifest(
name = "embedder_manifest",
src = "meta/embedder.cml",
includes = [
"@fuchsia_sdk//pkg/syslog:client",
"@fuchsia_sdk//pkg/vulkan:client",
],
visibility = ["//visibility:public"],
)