mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This was only necessary when the Engine had to build in multiple buildroots where the sources where checked out at different paths relative to the buildroot. This is no longer the case and there are already cases GN rules have been written that mix and match variable usage with the direct specification of the path to the Flutter sources relative to the sole buildroot.
150 lines
4.4 KiB
Plaintext
150 lines
4.4 KiB
Plaintext
# Copyright 2013 The Flutter Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
assert(is_fuchsia)
|
|
|
|
import("//build/fuchsia/sdk.gni")
|
|
|
|
# Builds a flutter_runner
|
|
#
|
|
# Parameters:
|
|
#
|
|
# output_name (required):
|
|
# The name of the resulting binary.
|
|
#
|
|
# extra_deps (required):
|
|
# Any additional dependencies.
|
|
#
|
|
# product (required):
|
|
# Whether to link against a Product mode Dart VM.
|
|
#
|
|
# extra_defines (optional):
|
|
# Any additional preprocessor defines.
|
|
template("flutter_runner") {
|
|
assert(defined(invoker.output_name), "flutter_runner must define output_name")
|
|
assert(defined(invoker.extra_deps), "flutter_runner must define extra_deps")
|
|
assert(defined(invoker.product), "flutter_runner must define product")
|
|
|
|
invoker_output_name = invoker.output_name
|
|
extra_deps = invoker.extra_deps
|
|
|
|
extra_defines = []
|
|
if (defined(invoker.extra_defines)) {
|
|
extra_defines += invoker.extra_defines
|
|
}
|
|
|
|
executable(target_name) {
|
|
output_name = invoker_output_name
|
|
|
|
defines = extra_defines
|
|
|
|
libs = []
|
|
|
|
sources = [
|
|
"accessibility_bridge.cc",
|
|
"accessibility_bridge.h",
|
|
"component.cc",
|
|
"component.h",
|
|
"compositor_context.cc",
|
|
"compositor_context.h",
|
|
"engine.cc",
|
|
"engine.h",
|
|
"fuchsia_intl.cc",
|
|
"fuchsia_intl.h",
|
|
"isolate_configurator.cc",
|
|
"isolate_configurator.h",
|
|
"logging.h",
|
|
"loop.cc",
|
|
"loop.h",
|
|
"main.cc",
|
|
"platform_view.cc",
|
|
"platform_view.h",
|
|
"runner.cc",
|
|
"runner.h",
|
|
"session_connection.cc",
|
|
"session_connection.h",
|
|
"surface.cc",
|
|
"surface.h",
|
|
"task_observers.cc",
|
|
"task_observers.h",
|
|
"task_runner_adapter.cc",
|
|
"task_runner_adapter.h",
|
|
"thread.cc",
|
|
"thread.h",
|
|
"unique_fdio_ns.h",
|
|
"vsync_recorder.cc",
|
|
"vsync_recorder.h",
|
|
"vsync_waiter.cc",
|
|
"vsync_waiter.h",
|
|
"vulkan_surface.cc",
|
|
"vulkan_surface.h",
|
|
"vulkan_surface_pool.cc",
|
|
"vulkan_surface_pool.h",
|
|
"vulkan_surface_producer.cc",
|
|
"vulkan_surface_producer.h",
|
|
]
|
|
|
|
# The use of these dependencies is temporary and will be moved behind the
|
|
# embedder API.
|
|
flutter_deps = [
|
|
"../flutter:fuchsia_gpu_configuration",
|
|
"//flutter/assets",
|
|
"//flutter/common",
|
|
"//flutter/flow",
|
|
"//flutter/lib/ui",
|
|
"//flutter/runtime",
|
|
"//flutter/third_party/txt",
|
|
"//flutter/vulkan",
|
|
"//flutter/fml",
|
|
"//flutter/shell/common",
|
|
]
|
|
|
|
_fuchsia_platform = "//flutter/shell/platform/fuchsia"
|
|
|
|
# TODO(kaushikiska) evaluate if all of these are needed.
|
|
fuchsia_deps = [
|
|
"${_fuchsia_platform}/dart-pkg/fuchsia",
|
|
"${_fuchsia_platform}/dart-pkg/zircon",
|
|
"${_fuchsia_platform}/runtime/dart/utils",
|
|
]
|
|
|
|
deps = [
|
|
"$fuchsia_sdk_root/fidl:fuchsia.accessibility.semantics",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.fonts",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.images",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.intl",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.io",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.sys",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.ui.app",
|
|
"$fuchsia_sdk_root/fidl:fuchsia.ui.scenic",
|
|
"$fuchsia_sdk_root/pkg:async-cpp",
|
|
"$fuchsia_sdk_root/pkg:async-default",
|
|
"$fuchsia_sdk_root/pkg:async-loop",
|
|
"$fuchsia_sdk_root/pkg:async-loop-cpp",
|
|
"$fuchsia_sdk_root/pkg:fdio",
|
|
"$fuchsia_sdk_root/pkg:fidl_cpp",
|
|
"$fuchsia_sdk_root/pkg:scenic_cpp",
|
|
"$fuchsia_sdk_root/pkg:sys_cpp",
|
|
"$fuchsia_sdk_root/pkg:syslog",
|
|
"$fuchsia_sdk_root/pkg:trace",
|
|
"$fuchsia_sdk_root/pkg:trace-engine",
|
|
"$fuchsia_sdk_root/pkg:trace-provider-so",
|
|
"$fuchsia_sdk_root/pkg:vfs_cpp",
|
|
"$fuchsia_sdk_root/pkg:zx",
|
|
"//third_party/skia",
|
|
"//flutter/third_party/tonic",
|
|
] + fuchsia_deps + flutter_deps + extra_deps
|
|
|
|
# The flags below are needed so that Dart's CPU profiler can walk the
|
|
# C++ stack.
|
|
cflags = [ "-fno-omit-frame-pointer" ]
|
|
|
|
if (!invoker.product) {
|
|
# This flag is needed so that the call to dladdr() in Dart's native symbol
|
|
# resolver can report good symbol information for the CPU profiler.
|
|
ldflags = [ "-rdynamic" ]
|
|
}
|
|
}
|
|
}
|