Chromium Code Reviews| Index: runtime/BUILD.gn |
| diff --git a/runtime/BUILD.gn b/runtime/BUILD.gn |
| index d4cd0bccf55b79682ae4836a590c4ef91ff591a9..51854253c2cb4b90ed81b662f88ae4cd39e44327 100644 |
| --- a/runtime/BUILD.gn |
| +++ b/runtime/BUILD.gn |
| @@ -12,9 +12,15 @@ declare_args() { |
| # while themselves doing a Debug build. |
| dart_debug = false |
| - # Product mode drops many features (e.g. debugger, profiler, etc) in order to |
| - # shrink download size and decrease memory and cpu usage. |
| - dart_product = 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. |
| + dart_runtime_mode = "develop" |
| # Explicitly set the target architecture in case of precompilation. Leaving |
| # this unspecified results in automatic target architecture detection. |
| @@ -28,79 +34,59 @@ config("dart_public_config") { |
| ] |
| } |
| -config("dart_config") { |
| +# Controls PRODUCT #define. |
| +config("dart_product_config") { |
| defines = [] |
| - if (dart_target_arch != "") { |
| - if (dart_target_arch == "arm") { |
| - defines += [ "TARGET_ARCH_ARM" ] |
| - } else if (dart_target_arch == "arm64") { |
| - defines += [ "TARGET_ARCH_ARM64" ] |
| - } else if (dart_target_arch == "mips") { |
| - defines += [ "TARGET_ARCH_MIPS" ] |
| - } else if (dart_target_arch == "x64") { |
| - defines += [ "TARGET_ARCH_X64" ] |
| - } else if (dart_target_arch == "ia32") { |
| - defines += [ "TARGET_ARCH_IA32" ] |
| - } else if (dart_target_arch == "dbc") { |
| - defines += [ "TARGET_ARCH_DBC" ] |
| - } else { |
| - print("Invalid |dart_target_arch|") |
| - assert(false) |
| - } |
| - } |
| - |
| - if (dart_debug) { |
| - defines += ["DEBUG"] |
| - } else { |
| - defines += ["NDEBUG"] |
| + if ((dart_runtime_mode != "develop") && |
| + (dart_runtime_mode != "profile") && |
| + (dart_runtime_mode != "release")) { |
| + print("Invalid |dart_runtime_mode|") |
| + assert(false) |
| } |
| - if (dart_product) { |
| + if (dart_runtime_mode == "release") { |
| if (dart_debug) { |
| - print("Debug and product mode are mutually exclusive.") |
| + print("Debug and release mode are mutually exclusive.") |
| } |
| assert(!dart_debug) |
| defines += ["PRODUCT"] |
| } |
| +} |
| - # Ideally this would only be enabled for gen_snapshot |
| - defines += ["DART_PRECOMPILER"] |
| - |
| - cflags = [ |
| - "-Werror", |
| - "-Wall", |
| - "-Wextra", # Also known as -W. |
| - "-Wno-unused-parameter", |
| - "-Wnon-virtual-dtor", |
| - "-Wvla", |
| - "-Wno-conversion-null", |
| - "-Woverloaded-virtual", |
| - "-g3", |
| - "-ggdb3", |
| - "-fno-rtti", |
| - "-fno-exceptions", |
| - ] |
| +# Controls DART_PRECOMPILED_RUNTIME #define. |
| +config("dart_precompiled_runtime_config") { |
| + defines = [] |
| - if (dart_debug) { |
| - cflags += [ |
| - "-O1", |
| - ] |
| - } else { |
| - cflags += [ |
| - "-O3", |
| - ] |
| + if ((dart_runtime_mode != "develop") && |
| + (dart_runtime_mode != "profile") && |
| + (dart_runtime_mode != "release")) { |
| + print("Invalid |dart_runtime_mode|") |
| + assert(false) |
| } |
| - if (is_asan) { |
| - ldflags = [ |
| - "-Wl,-u_sanitizer_options_link_helper", |
| - "-fsanitize=address", |
| - ] |
| + if (dart_runtime_mode == "release") { |
| + if (dart_debug) { |
| + print("Debug and release mode are mutually exclusive.") |
| + } |
| + assert(!dart_debug) |
| + defines += ["DART_PRECOMPILED_RUNTIME"] |
| + } else if (dart_runtime_mode == "profile") { |
| + if (dart_debug) { |
| + print("Debug and profile mode are mutually exclusive.") |
| + } |
| + assert(!dart_debug) |
| + defines += ["DART_PRECOMPILED_RUNTIME"] |
| } |
| } |
| -config("dart_config_no_precompiler") { |
| +# Controls DART_PRECOMPILER #define. |
| +config("dart_precompiler_config") { |
| + defines = [] |
| + defines += ["DART_PRECOMPILER"] |
| +} |
| + |
| +config("dart_config") { |
| defines = [] |
| if (dart_target_arch != "") { |
| @@ -128,14 +114,6 @@ config("dart_config_no_precompiler") { |
| defines += ["NDEBUG"] |
| } |
| - if (dart_product) { |
| - if (dart_debug) { |
| - print("Debug and product mode are mutually exclusive.") |
| - } |
| - assert(!dart_debug) |
| - defines += ["PRODUCT"] |
| - } |
| - |
| cflags = [ |
| "-Werror", |
| "-Wall", |
| @@ -169,9 +147,8 @@ config("dart_config_no_precompiler") { |
| } |
| } |
| - |
| static_library("libdart") { |
| - configs += [":dart_config"] |
| + configs += [":dart_config", ":dart_product_config", ":dart_precompiled_runtime_config"] |
|
rmacnak
2016/04/22 02:48:54
(throughout) long line, split like deps
Cutch
2016/04/22 14:05:15
Done here and elsewhere.
|
| deps = [ |
| "vm:libdart_lib", |
| "vm:libdart_vm", |
| @@ -196,37 +173,6 @@ static_library("libdart") { |
| ] |
| } |
| - |
| -static_library("libdart_precompiled_runtime") { |
| - configs += [":dart_config_no_precompiler"] |
| - deps = [ |
| - "vm:libdart_lib_precompiled_runtime", |
| - "vm:libdart_vm_precompiled_runtime", |
| - "third_party/double-conversion/src:libdouble_conversion", |
| - ":generate_version_cc_file", |
| - ] |
| - include_dirs = [ |
| - ".", |
| - ] |
| - public_configs = [":dart_public_config"] |
| - sources = [ |
| - "include/dart_api.h", |
| - "include/dart_mirrors_api.h", |
| - "include/dart_native_api.h", |
| - "include/dart_tools_api.h", |
| - "vm/dart_api_impl.cc", |
| - "vm/debugger_api_impl.cc", |
| - "vm/mirrors_api_impl.cc", |
| - "vm/native_api_impl.cc", |
| - "vm/version.h", |
| - "$target_gen_dir/version.cc", |
| - ] |
| - defines = [ |
| - "DART_PRECOMPILED_RUNTIME", |
| - ] |
| -} |
| - |
| - |
| action("generate_version_cc_file") { |
| deps = [ |
| ":libdart_dependency_helper", |
| @@ -251,7 +197,7 @@ action("generate_version_cc_file") { |
| executable("libdart_dependency_helper") { |
| - configs += [":dart_config"] |
| + configs += [":dart_config", ":dart_product_config", ":dart_precompiled_runtime_config"] |
| deps = [ |
| "vm:libdart_lib_nosnapshot", |
| "vm:libdart_lib", |