blob: 164a92e68624161a06e43b953022918df3f0715e [file] [log] [blame]
# Copyright 2016 The Chromium 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("//third_party/dart/runtime/bin/vmservice/vmservice_sources.gni")
import("$flutter_root/common/config.gni")
import("$flutter_root/testing/testing.gni")
action("gen_embedded_resources_cc") {
script = "//third_party/dart/runtime/tools/create_resources.py"
output_file = "$target_gen_dir/embedded_resources.cc"
outputs = [
output_file,
]
inputs = rebase_path(vmservice_sources,
"",
"//third_party/dart/runtime/bin/vmservice")
args = [
"--output",
rebase_path(output_file),
"--outer_namespace",
"flutter",
"--inner_namespace",
"runtime",
"--table_name",
"flutter_embedded_service_isolate",
"--root_prefix",
rebase_path("//third_party/dart/runtime/bin/"),
] + rebase_path(inputs)
}
source_set("embedded_resources_cc") {
sources = [
"$target_gen_dir/embedded_resources.cc",
]
deps = [
":gen_embedded_resources_cc",
]
public_configs = [ "$flutter_root:config" ]
}
source_set("test_font") {
sources = [
"test_font_data.cc",
"test_font_data.h",
]
deps = [
"//third_party/skia",
]
public_configs = [ "$flutter_root:config" ]
defines = []
if (flutter_runtime_mode == "debug" || current_toolchain == host_toolchain) {
# Though the test font data is small, we dont want to add to the binary size
# on the device (in profile and release modes). We only add the same on the
# host test shells and the debug device shell.
defines += [ "EMBED_TEST_FONT_DATA=1" ]
}
}
source_set("runtime") {
sources = [
"dart_isolate.cc",
"dart_isolate.h",
"dart_service_isolate.cc",
"dart_service_isolate.h",
"dart_snapshot.cc",
"dart_snapshot.h",
"dart_snapshot_buffer.cc",
"dart_snapshot_buffer.h",
"dart_vm.cc",
"dart_vm.h",
"embedder_resources.cc",
"embedder_resources.h",
"runtime_controller.cc",
"runtime_controller.h",
"runtime_delegate.cc",
"runtime_delegate.h",
"service_protocol.cc",
"service_protocol.h",
"start_up.cc",
"start_up.h",
]
deps = [
":embedded_resources_cc",
":test_font",
"$flutter_root/assets",
"$flutter_root/common",
"$flutter_root/flow",
"$flutter_root/fml",
"$flutter_root/lib/io",
"$flutter_root/lib/ui",
"$flutter_root/third_party/txt",
"//third_party/dart/runtime:dart_api",
"//third_party/dart/runtime/bin:embedded_dart_io",
"//third_party/rapidjson",
"//third_party/skia",
"//third_party/tonic",
]
public_configs = [ "$flutter_root:config" ]
if (flutter_runtime_mode != "release" &&
flutter_runtime_mode != "dynamic_release" && !is_fuchsia) {
# Only link in Observatory in non-release modes on non-Fuchsia. Fuchsia
# instead puts Observatory into the runner's package.
deps += [ "//third_party/dart/runtime/observatory:embedded_observatory_archive" ]
}
}
test_fixtures("runtime_fixtures") {
fixtures = [ "fixtures/simple_main.dart" ]
}
executable("runtime_unittests") {
testonly = true
sources = [
"dart_isolate_unittests.cc",
"dart_vm_unittests.cc",
]
deps = [
":runtime",
":runtime_fixtures",
"$flutter_root/fml",
"$flutter_root/lib/snapshot",
"$flutter_root/testing",
"//third_party/dart/runtime:libdart_jit",
"//third_party/skia",
"//third_party/tonic",
]
if (is_linux) {
ldflags = [ "-rdynamic" ]
}
}