From 1960d21144fd2cb3275f90f00707add8f928aa62 Mon Sep 17 00:00:00 2001 From: Ben Konyi Date: Tue, 12 May 2020 23:37:19 +0000 Subject: [PATCH] [ VM / DartDev ] Updated build rules for DartDev and exposed create_platform_sdk build target - DartDev will now be rebuilt when changes in DDS are made - Building the `create_platform_sdk` target will build all non-web components of the Dart SDK, allowing for shorter build times when not developing web tooling. Change-Id: I605df4893e93010ba0c0bab0593fb840f1859c07 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/147807 Commit-Queue: Ben Konyi Reviewed-by: Siva Annamalai --- BUILD.gn | 10 ++++++++++ sdk/BUILD.gn | 28 +++++++++++++++++++++------- sdk_nnbd/BUILD.gn | 28 +++++++++++++++++++++------- utils/dartdev/BUILD.gn | 9 ++++++++- 4 files changed, 60 insertions(+), 15 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index e2d4d23cd64..8e24f903581 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -90,6 +90,16 @@ if (dont_use_nnbd) { } } +if (dont_use_nnbd) { + group("create_platform_sdk") { + public_deps = [ "sdk:create_platform_sdk" ] + } +} else { + group("create_platform_sdk") { + public_deps = [ "sdk_nnbd:create_platform_sdk" ] + } +} + group("dart2js") { deps = [ "utils/compiler:dart2js" ] } diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn index 8579a96a5e1..1c60679ddc8 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -511,7 +511,7 @@ foreach(script, _scripts) { # This is the main target for copying scripts in _platform_sdk_scripts to bin/ group("copy_platform_sdk_scripts") { - visibility = [ ":create_platform_sdk" ] + visibility = [ ":_create_platform_sdk" ] public_deps = [] foreach(sdk_script, _platform_sdk_scripts) { public_deps += [ ":copy_${sdk_script}_script" ] @@ -556,7 +556,7 @@ foreach(snapshot, _full_sdk_snapshots) { # This is the main rule for copying snapshots from _platform_sdk_snapshots to # bin/snapshots group("copy_platform_sdk_snapshots") { - visibility = [ ":create_platform_sdk" ] + visibility = [ ":_create_platform_sdk" ] public_deps = [] foreach(snapshot, _platform_sdk_snapshots) { public_deps += [ ":copy_${snapshot[0]}_snapshot" ] @@ -743,7 +743,7 @@ copy("copy_libraries_specification") { # This is the main rule to copy libraries in _platform_sdk_libraries to lib/ group("copy_platform_sdk_libraries") { visibility = [ - ":create_platform_sdk", + ":_create_platform_sdk", ":copy_libraries", ] public_deps = [] @@ -851,7 +851,10 @@ copy("copy_api_readme") { # Parts common to both platform and full SDKs. group("create_common_sdk") { - visibility = [ ":create_sdk" ] + visibility = [ + ":create_sdk", + ":create_platform_sdk", + ] public_deps = [ ":copy_analysis_summaries", ":copy_api_readme", @@ -886,8 +889,11 @@ group("create_common_sdk") { } # Parts specific to the platform SDK. -group("create_platform_sdk") { - visibility = [ ":create_sdk" ] +group("_create_platform_sdk") { + visibility = [ + ":create_sdk", + ":create_platform_sdk", + ] public_deps = [ ":copy_platform_sdk_libraries", ":copy_platform_sdk_scripts", @@ -908,11 +914,19 @@ group("create_full_sdk") { ] } +# Build a SDK with less stuff. It excludes dart2js, ddc, and web libraries. +group("create_platform_sdk") { + public_deps = [ + ":_create_platform_sdk", + ":create_common_sdk", + ] +} + # The main target to depend on from ../BUILD.gn group("create_sdk") { public_deps = [ ":create_common_sdk" ] if (dart_platform_sdk) { - public_deps += [ ":create_platform_sdk" ] + public_deps += [ ":_create_platform_sdk" ] } else { public_deps += [ ":create_full_sdk" ] } diff --git a/sdk_nnbd/BUILD.gn b/sdk_nnbd/BUILD.gn index 8579a96a5e1..1c60679ddc8 100644 --- a/sdk_nnbd/BUILD.gn +++ b/sdk_nnbd/BUILD.gn @@ -511,7 +511,7 @@ foreach(script, _scripts) { # This is the main target for copying scripts in _platform_sdk_scripts to bin/ group("copy_platform_sdk_scripts") { - visibility = [ ":create_platform_sdk" ] + visibility = [ ":_create_platform_sdk" ] public_deps = [] foreach(sdk_script, _platform_sdk_scripts) { public_deps += [ ":copy_${sdk_script}_script" ] @@ -556,7 +556,7 @@ foreach(snapshot, _full_sdk_snapshots) { # This is the main rule for copying snapshots from _platform_sdk_snapshots to # bin/snapshots group("copy_platform_sdk_snapshots") { - visibility = [ ":create_platform_sdk" ] + visibility = [ ":_create_platform_sdk" ] public_deps = [] foreach(snapshot, _platform_sdk_snapshots) { public_deps += [ ":copy_${snapshot[0]}_snapshot" ] @@ -743,7 +743,7 @@ copy("copy_libraries_specification") { # This is the main rule to copy libraries in _platform_sdk_libraries to lib/ group("copy_platform_sdk_libraries") { visibility = [ - ":create_platform_sdk", + ":_create_platform_sdk", ":copy_libraries", ] public_deps = [] @@ -851,7 +851,10 @@ copy("copy_api_readme") { # Parts common to both platform and full SDKs. group("create_common_sdk") { - visibility = [ ":create_sdk" ] + visibility = [ + ":create_sdk", + ":create_platform_sdk", + ] public_deps = [ ":copy_analysis_summaries", ":copy_api_readme", @@ -886,8 +889,11 @@ group("create_common_sdk") { } # Parts specific to the platform SDK. -group("create_platform_sdk") { - visibility = [ ":create_sdk" ] +group("_create_platform_sdk") { + visibility = [ + ":create_sdk", + ":create_platform_sdk", + ] public_deps = [ ":copy_platform_sdk_libraries", ":copy_platform_sdk_scripts", @@ -908,11 +914,19 @@ group("create_full_sdk") { ] } +# Build a SDK with less stuff. It excludes dart2js, ddc, and web libraries. +group("create_platform_sdk") { + public_deps = [ + ":_create_platform_sdk", + ":create_common_sdk", + ] +} + # The main target to depend on from ../BUILD.gn group("create_sdk") { public_deps = [ ":create_common_sdk" ] if (dart_platform_sdk) { - public_deps += [ ":create_platform_sdk" ] + public_deps += [ ":_create_platform_sdk" ] } else { public_deps += [ ":create_full_sdk" ] } diff --git a/utils/dartdev/BUILD.gn b/utils/dartdev/BUILD.gn index 44a5426a3fe..45a52ca87c3 100644 --- a/utils/dartdev/BUILD.gn +++ b/utils/dartdev/BUILD.gn @@ -18,6 +18,13 @@ dartfix_files = exec_script("../../tools/list_dart_files.py", ], "list lines") +dds_files = exec_script("../../tools/list_dart_files.py", + [ + "absolute", + rebase_path("../../pkg/dds"), + ], + "list lines") + group("dartdev") { deps = [ ":copy_dartdev_snapshot" ] } @@ -32,6 +39,6 @@ copy("copy_dartdev_snapshot") { application_snapshot("generate_dartdev_snapshot") { main_dart = "../../pkg/dartdev/bin/dartdev.dart" training_args = [ "--help" ] - inputs = dartdev_files + dartfix_files + inputs = dartdev_files + dartfix_files + dds_files output = "$root_gen_dir/dartdev.dart.snapshot" }