mirror of
https://github.com/dart-lang/sdk
synced 2024-09-19 20:41:45 +00:00
9f68048cae
The FIDL library `fuchsia.deprecatedtimezone` is going away. There are
different and better ways to obtain the same functionality. This change
removes the dependency on `fuchsia.deprecatedtimezone` from the Dart SDK.
Thus setting the stage for the removal of `fuchsia.deprecatedtimezone`.
Adds inspect metrics that allow whitebox testing of the runners. Here's
a sample `fx iquery` excerpt from a running device, showing a dart
runner exposing the same OS diagnostic metrics.
Adds support for asynchronous timezone updates, which was missing from
previous versions of this commit.
```
dart.cmx:
metadata:
filename = fuchsia.inspect.Tree
component_url = fuchsia-pkg://fuchsia.com/dart_test_debug#meta/dart.cmx
timestamp = 12241877209826
payload:
root:
os:
dst_status = 1
get_profile_status = 0
num_get_profile_calls = 1
num_intl_provider_errors = 0
num_on_change_calls = 0
timezone_content_status = 0
tz_data_close_status = -1
tz_data_status = -1
```
This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.
Tested:
1. (compile locally for Fuchsia and deploy)
```
fx test //src/tests/intl
```
This runs the specific timezone tests that should break if the
functionality itself is broken.
2. Compile dart for Fuchsia and run tests:
The instructions are here: 15dfcca89f
I used the instructions above to build and run all tests from
`dart_test_debug` package. The tests were ran against the main
branch (and then, the tests that failed there were filtered out),
then the remaining tests were ran against a Dart version that
contains this change.
See:
- https://github.com/dart-lang/sdk/issues/42245
- https://github.com/dart-lang/sdk/issues/39650
Prior attempts (most recent first):
- rolled back as it... didn't compile. It turned out, when building the
change with flutter the compilation process has some different
settings, so the compilation of the change worked in flutter, but
didn't in dart. The compilation error is now fixed, and I ran
additional tests: https://dart-review.googlesource.com/c/sdk/+/155582
- rolled back as it had a regression which was not caught by tests.
Tests are fixed now at
https://fuchsia-review.googlesource.com/c/fuchsia/+/409840
Fixes #39650
TEST=See "Tested" section above.
Change-Id: Idd78ea42e3ae38dca2ab4c4126e930e53ef8a793
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185302
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
244 lines
7.5 KiB
Plaintext
244 lines
7.5 KiB
Plaintext
# Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
|
# for details. 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/executable_suffix.gni")
|
|
import("../../sdk/lib/async/async_sources.gni")
|
|
import("../../sdk/lib/collection/collection_sources.gni")
|
|
import("../../sdk/lib/convert/convert_sources.gni")
|
|
import("../../sdk/lib/core/core_sources.gni")
|
|
import("../../sdk/lib/developer/developer_sources.gni")
|
|
import("../../sdk/lib/ffi/ffi_sources.gni")
|
|
import("../../sdk/lib/internal/internal_sources.gni")
|
|
import("../../sdk/lib/isolate/isolate_sources.gni")
|
|
import("../../sdk/lib/math/math_sources.gni")
|
|
import("../../sdk/lib/mirrors/mirrors_sources.gni")
|
|
import("../../sdk/lib/typed_data/typed_data_sources.gni")
|
|
import("../../sdk/lib/vmservice/vmservice_sources.gni")
|
|
import("../../sdk_args.gni")
|
|
import("../../utils/compile_platform.gni")
|
|
import("../bin/cli_sources.gni")
|
|
import("../bin/io_sources.gni")
|
|
import("../configs.gni")
|
|
import("../lib/async_sources.gni")
|
|
import("../lib/collection_sources.gni")
|
|
import("../lib/convert_sources.gni")
|
|
import("../lib/core_sources.gni")
|
|
import("../lib/developer_sources.gni")
|
|
import("../lib/ffi_sources.gni")
|
|
import("../lib/internal_sources.gni")
|
|
import("../lib/isolate_sources.gni")
|
|
import("../lib/math_sources.gni")
|
|
import("../lib/mirrors_sources.gni")
|
|
import("../lib/profiler_sources.gni")
|
|
import("../lib/typed_data_sources.gni")
|
|
import("../lib/vmservice_sources.gni")
|
|
import("../runtime_args.gni")
|
|
import("compiler/compiler_sources.gni")
|
|
import("heap/heap_sources.gni")
|
|
import("vm_sources.gni")
|
|
|
|
if (is_fuchsia) {
|
|
import("//build/fuchsia/sdk.gni")
|
|
}
|
|
|
|
config("libdart_vm_config") {
|
|
if (is_fuchsia) {
|
|
libs = [ "zircon" ]
|
|
} else if (is_win) {
|
|
libs = [
|
|
"advapi32.lib",
|
|
"shell32.lib",
|
|
]
|
|
if (target_os != "winuwp") {
|
|
libs += [ "dbghelp.lib" ]
|
|
}
|
|
} else {
|
|
libs = [ "dl" ]
|
|
if (!is_android) {
|
|
libs += [ "pthread" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
library_for_all_configs("libdart_vm") {
|
|
target_type = "source_set"
|
|
extra_product_deps = [
|
|
"//third_party/icu:icui18n_hidden_visibility",
|
|
"//third_party/icu:icuuc_hidden_visibility",
|
|
]
|
|
extra_nonproduct_deps = [
|
|
"//third_party/icu:icui18n",
|
|
"//third_party/icu:icuuc",
|
|
]
|
|
if (is_fuchsia) {
|
|
if (using_fuchsia_gn_sdk) {
|
|
extra_deps = [
|
|
"$fuchsia_sdk_root/fidl/fuchsia.intl",
|
|
"$fuchsia_sdk_root/pkg/async",
|
|
"$fuchsia_sdk_root/pkg/async-default",
|
|
"$fuchsia_sdk_root/pkg/async-loop",
|
|
"$fuchsia_sdk_root/pkg/async-loop-default",
|
|
"$fuchsia_sdk_root/pkg/inspect",
|
|
"$fuchsia_sdk_root/pkg/inspect_service_cpp",
|
|
"$fuchsia_sdk_root/pkg/sys_cpp",
|
|
"$fuchsia_sdk_root/pkg/sys_inspect_cpp",
|
|
"$fuchsia_sdk_root/pkg/trace-engine",
|
|
]
|
|
} else if (using_fuchsia_sdk) {
|
|
extra_deps = [
|
|
"$fuchsia_sdk_root/fidl:fuchsia.intl",
|
|
"$fuchsia_sdk_root/pkg:async-loop",
|
|
"$fuchsia_sdk_root/pkg:async-loop-default",
|
|
"$fuchsia_sdk_root/pkg:inspect",
|
|
"$fuchsia_sdk_root/pkg:inspect_service_cpp",
|
|
"$fuchsia_sdk_root/pkg:sys_cpp",
|
|
"$fuchsia_sdk_root/pkg:sys_inspect_cpp",
|
|
"$fuchsia_sdk_root/pkg:trace-engine",
|
|
]
|
|
} else {
|
|
extra_deps = [
|
|
"//sdk/fidl/fuchsia.intl",
|
|
"//sdk/lib/sys/cpp",
|
|
"//sdk/lib/sys/inspect/cpp",
|
|
"//zircon/public/lib/fbl",
|
|
"//zircon/system/ulib/trace-engine",
|
|
]
|
|
}
|
|
}
|
|
public_configs = [ ":libdart_vm_config" ]
|
|
sources = vm_sources + rebase_path(compiler_api_sources, ".", "./compiler/") +
|
|
rebase_path(disassembler_sources, ".", "./compiler/") +
|
|
rebase_path(heap_sources, ".", "./heap/")
|
|
include_dirs = [ ".." ]
|
|
}
|
|
|
|
library_for_all_configs_with_compiler("libdart_compiler") {
|
|
target_type = "source_set"
|
|
public_configs = [ ":libdart_vm_config" ]
|
|
sources = rebase_path(compiler_sources, ".", "./compiler/")
|
|
include_dirs = [ ".." ]
|
|
if (is_fuchsia) {
|
|
if (using_fuchsia_gn_sdk) {
|
|
extra_deps = [ "$fuchsia_sdk_root/pkg/trace-engine" ]
|
|
} else if (using_fuchsia_sdk) {
|
|
extra_deps = [ "$fuchsia_sdk_root/pkg:trace-engine" ]
|
|
} else {
|
|
extra_deps = [
|
|
"//zircon/public/lib/fbl",
|
|
"//zircon/system/ulib/trace-engine",
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
library_for_all_configs("libdart_lib") {
|
|
target_type = "source_set"
|
|
if (is_fuchsia) {
|
|
if (using_fuchsia_gn_sdk) {
|
|
extra_deps = [ "$fuchsia_sdk_root/pkg/trace-engine" ]
|
|
} else if (using_fuchsia_sdk) {
|
|
extra_deps = [ "$fuchsia_sdk_root/pkg:trace-engine" ]
|
|
} else {
|
|
extra_deps = [
|
|
"//zircon/public/lib/fbl",
|
|
"//zircon/system/ulib/trace-engine",
|
|
]
|
|
}
|
|
}
|
|
include_dirs = [ ".." ]
|
|
allsources = async_runtime_cc_files + collection_runtime_cc_files +
|
|
core_runtime_cc_files + developer_runtime_cc_files +
|
|
internal_runtime_cc_files + isolate_runtime_cc_files +
|
|
math_runtime_cc_files + mirrors_runtime_cc_files +
|
|
typed_data_runtime_cc_files + vmservice_runtime_cc_files +
|
|
ffi_runtime_cc_files
|
|
sources = [ "bootstrap.cc" ] + rebase_path(allsources, ".", "../lib")
|
|
snapshot_sources = []
|
|
}
|
|
|
|
template("gen_vm_platform") {
|
|
assert(defined(invoker.output_postfix),
|
|
"Must define output postfix (e.g., '_strong'")
|
|
is_product_flag = dart_runtime_mode == "release"
|
|
if (defined(invoker.product_mode)) {
|
|
is_product_flag = invoker.product_mode
|
|
}
|
|
compile_platform(target_name) {
|
|
output_postfix = invoker.output_postfix
|
|
if (defined(invoker.add_implicit_vm_platform_dependency)) {
|
|
add_implicit_vm_platform_dependency =
|
|
invoker.add_implicit_vm_platform_dependency
|
|
}
|
|
single_root_scheme = "org-dartlang-sdk"
|
|
single_root_base = rebase_path("../../")
|
|
libraries_specification_uri = "org-dartlang-sdk:///sdk/lib/libraries.json"
|
|
outputs = [
|
|
"$root_out_dir/vm_platform" + output_postfix + ".dill",
|
|
"$root_out_dir/vm_outline" + output_postfix + ".dill",
|
|
]
|
|
args = [ "dart:core" ]
|
|
args += [
|
|
"-Ddart.vm.product=$is_product_flag",
|
|
"-Ddart.isVM=true",
|
|
"--nnbd-agnostic",
|
|
]
|
|
if (defined(invoker.exclude_source) && invoker.exclude_source) {
|
|
args += [ "--exclude-source" ]
|
|
}
|
|
outline = "vm_outline" + output_postfix + ".dill"
|
|
}
|
|
}
|
|
|
|
gen_vm_platform("vm_platform") {
|
|
add_implicit_vm_platform_dependency = false
|
|
exclude_source = false
|
|
output_postfix = "_strong"
|
|
}
|
|
|
|
gen_vm_platform("vm_platform_product") {
|
|
add_implicit_vm_platform_dependency = false
|
|
exclude_source = false
|
|
output_postfix = "_strong_product"
|
|
|
|
# In Debug mode we use debug binaries for dart2native.
|
|
# (see also the "dart_product_config" config)
|
|
product_mode = !is_debug
|
|
}
|
|
|
|
gen_vm_platform("vm_platform_stripped") {
|
|
add_implicit_vm_platform_dependency = false
|
|
exclude_source = true
|
|
output_postfix = "_strong_stripped"
|
|
}
|
|
|
|
group("kernel_platform_files") {
|
|
public_deps = [
|
|
":vm_platform",
|
|
":vm_platform_stripped",
|
|
]
|
|
}
|
|
|
|
executable("offsets_extractor") {
|
|
configs += [
|
|
"..:dart_arch_config",
|
|
"..:dart_config",
|
|
"..:dart_maybe_product_config",
|
|
":libdart_vm_config",
|
|
]
|
|
sources = [ "compiler/offsets_extractor.cc" ]
|
|
include_dirs = [ ".." ]
|
|
}
|
|
|
|
executable("offsets_extractor_precompiled_runtime") {
|
|
configs += [
|
|
"..:dart_arch_config",
|
|
"..:dart_config",
|
|
"..:dart_precompiled_runtime_config",
|
|
"..:dart_maybe_product_config",
|
|
":libdart_vm_config",
|
|
]
|
|
sources = [ "compiler/offsets_extractor.cc" ]
|
|
include_dirs = [ ".." ]
|
|
}
|