| # 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" ] |
| } |
| } |