| # 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"), |
| ] |
| } |
| |
| } |