57b27a7b44
- Updated conditional compilation flags throughout the runtime codebase to transition from DART_DYNAMIC_MODULES to DART_BYTECODE_INTERPRETER. - Adjusted logic in various files including object_graph_copy.cc, object_reload.cc, profiler.cc, and others to ensure compatibility with the new interpreter model. - Ensured that all references to dynamic modules are replaced with bytecode interpreter checks, maintaining functionality for interpreted code execution. - Modified stack frame handling and service-related code to align with the new interpreter architecture. - Updated tests and service implementations to reflect the changes in the runtime environment. Signed-off-by: Tony <tonylu@tony-cloud.com>
125 lines
4.7 KiB
Plaintext
125 lines
4.7 KiB
Plaintext
# Copyright (c) 2017, 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.
|
|
|
|
declare_args() {
|
|
# Instead of using is_debug, we introduce a different flag for specifying a
|
|
# Debug build of Dart so that clients can still use a Release build of Dart
|
|
# while themselves doing a Debug build.
|
|
dart_debug = false
|
|
|
|
# Set the runtime mode. This affects how the runtime is built and what
|
|
# features it has. Valid values are:
|
|
# 'develop' (the default) - VM is built to run as a JIT with all development
|
|
# features enabled.
|
|
# 'profile' - The VM is built to run with AOT compiled code with only the
|
|
# CPU profiling features enabled.
|
|
# 'release' - The VM is built to run with AOT compiled code with no developer
|
|
# features enabled.
|
|
#
|
|
# These settings are only used for Flutter, at the moment. A standalone build
|
|
# of the Dart VM should leave this set to "develop", and should set
|
|
# 'is_debug', 'is_release', or 'is_product'.
|
|
#
|
|
# TODO(rmacnak): dart_runtime_mode no longer selects whether libdart is build
|
|
# for JIT or AOT, since libdart waw split into libdart_jit and
|
|
# libdart_aotruntime. We should remove this flag and just set
|
|
# dart_debug/dart_product.
|
|
dart_runtime_mode = "develop"
|
|
|
|
# Explicitly set the target architecture to use a simulator.
|
|
# Available options are: arm, arm64, x64, ia32, riscv32, riscv64.
|
|
dart_target_arch = target_cpu
|
|
|
|
# Force use of the simulator even when the Dart target arch matches the
|
|
# current cpu.
|
|
dart_force_simulator = false
|
|
|
|
# The optimization level to use for debug builds. Defaults to 0 for builds
|
|
# with code coverage enabled.
|
|
dart_debug_optimization_level = "2"
|
|
|
|
# The optimization level to use for non-debug builds.
|
|
dart_default_optimization_level = "2"
|
|
|
|
# Whether to enable code coverage for the standalone VM.
|
|
dart_vm_code_coverage = false
|
|
|
|
# Whether to disable support for secure sockets in the Dart IO library.
|
|
dart_disable_secure_socket = false
|
|
|
|
# Whether to link Crashpad library for crash handling. Only supported on
|
|
# Windows for now.
|
|
dart_use_crashpad = false
|
|
|
|
# Whether the Dart binary version string should include the git hash and
|
|
# git commit time.
|
|
dart_version_git_info = true
|
|
|
|
# Controls whether the VM is built as a static library or a shared library.
|
|
dart_component_kind = "static_library"
|
|
|
|
# Whether the VM includes the kernel service in all modes (debug, release,
|
|
# product).
|
|
exclude_kernel_service = false
|
|
|
|
# Whether libdart should export the symbols of the Dart API.
|
|
dart_lib_export_symbols = true
|
|
|
|
# Whether to use compressed pointers.
|
|
dart_use_compressed_pointers = false
|
|
|
|
# Whether the sampling heap profiler should be included in product mode.
|
|
dart_include_sampling_heap_profiler = false
|
|
|
|
# Whether to support dynamic loading and interpretation of Dart bytecode.
|
|
dart_dynamic_modules = false
|
|
|
|
# Whether to support Shorebird's no-DDM bytecode interpreter path. This
|
|
# enables VM bytecode loading/interpreting without defining
|
|
# DART_DYNAMIC_MODULES or exposing the dynamic module Dart package API.
|
|
dart_enable_shorebird_interpreter = false
|
|
|
|
# Whether to expose the compact AOT patch installation API. This is separate
|
|
# from dart_dynamic_modules; iOS may combine it with
|
|
# dart_enable_shorebird_interpreter for App Store-safe patch payloads.
|
|
dart_enable_aot_patching = false
|
|
}
|
|
|
|
declare_args() {
|
|
# Whether features that depend on Perfetto should be built. We need
|
|
# to define this to allow excluding code that depends on Perfetto
|
|
# from being built on platforms which have a problem linking in the
|
|
# Perfetto library, e.g. watchOS.
|
|
#
|
|
# We also exclude perfetto support when producing builds which set
|
|
# dart_runtime_mode to release e.g. Dart Product builds or Flutter
|
|
# release engine variants. This does not affect product AOT runtime
|
|
# which shipped with Dart SDK.
|
|
#
|
|
# Note: including Perfetto support automatically includes profiler
|
|
# into the resulting binary.
|
|
#
|
|
# is_watchos may be undefined when Dart SDK is built from the Flutter
|
|
# engine tree.
|
|
dart_support_perfetto =
|
|
!((defined(is_watchos) && is_watchos) || dart_runtime_mode == "release")
|
|
|
|
# The analyze_snapshot tool is only supported on 64 bit AOT builds.
|
|
build_analyze_snapshot =
|
|
dart_target_arch == "x64" || dart_target_arch == "arm64" ||
|
|
dart_target_arch == "riscv64"
|
|
}
|
|
|
|
if (is_fuchsia) {
|
|
declare_args() {
|
|
# In case some repo uses build rules in dart/sdk, but put fuchsia-gn-sdk in
|
|
# a different folder, this gn arg can specify the location of
|
|
# fuchsia-gn-sdk.
|
|
if (!defined(fuchsia_gn_sdk)) {
|
|
fuchsia_gn_sdk = "//third_party/fuchsia/gn-sdk"
|
|
}
|
|
}
|
|
import(fuchsia_gn_sdk + "/src/gn_configs.gni")
|
|
}
|