| Index: sdk/BUILD.gn
|
| diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8ac005149e4c23d75520e028906f1afaf8c65f06
|
| --- /dev/null
|
| +++ b/sdk/BUILD.gn
|
| @@ -0,0 +1,345 @@
|
| +# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
|
| +# for details. All rights reserved. Use of this source code is governed by a
|
| +# BSD-style license that can be found in the LICENSE file.
|
| +
|
| +# The SDK for Fuchsia does not include:
|
| +# dart2js
|
| +# dartdoc
|
| +# ddc
|
| +# and libraries that are browser-specific, since these are not used and require
|
| +# 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,
|
| + ]
|
| + }
|
| + }
|
| +}
|
| +
|
| +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}"]
|
| + }
|
| +}
|
| +
|
| +_sdk_scripts = [
|
| + "dartanalyzer",
|
| + "dartfmt",
|
| + "pub",
|
| +]
|
| +
|
| +foreach(sdk_script, _sdk_scripts) {
|
| + copy_sdk_script("copy_${sdk_script}_script") {
|
| + name = sdk_script
|
| + }
|
| +}
|
| +
|
| +group("copy_scripts") {
|
| + deps = [
|
| + ":copy_dartanalyzer_script",
|
| + ":copy_dartfmt_script",
|
| + ":copy_pub_script",
|
| + ]
|
| +}
|
| +
|
| +_snapshots = [
|
| + ["analysis_server", "../utils/analysis_server"],
|
| + ["dartanalyzer", "../utils/dartanalyzer:generate_dartanalyzer_snapshot"],
|
| + ["dartfmt", "../utils/dartfmt"],
|
| + ["pub", "../utils/pub"],
|
| +]
|
| +
|
| +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}}" ]
|
| + }
|
| +}
|
| +
|
| +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",
|
| + ]
|
| + 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}}" ]
|
| +}
|
| +
|
| +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}}" ]
|
| +}
|
| +
|
| +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"
|
| +}
|
| +
|
| +_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"
|
| + }
|
| +}
|
| +
|
| +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",
|
| + ]
|
| +}
|
| +
|
| +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_readme") {
|
| + sources = [ "../README.dart-sdk" ]
|
| + outputs = [ "$root_out_dir/dart-sdk/README" ]
|
| +}
|
| +
|
| +
|
| +copy("copy_license") {
|
| + sources = [ "../LICENSE" ]
|
| + outputs = [ "$root_out_dir/dart-sdk/LICENSE" ]
|
| +}
|
| +
|
| +
|
| +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",
|
| + ]
|
| +
|
| + 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"),
|
| + ]
|
| +}
|
| +
|
| +}
|
|
|