提交 46e06cd9 编写于 作者: T Todd Volkert 提交者: GitHub

Pass `runtime_mode` gn arg through to `ShouldEnableCheckedMode()` (#2919)

https://github.com/flutter/flutter/issues/4866
上级 6ed9eac4
......@@ -17,27 +17,30 @@ declare_args() {
# Enable asserts, even in release builds.
sky_asserts_always_on = false
# Experimental support for the Dart VM.
sky_use_dart = false
# Default to strict mode in debug builds.
if (is_debug) {
sky_dart_strict_mode = true
} else {
sky_dart_strict_mode = false
}
# Enable ahead-of-time compilation on platforms where AOT is optional.
flutter_aot = false
# Set if the Dart runtime is being built in product mode, which excludes
# development features such as the debugger.
flutter_product_mode = false
# The runtime mode ("debug", "profile", or "release")
flutter_runtime_mode = "debug"
}
# feature_defines_list ---------------------------------------------------------
feature_defines_list = []
feature_defines_list = [
"FLUTTER_RUNTIME_MODE_DEBUG=1",
"FLUTTER_RUNTIME_MODE_PROFILE=2",
"FLUTTER_RUNTIME_MODE_RELEASE=3",
]
if (flutter_runtime_mode == "debug") {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=1" ]
} else if (flutter_runtime_mode == "profile") {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=2" ]
} else if (flutter_runtime_mode == "release") {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=3" ]
} else {
feature_defines_list += [ "FLUTTER_RUNTIME_MODE=0" ]
}
if (is_debug) {
# TODO(GYP) this should also be set when release_valgrind_build is set,
......@@ -54,18 +57,6 @@ if (sky_asserts_always_on) {
feature_defines_list += [ "ENABLE_ASSERT=1" ]
}
if (sky_dart_strict_mode) {
feature_defines_list += [ "ENABLE_DART_STRICT=1" ]
}
if (sky_use_dart) {
feature_defines_list += [ "WTF_USE_DART=1" ]
}
if (flutter_aot) {
feature_defines_list += [ "FLUTTER_AOT=1" ]
}
if (flutter_product_mode) {
feature_defines_list += [ "FLUTTER_PRODUCT_MODE=1" ]
}
......@@ -90,8 +90,8 @@ static_library("core") {
"//flutter/services/pointer:interfaces",
]
if (!flutter_product_mode) {
# Only include observatory assets in non-product modes.
if (flutter_runtime_mode != "release") {
# Only include observatory assets in non-release modes.
deps += [
"//dart/runtime/observatory:embedded_observatory_archive",
]
......
......@@ -50,7 +50,7 @@ using tonic::ToDart;
namespace dart {
namespace observatory {
#if !FLUTTER_PRODUCT_MODE
#if FLUTTER_RUNTIME_MODE != FLUTTER_RUNTIME_MODE_RELEASE
// These two symbols are defined in |observatory_archive.cc| which is generated
// by the |//dart/runtime/observatory:archive_observatory| rule. Both of these
......@@ -58,7 +58,7 @@ namespace observatory {
extern unsigned int observatory_assets_archive_len;
extern const uint8_t* observatory_assets_archive;
#endif // !FLUTTER_PRODUCT_MODE
#endif // FLUTTER_RUNTIME_MODE != FLUTTER_RUNTIME_MODE_RELEASE
} // namespace observatory
} // namespace dart
......@@ -164,14 +164,14 @@ bool IsServiceIsolateURL(const char* url_name) {
String(url_name) == DART_VM_SERVICE_ISOLATE_NAME;
}
#ifdef FLUTTER_PRODUCT_MODE
#if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_RELEASE
Dart_Isolate ServiceIsolateCreateCallback(const char* script_uri,
char** error) {
return nullptr;
}
#else // FLUTTER_PRODUCT_MODE
#else // FLUTTER_RUNTIME_MODE
Dart_Isolate ServiceIsolateCreateCallback(const char* script_uri,
char** error) {
......@@ -216,7 +216,7 @@ Dart_Isolate ServiceIsolateCreateCallback(const char* script_uri,
return isolate;
}
#endif // FLUTTER_PRODUCT_MODE
#endif // FLUTTER_RUNTIME_MODE
Dart_Isolate IsolateCreateCallback(const char* script_uri,
const char* main,
......@@ -287,13 +287,13 @@ Dart_Isolate IsolateCreateCallback(const char* script_uri,
}
Dart_Handle GetVMServiceAssetsArchiveCallback() {
#if FLUTTER_PRODUCT_MODE
#if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_RELEASE
return nullptr;
#else // FLUTTER_PRODUCT_MODE
#else // FLUTTER_RUNTIME_MODE
return tonic::DartConverter<tonic::Uint8List>::ToDart(
::dart::observatory::observatory_assets_archive,
::dart::observatory::observatory_assets_archive_len);
#endif // FLUTTER_PRODUCT_MODE
#endif // FLUTTER_RUNTIME_MODE
}
static const char kStdoutStreamId[] = "Stdout";
......@@ -503,7 +503,7 @@ static bool ShouldEnableCheckedMode() {
return false;
}
#if ENABLE(DART_STRICT)
#if FLUTTER_RUNTIME_MODE == FLUTTER_RUNTIME_MODE_DEBUG
return true;
#else
return Settings::Get().enable_dart_checked_mode;
......@@ -557,7 +557,7 @@ void InitDartVM() {
FTL_CHECK(Dart_SetVMFlags(args.size(), args.data()));
#ifndef FLUTTER_PRODUCT_MODE
#if FLUTTER_RUNTIME_MODE != FLUTTER_RUNTIME_MODE_RELEASE
{
TRACE_EVENT0("flutter", "DartDebugger::InitDebugger");
// This should be called before calling Dart_Initialize.
......
......@@ -175,7 +175,7 @@ void Shell::InitStandalone(std::string icu_data_path) {
void Shell::Init() {
base::DiscardableMemoryAllocator::SetInstance(&g_discardable.Get());
#ifndef FLUTTER_PRODUCT_MODE
#if FLUTTER_RUNTIME_MODE != FLUTTER_RUNTIME_MODE_RELEASE
InitSkiaEventTracer();
#endif
......
......@@ -91,7 +91,7 @@ def to_gn_args(args):
use_dbc = args.target_os == 'ios' and not args.simulator and args.runtime_mode == 'debug'
gn_args['dart_experimental_interpreter'] = use_dbc
gn_args['flutter_product_mode'] = (gn_args['dart_runtime_mode'] == 'release')
gn_args['flutter_runtime_mode'] = args.runtime_mode
if args.target_sysroot:
gn_args['target_sysroot'] = args.target_sysroot
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册