Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(850)

Unified Diff: sdk/BUILD.gn

Issue 2875893002: [infra] Fix copy_tree.py to avoid extra rebuilding in Fuchsia (Closed)
Patch Set: Format Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/copy_tree.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/BUILD.gn
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 8ac005149e4c23d75520e028906f1afaf8c65f06..0f7d34ca83cb781686eff17473786bd1d1ceb1c3 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -10,336 +10,381 @@
# significant time to build.
# TODO(zra): Assemble the SDK completely with GN, and remove create_sdk.py.
if (defined(is_fuchsia) && (is_fuchsia || is_fuchsia_host)) {
-
-template("copy_tree") {
- assert(defined(invoker.source), "copy_tree must define 'source'")
- assert(defined(invoker.dest), "copy_tree must define 'dest'")
- source = invoker.source
- dest = invoker.dest
- action(target_name) {
- deps = []
- if (defined(invoker.deps)) {
- deps += invoker.deps
- }
- input_files = exec_script("../tools/list_files.py",
- [
- "absolute",
- "",
- rebase_path(source),
- ],
- "list lines")
- inputs = input_files
- relative_files = rebase_path(input_files, rebase_path(source))
-
- output_files = []
- foreach(input, relative_files) {
- output_files += ["$dest/$input"]
- }
-
- outputs = output_files
- script = "../tools/copy_tree.py"
- args = [
- "--from",
- rebase_path(source),
- "--to",
- rebase_path(dest),
- ]
- if (defined(invoker.exclude)) {
- args += [
- "--exclude",
- invoker.exclude,
+ template("copy_tree") {
+ assert(defined(invoker.source), "copy_tree must define 'source'")
+ assert(defined(invoker.dest), "copy_tree must define 'dest'")
+ source = invoker.source
+ dest = invoker.dest
+ action(target_name) {
+ deps = []
+ if (defined(invoker.deps)) {
+ deps += invoker.deps
+ }
+
+ common_args = [
+ "--from",
+ rebase_path(source),
+ "--to",
+ rebase_path(dest),
]
+ if (defined(invoker.exclude)) {
+ common_args += [
+ "--exclude",
+ invoker.exclude,
+ ]
+ }
+
+ dry_run_args = common_args + [ "--dry-run" ]
+ input_files =
+ exec_script("../tools/copy_tree.py", dry_run_args, "list lines")
+ inputs = input_files
+ relative_files = rebase_path(input_files, rebase_path(source))
+
+ output_files = []
+ foreach(input, relative_files) {
+ output_files += [ "$dest/$input" ]
+ }
+
+ outputs = output_files
+ script = "../tools/copy_tree.py"
+ args = common_args
}
}
-}
-copy("copy_dart") {
- deps = [ "../runtime/bin:dart" ]
- dart_out = get_label_info("../runtime/bin:dart", "root_out_dir")
- dart_name = get_label_info("../runtime/bin:dart", "name")
- sources = [ "$dart_out/$dart_name" ]
- outputs = [ "$root_out_dir/dart-sdk/bin/dart" ]
-}
-
-copy("copy_dylibs") {
- deps = [
- "//third_party/boringssl:crypto",
- "//third_party/boringssl:ssl",
- ]
- crypto_out = get_label_info("//third_party/boringssl:crypto", "root_out_dir")
- crypto_name = get_label_info("//third_party/boringssl:crypto", "name")
- ssl_out = get_label_info("//third_party/boringssl:ssl", "root_out_dir")
- ssl_name = get_label_info("//third_party/boringssl:ssl", "name")
- sources = [
- "$crypto_out/lib${crypto_name}.so",
- "$ssl_out/lib${ssl_name}.so"
- ]
- outputs = [ "$root_out_dir/dart-sdk/bin/{{source_file_part}}" ]
-}
-
-template("copy_sdk_script") {
- assert(defined(invoker.name), "copy_sdk_script must define 'name'")
- name = invoker.name
- copy(target_name) {
- sources = [ "bin/${name}_sdk" ]
- outputs = [ "$root_out_dir/dart-sdk/bin/${name}"]
+ copy("copy_dart") {
+ deps = [
+ "../runtime/bin:dart",
+ ]
+ dart_out = get_label_info("../runtime/bin:dart", "root_out_dir")
+ dart_name = get_label_info("../runtime/bin:dart", "name")
+ sources = [
+ "$dart_out/$dart_name",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/bin/dart",
+ ]
}
-}
-_sdk_scripts = [
- "dartanalyzer",
- "dartfmt",
- "pub",
-]
+ copy("copy_dylibs") {
+ deps = [
+ "//third_party/boringssl:crypto",
+ "//third_party/boringssl:ssl",
+ ]
+ crypto_out =
+ get_label_info("//third_party/boringssl:crypto", "root_out_dir")
+ crypto_name = get_label_info("//third_party/boringssl:crypto", "name")
+ ssl_out = get_label_info("//third_party/boringssl:ssl", "root_out_dir")
+ ssl_name = get_label_info("//third_party/boringssl:ssl", "name")
+ sources = [
+ "$crypto_out/lib${crypto_name}.so",
+ "$ssl_out/lib${ssl_name}.so",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/bin/{{source_file_part}}",
+ ]
+ }
-foreach(sdk_script, _sdk_scripts) {
- copy_sdk_script("copy_${sdk_script}_script") {
- name = sdk_script
+ template("copy_sdk_script") {
+ assert(defined(invoker.name), "copy_sdk_script must define 'name'")
+ name = invoker.name
+ copy(target_name) {
+ sources = [
+ "bin/${name}_sdk",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/bin/${name}",
+ ]
+ }
}
-}
-group("copy_scripts") {
- deps = [
- ":copy_dartanalyzer_script",
- ":copy_dartfmt_script",
- ":copy_pub_script",
+ _sdk_scripts = [
+ "dartanalyzer",
+ "dartfmt",
+ "pub",
]
-}
-_snapshots = [
- ["analysis_server", "../utils/analysis_server"],
- ["dartanalyzer", "../utils/dartanalyzer:generate_dartanalyzer_snapshot"],
- ["dartfmt", "../utils/dartfmt"],
- ["pub", "../utils/pub"],
-]
+ foreach(sdk_script, _sdk_scripts) {
+ copy_sdk_script("copy_${sdk_script}_script") {
+ name = sdk_script
+ }
+ }
-foreach(snapshot, _snapshots) {
- copy("copy_${snapshot[0]}_snapshot") {
+ group("copy_scripts") {
deps = [
- snapshot[1],
+ ":copy_dartanalyzer_script",
+ ":copy_dartfmt_script",
+ ":copy_pub_script",
]
- sources = [ "$root_gen_dir/${snapshot[0]}.dart.snapshot" ]
- outputs = [ "$root_out_dir/dart-sdk/bin/snapshots/{{source_file_part}}" ]
}
-}
-group("copy_snapshots") {
- deps = [
- ":copy_analysis_server_snapshot",
- ":copy_dartanalyzer_snapshot",
- ":copy_dartfmt_snapshot",
- ":copy_pub_snapshot",
- ]
-}
-
-copy("copy_analysis_summaries") {
- deps = [
- ":copy_libraries",
- "../utils/dartanalyzer:generate_summary_spec",
- "../utils/dartanalyzer:generate_summary_strong",
- ]
- sources = [
- "$root_gen_dir/spec.sum",
- "$root_gen_dir/strong.sum",
+ _snapshots = [
+ [
+ "analysis_server",
+ "../utils/analysis_server",
+ ],
+ [
+ "dartanalyzer",
+ "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
+ ],
+ [
+ "dartfmt",
+ "../utils/dartfmt",
+ ],
+ [
+ "pub",
+ "../utils/pub",
+ ],
]
- outputs = [ "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}" ]
-}
-copy("copy_headers") {
- sources = [
- "../runtime/include/dart_api.h",
- "../runtime/include/dart_mirrors_api.h",
- "../runtime/include/dart_native_api.h",
- "../runtime/include/dart_tools_api.h",
- ]
- outputs = [ "$root_out_dir/dart-sdk/include/{{source_file_part}}" ]
-}
+ foreach(snapshot, _snapshots) {
+ copy("copy_${snapshot[0]}_snapshot") {
+ deps = [
+ snapshot[1],
+ ]
+ sources = [
+ "$root_gen_dir/${snapshot[0]}.dart.snapshot",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/bin/snapshots/{{source_file_part}}",
+ ]
+ }
+ }
-copy("copy_platform_files") {
- sources = [
- "lib/dart_client.platform",
- "lib/dart_server.platform",
- "lib/dart_shared.platform",
- ]
- outputs = [ "$root_out_dir/dart-sdk/lib/{{source_file_part}}" ]
-}
+ group("copy_snapshots") {
+ deps = [
+ ":copy_analysis_server_snapshot",
+ ":copy_dartanalyzer_snapshot",
+ ":copy_dartfmt_snapshot",
+ ":copy_pub_snapshot",
+ ]
+ }
-copy_tree("copy_pub_assets") {
- deps = [ ":copy_libraries" ]
- source = "../third_party/pkg/pub/lib/src/asset"
- dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset"
-}
+ copy("copy_analysis_summaries") {
+ deps = [
+ ":copy_libraries",
+ "../utils/dartanalyzer:generate_summary_spec",
+ "../utils/dartanalyzer:generate_summary_strong",
+ ]
+ sources = [
+ "$root_gen_dir/spec.sum",
+ "$root_gen_dir/strong.sum",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
+ ]
+ }
-_libraries = [
- "_internal",
- "async",
- "collection",
- "convert",
- "core",
- "developer",
- "internal",
- "io",
- "isolate",
- "math",
- "mirrors",
- "profiler",
- "typed_data",
-]
-
-foreach(library, _libraries) {
- copy_tree("copy_${library}_library") {
- source = "lib/$library"
- dest = "$root_out_dir/dart-sdk/lib/$library"
- exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore"
+ copy("copy_headers") {
+ sources = [
+ "../runtime/include/dart_api.h",
+ "../runtime/include/dart_mirrors_api.h",
+ "../runtime/include/dart_native_api.h",
+ "../runtime/include/dart_tools_api.h",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/include/{{source_file_part}}",
+ ]
}
-}
-group("copy_libraries") {
- deps = [
- ":copy__internal_library",
- ":copy_async_library",
- ":copy_collection_library",
- ":copy_convert_library",
- ":copy_core_library",
- ":copy_developer_library",
- ":copy_internal_library",
- ":copy_io_library",
- ":copy_isolate_library",
- ":copy_math_library",
- ":copy_mirrors_library",
- ":copy_profiler_library",
- ":copy_typed_data_library",
- ]
-}
+ copy("copy_platform_files") {
+ sources = [
+ "lib/dart_client.platform",
+ "lib/dart_server.platform",
+ "lib/dart_shared.platform",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/lib/{{source_file_part}}",
+ ]
+ }
-action("write_version_file") {
- output = "$root_out_dir/dart-sdk/version"
- outputs = [ output ]
- script = "../tools/write_version_file.py"
- args = [
- "--output",
- rebase_path(output),
- ]
-}
+ copy_tree("copy_pub_assets") {
+ deps = [
+ ":copy_libraries",
+ ]
+ source = "../third_party/pkg/pub/lib/src/asset"
+ dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset"
+ }
-action("write_revision_file") {
- output = "$root_out_dir/dart-sdk/revision"
- outputs = [ output ]
- script = "../tools/write_revision_file.py"
- args = [
- "--output",
- rebase_path(output)
+ _libraries = [
+ "_internal",
+ "async",
+ "collection",
+ "convert",
+ "core",
+ "developer",
+ "internal",
+ "io",
+ "isolate",
+ "math",
+ "mirrors",
+ "profiler",
+ "typed_data",
]
-}
-copy("copy_readme") {
- sources = [ "../README.dart-sdk" ]
- outputs = [ "$root_out_dir/dart-sdk/README" ]
-}
+ foreach(library, _libraries) {
+ copy_tree("copy_${library}_library") {
+ source = "lib/$library"
+ dest = "$root_out_dir/dart-sdk/lib/$library"
+ exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore"
+ }
+ }
+ group("copy_libraries") {
+ deps = [
+ ":copy__internal_library",
+ ":copy_async_library",
+ ":copy_collection_library",
+ ":copy_convert_library",
+ ":copy_core_library",
+ ":copy_developer_library",
+ ":copy_internal_library",
+ ":copy_io_library",
+ ":copy_isolate_library",
+ ":copy_math_library",
+ ":copy_mirrors_library",
+ ":copy_profiler_library",
+ ":copy_typed_data_library",
+ ]
+ }
-copy("copy_license") {
- sources = [ "../LICENSE" ]
- outputs = [ "$root_out_dir/dart-sdk/LICENSE" ]
-}
+ action("write_version_file") {
+ output = "$root_out_dir/dart-sdk/version"
+ outputs = [
+ output,
+ ]
+ script = "../tools/write_version_file.py"
+ args = [
+ "--output",
+ rebase_path(output),
+ ]
+ }
+ action("write_revision_file") {
+ output = "$root_out_dir/dart-sdk/revision"
+ outputs = [
+ output,
+ ]
+ script = "../tools/write_revision_file.py"
+ args = [
+ "--output",
+ rebase_path(output),
+ ]
+ }
-copy("copy_api_readme") {
- sources = [ "api_readme.md" ]
- outputs = [ "$root_out_dir/dart-sdk/lib/api_readme.md" ]
-}
+ copy("copy_readme") {
+ sources = [
+ "../README.dart-sdk",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/README",
+ ]
+ }
+ copy("copy_license") {
+ sources = [
+ "../LICENSE",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/LICENSE",
+ ]
+ }
-group("create_sdk") {
- deps = [
- ":copy_analysis_summaries",
- ":copy_api_readme",
- ":copy_dart",
- ":copy_headers",
- ":copy_libraries",
- ":copy_license",
- ":copy_platform_files",
- ":copy_pub_assets",
- ":copy_readme",
- ":copy_scripts",
- ":copy_snapshots",
- ":write_revision_file",
- ":write_version_file",
- ]
- if (is_fuchsia_host && is_linux) {
- deps += [ ":copy_dylibs" ]
+ copy("copy_api_readme") {
+ sources = [
+ "api_readme.md",
+ ]
+ outputs = [
+ "$root_out_dir/dart-sdk/lib/api_readme.md",
+ ]
}
-}
+ group("create_sdk") {
+ deps = [
+ ":copy_analysis_summaries",
+ ":copy_api_readme",
+ ":copy_dart",
+ ":copy_headers",
+ ":copy_libraries",
+ ":copy_license",
+ ":copy_platform_files",
+ ":copy_pub_assets",
+ ":copy_readme",
+ ":copy_scripts",
+ ":copy_snapshots",
+ ":write_revision_file",
+ ":write_version_file",
+ ]
+ if (is_fuchsia_host && is_linux) {
+ deps += [ ":copy_dylibs" ]
+ }
+ }
} else {
+ action("create_sdk") {
+ deps = [
+ "../runtime/bin:dart",
+ "../utils/analysis_server",
+ "../utils/compiler:dart2js",
+ "../utils/compiler:utils_wrapper",
+ "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
+ "../utils/dartanalyzer:generate_summary_spec",
+ "../utils/dartanalyzer:generate_summary_strong",
+ "../utils/dartdevc",
+ "../utils/dartdoc",
+ "../utils/dartfmt",
+ "../utils/pub",
+ ]
-action("create_sdk") {
- deps = [
- "../runtime/bin:dart",
- "../utils/analysis_server",
- "../utils/compiler:dart2js",
- "../utils/compiler:utils_wrapper",
- "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
- "../utils/dartanalyzer:generate_summary_spec",
- "../utils/dartanalyzer:generate_summary_strong",
- "../utils/dartdevc",
- "../utils/dartdoc",
- "../utils/dartfmt",
- "../utils/pub",
- ]
-
- sdk_lib_files = exec_script("../tools/list_dart_files.py",
- [
- "absolute",
- rebase_path("lib"),
- ],
- "list lines")
-
- preamble_files =
- exec_script("../tools/list_files.py",
- [
- "absolute",
- "",
- rebase_path("lib/_internal/js_runtime/lib/preambles"),
- ],
- "list lines")
-
- sdk_bin_files = exec_script("../tools/list_files.py",
- [
- "absolute",
- "",
- rebase_path("bin"),
- ],
- "list lines")
-
- inputs = sdk_lib_files + preamble_files + sdk_bin_files + [
- "lib/dart_client.platform",
- "lib/dart_server.platform",
- "lib/dart_shared.platform",
- "$root_gen_dir/dart2js.dart.snapshot",
- "$root_gen_dir/utils_wrapper.dart.snapshot",
- "$root_gen_dir/pub.dart.snapshot",
- "$root_gen_dir/dartanalyzer.dart.snapshot",
- "$root_gen_dir/dartdevc.dart.snapshot",
- "$root_gen_dir/dartfmt.dart.snapshot",
- "$root_gen_dir/analysis_server.dart.snapshot",
- "$root_gen_dir/dartdoc.dart.snapshot",
- "$root_gen_dir/spec.sum",
- "$root_gen_dir/strong.sum",
- "../tools/VERSION",
- ]
-
- outputs = [
- "$root_out_dir/dart-sdk/README",
- ]
-
- script = "../tools/create_sdk.py"
- args = [
- "--sdk_output_dir",
- rebase_path("$root_out_dir/dart-sdk"),
- "--snapshot_location",
- rebase_path("$root_gen_dir"),
- ]
-}
+ sdk_lib_files = exec_script("../tools/list_dart_files.py",
+ [
+ "absolute",
+ rebase_path("lib"),
+ ],
+ "list lines")
+
+ preamble_files =
+ exec_script("../tools/list_files.py",
+ [
+ "absolute",
+ "",
+ rebase_path("lib/_internal/js_runtime/lib/preambles"),
+ ],
+ "list lines")
+
+ sdk_bin_files = exec_script("../tools/list_files.py",
+ [
+ "absolute",
+ "",
+ rebase_path("bin"),
+ ],
+ "list lines")
+
+ inputs = sdk_lib_files + preamble_files + sdk_bin_files + [
+ "lib/dart_client.platform",
+ "lib/dart_server.platform",
+ "lib/dart_shared.platform",
+ "$root_gen_dir/dart2js.dart.snapshot",
+ "$root_gen_dir/utils_wrapper.dart.snapshot",
+ "$root_gen_dir/pub.dart.snapshot",
+ "$root_gen_dir/dartanalyzer.dart.snapshot",
+ "$root_gen_dir/dartdevc.dart.snapshot",
+ "$root_gen_dir/dartfmt.dart.snapshot",
+ "$root_gen_dir/analysis_server.dart.snapshot",
+ "$root_gen_dir/dartdoc.dart.snapshot",
+ "$root_gen_dir/spec.sum",
+ "$root_gen_dir/strong.sum",
+ "../tools/VERSION",
+ ]
+
+ outputs = [
+ "$root_out_dir/dart-sdk/README",
+ ]
+ script = "../tools/create_sdk.py"
+ args = [
+ "--sdk_output_dir",
+ rebase_path("$root_out_dir/dart-sdk"),
+ "--snapshot_location",
+ rebase_path("$root_gen_dir"),
+ ]
+ }
}
« no previous file with comments | « no previous file | tools/copy_tree.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698