mirror of
https://github.com/dart-lang/sdk
synced 2024-09-29 01:11:54 +00:00
[ddc] Break out builds of ddc module format
Build all ddc module format outputs in separate invocations of the compiler. This allows for DDC to detect `--modules=ddc` and `--canary` and enable library bundles. This alternate "ddc" format is where hot reload is being developed and tested. When ready, it will become the only supported module format. Change-Id: I932237c15d710d92db327177a8d6ca59d21a0a23 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378545 Reviewed-by: Srujan Gaddam <srujzs@google.com> Commit-Queue: Nicholas Shahan <nshahan@google.com>
This commit is contained in:
parent
d0b0e84027
commit
b62e1e6902
|
@ -114,8 +114,10 @@ group("ddc_stable_test_local") {
|
|||
group("ddc_canary_test_local") {
|
||||
deps = [
|
||||
":ddc_canary_sdk",
|
||||
":ddc_canary_sdk_ddc_module",
|
||||
":ddc_canary_test_pkg",
|
||||
":ddc_canary_unsound_sdk",
|
||||
":ddc_canary_unsound_sdk_ddc_module",
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -149,14 +151,22 @@ group("ddc_stable_test_pkg") {
|
|||
# Compiles to JavaScript using DDC (canary) all packages imported in tests.
|
||||
group("ddc_canary_test_pkg") {
|
||||
deps = [
|
||||
":async_helper_canary_ddc_js",
|
||||
":async_helper_canary_js",
|
||||
":async_helper_canary_unsound_ddc_js",
|
||||
":async_helper_canary_unsound_js",
|
||||
":ddc_test_pkg_outline",
|
||||
":expect_canary_ddc_js",
|
||||
":expect_canary_js",
|
||||
":expect_canary_unsound_ddc_js",
|
||||
":expect_canary_unsound_js",
|
||||
":js_canary_ddc_js",
|
||||
":js_canary_js",
|
||||
":js_canary_unsound_ddc_js",
|
||||
":js_canary_unsound_js",
|
||||
":meta_canary_ddc_js",
|
||||
":meta_canary_js",
|
||||
":meta_canary_unsound_ddc_js",
|
||||
":meta_canary_unsound_js",
|
||||
]
|
||||
}
|
||||
|
@ -179,6 +189,8 @@ template("ddc_compile") {
|
|||
"Need 'package' in $target_name (the name of the package)")
|
||||
assert(defined(invoker.sound_null_safety),
|
||||
"Need 'sound_null_safety' in $target_name.")
|
||||
assert(defined(invoker.canary), "Need 'canary' in $target_name.")
|
||||
assert(defined(invoker.modules), "Need 'modules' in $target_name.")
|
||||
|
||||
# Determine one of four possible directories for the JavaScript output to be
|
||||
# generated:
|
||||
|
@ -214,7 +226,7 @@ template("ddc_compile") {
|
|||
|
||||
prebuilt_dart_action(target_name) {
|
||||
script = "../../pkg/dev_compiler/bin/dartdevc.dart"
|
||||
module = invoker.package
|
||||
package_name = invoker.package
|
||||
out_dir = rebase_path("$js_gen_dir")
|
||||
sdk_path = rebase_path(sdk_outline)
|
||||
pkg_root = rebase_path("$root_build_dir/../../pkg")
|
||||
|
@ -229,29 +241,32 @@ template("ddc_compile") {
|
|||
"$target_gen_dir/ddc_files.stamp",
|
||||
]
|
||||
|
||||
outputs = [
|
||||
"$js_gen_dir/amd/$module.js",
|
||||
"$js_gen_dir/amd/$module.js.map",
|
||||
"$js_gen_dir/ddc/$module.js",
|
||||
"$js_gen_dir/ddc/$module.js.map",
|
||||
]
|
||||
outputs = []
|
||||
args = []
|
||||
foreach(module, invoker.modules) {
|
||||
outputs += [
|
||||
"$js_gen_dir/$module/$package_name.js",
|
||||
"$js_gen_dir/$module/$package_name.js.map",
|
||||
]
|
||||
|
||||
args += [
|
||||
"--modules=$module",
|
||||
"-o$out_dir/$module/$package_name.js",
|
||||
]
|
||||
}
|
||||
|
||||
vm_args = [ "-Dsdk_hash=$sdk_hash" ]
|
||||
|
||||
args = [
|
||||
args += [
|
||||
"--no-summarize",
|
||||
"--multi-root-output-path=$pkg_root",
|
||||
"--dart-sdk-summary=$sdk_path",
|
||||
"--modules=amd",
|
||||
"-o$out_dir/amd/$module.js",
|
||||
"--modules=ddc",
|
||||
"-o$out_dir/ddc/$module.js",
|
||||
"package:$module/$module.dart",
|
||||
"package:$package_name/$package_name.dart",
|
||||
]
|
||||
|
||||
if (defined(invoker.extra_libraries)) {
|
||||
foreach(lib, invoker.extra_libraries) {
|
||||
args += [ "package:$module/$lib.dart" ]
|
||||
args += [ "package:$package_name/$lib.dart" ]
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -349,24 +364,48 @@ package_kernel_outline("async_helper_outline_unsound") {
|
|||
ddc_compile("async_helper_stable_js") {
|
||||
package = "async_helper"
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("async_helper_canary_js") {
|
||||
package = "async_helper"
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("async_helper_canary_ddc_js") {
|
||||
package = "async_helper"
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("async_helper_stable_unsound_js") {
|
||||
package = "async_helper"
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("async_helper_canary_unsound_js") {
|
||||
package = "async_helper"
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("async_helper_canary_unsound_ddc_js") {
|
||||
package = "async_helper"
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -386,6 +425,10 @@ ddc_compile("expect_stable_js") {
|
|||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
|
@ -393,6 +436,15 @@ ddc_compile("expect_canary_js") {
|
|||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("expect_canary_ddc_js") {
|
||||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
|
@ -400,6 +452,10 @@ ddc_compile("expect_stable_unsound_js") {
|
|||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -407,6 +463,15 @@ ddc_compile("expect_canary_unsound_js") {
|
|||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("expect_canary_unsound_ddc_js") {
|
||||
package = "expect"
|
||||
extra_libraries = [ "minitest" ]
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -426,6 +491,10 @@ ddc_compile("js_stable_js") {
|
|||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
|
@ -433,12 +502,26 @@ ddc_compile("js_canary_js") {
|
|||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("js_canary_ddc_js") {
|
||||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("js_stable_unsound_js") {
|
||||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -446,6 +529,15 @@ ddc_compile("js_canary_unsound_js") {
|
|||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("js_canary_unsound_ddc_js") {
|
||||
package = "js"
|
||||
extra_libraries = [ "js_util" ]
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -462,24 +554,48 @@ package_kernel_outline("meta_outline_unsound") {
|
|||
ddc_compile("meta_stable_js") {
|
||||
package = "meta"
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("meta_canary_js") {
|
||||
package = "meta"
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("meta_canary_ddc_js") {
|
||||
package = "meta"
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile("meta_stable_unsound_js") {
|
||||
package = "meta"
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("meta_canary_unsound_js") {
|
||||
package = "meta"
|
||||
canary = true
|
||||
modules = [ "amd" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile("meta_canary_unsound_ddc_js") {
|
||||
package = "meta"
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
|
@ -527,6 +643,8 @@ compile_ddc_platform("ddc_platform_unsound") {
|
|||
template("ddc_compile_sdk") {
|
||||
assert(defined(invoker.sound_null_safety),
|
||||
"Need 'sound_null_safety' in $target_name.")
|
||||
assert(defined(invoker.canary), "Need 'canary' in $target_name.")
|
||||
assert(defined(invoker.modules), "Need 'modules' in $target_name.")
|
||||
|
||||
# Determine one of four possible directories for the JavaScript output to be
|
||||
# generated:
|
||||
|
@ -559,22 +677,28 @@ template("ddc_compile_sdk") {
|
|||
|
||||
inputs = [ platform_input ]
|
||||
|
||||
outputs = [
|
||||
"$js_gen_dir/amd/dart_sdk.js",
|
||||
"$js_gen_dir/amd/dart_sdk.js.map",
|
||||
"$js_gen_dir/common/dart_sdk.js",
|
||||
"$js_gen_dir/common/dart_sdk.js.map",
|
||||
"$js_gen_dir/es6/dart_sdk.js",
|
||||
"$js_gen_dir/es6/dart_sdk.js.map",
|
||||
"$js_gen_dir/ddc/dart_sdk.js",
|
||||
"$js_gen_dir/ddc/dart_sdk.js.map",
|
||||
]
|
||||
outputs = []
|
||||
args = []
|
||||
|
||||
foreach(module, invoker.modules) {
|
||||
outputs += [
|
||||
"$js_gen_dir/$module/dart_sdk.js",
|
||||
"$js_gen_dir/$module/dart_sdk.js.map",
|
||||
]
|
||||
|
||||
args += [
|
||||
"--modules",
|
||||
"$module",
|
||||
"-o",
|
||||
rebase_path("$js_gen_dir/$module/dart_sdk.js"),
|
||||
]
|
||||
}
|
||||
|
||||
vm_args = [ "-Dsdk_hash=$sdk_hash" ]
|
||||
|
||||
script = "../../pkg/dev_compiler/bin/dartdevc.dart"
|
||||
|
||||
args = [
|
||||
args += [
|
||||
"--multi-root-scheme",
|
||||
"org-dartlang-sdk",
|
||||
"--multi-root-output-path",
|
||||
|
@ -586,22 +710,6 @@ template("ddc_compile_sdk") {
|
|||
# These JavaScript files and source maps are no longer packaged into the
|
||||
# released SDK.
|
||||
rebase_path("$target_gen_dir/../../../dart-sdk"),
|
||||
"--modules",
|
||||
"amd",
|
||||
"-o",
|
||||
rebase_path("$js_gen_dir/amd/dart_sdk.js"),
|
||||
"--modules",
|
||||
"common",
|
||||
"-o",
|
||||
rebase_path("$js_gen_dir/common/dart_sdk.js"),
|
||||
"--modules",
|
||||
"es6",
|
||||
"-o",
|
||||
rebase_path("$js_gen_dir/es6/dart_sdk.js"),
|
||||
"--modules",
|
||||
"ddc",
|
||||
"-o",
|
||||
rebase_path("$js_gen_dir/ddc/dart_sdk.js"),
|
||||
rebase_path("$platform_input"),
|
||||
]
|
||||
|
||||
|
@ -619,20 +727,66 @@ template("ddc_compile_sdk") {
|
|||
|
||||
ddc_compile_sdk("ddc_stable_sdk") {
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"common",
|
||||
"es6",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile_sdk("ddc_stable_unsound_sdk") {
|
||||
canary = false
|
||||
modules = [
|
||||
"amd",
|
||||
"common",
|
||||
"es6",
|
||||
"ddc",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
ddc_compile_sdk("ddc_canary_sdk") {
|
||||
canary = true
|
||||
modules = [
|
||||
"amd",
|
||||
"common",
|
||||
"es6",
|
||||
]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
# Compiles the DDC SDK JavaScript modules from the platform .dill file in the
|
||||
# "ddc" module format only.
|
||||
#
|
||||
# This allows for them to be built individually (only passing one `--modules`
|
||||
# flag value) so that when also passing the `--canary` flag it will trigger
|
||||
# DDC to enable the option for the new library bundle format.
|
||||
ddc_compile_sdk("ddc_canary_sdk_ddc_module") {
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = true
|
||||
}
|
||||
|
||||
ddc_compile_sdk("ddc_canary_unsound_sdk") {
|
||||
canary = true
|
||||
modules = [
|
||||
"amd",
|
||||
"common",
|
||||
"es6",
|
||||
]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
||||
# Compiles the DDC SDK JavaScript modules from the platform .dill file in the
|
||||
# "ddc" module format only.
|
||||
#
|
||||
# This allows for them to be built individually (only passing one `--modules`
|
||||
# flag value) so that when also passing the `--canary` flag it will trigger
|
||||
# DDC to enable the option for the new library bundle format.
|
||||
ddc_compile_sdk("ddc_canary_unsound_sdk_ddc_module") {
|
||||
canary = true
|
||||
modules = [ "ddc" ]
|
||||
sound_null_safety = false
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue