mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 16:41:07 +00:00
![Konstantin Shcheglov](/assets/img/avatar_default.png)
R=paulberry@google.com, whesse@google.com BUG= https://github.com/dart-lang/sdk/issues/29852 Review-Url: https://codereview.chromium.org/2940723002 .
759 lines
17 KiB
Plaintext
759 lines
17 KiB
Plaintext
# 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.
|
|
|
|
# This GN file contains build rules for assembling the Dart SDK. There are
|
|
# two possible variants: the "Full" SDK, and the "Platform" SDK. If you want
|
|
# to make a new subset of the Full SDK, make it the same way we make
|
|
# the Platform SDK.
|
|
#
|
|
# Warning:
|
|
# If you need to copy something into dart-sdk/lib/foo in addition to the stuff
|
|
# copied there by :copy_libraries, then you must depend on ":copy_libraries",
|
|
# or ":copy_libraries" may delete/overwrite your addition, and the build will
|
|
# fail.
|
|
|
|
import("../build/copy_tree.gni")
|
|
|
|
declare_args() {
|
|
# Build a SDK with less stuff. It excludes dart2js, ddc, and web libraries.
|
|
dart_platform_sdk = false
|
|
}
|
|
|
|
if (is_fuchsia ||
|
|
is_fuchsia_host ||
|
|
current_cpu == "arm64" ||
|
|
current_cpu == "arm") {
|
|
dart_platform_sdk = true
|
|
}
|
|
|
|
# The directory layout of the SDK is as follows:
|
|
#
|
|
# ..dart-sdk/
|
|
# ....bin/
|
|
# ......dart or dart.exe (executable)
|
|
# ......dart.lib (import library for VM native extensions on Windows)
|
|
# ......dartdoc
|
|
# ......dartfmt
|
|
# ......dart2js
|
|
# ......dartanalyzer
|
|
# ......dartdevc
|
|
# ......pub
|
|
# ......snapshots/
|
|
# ........analysis_server.dart.snapshot
|
|
# ........dart2js.dart.snapshot
|
|
# ........dartanalyzer.dart.snapshot
|
|
# ........dartdoc.dart.snapshot
|
|
# ........dartfmt.dart.snapshot
|
|
# ........dartdevc.dart.snapshot
|
|
# ........pub.dart.snapshot
|
|
# ........utils_wrapper.dart.snapshot
|
|
#.........resources/
|
|
#...........dartdoc/
|
|
#..............packages
|
|
#.............resources/
|
|
#.............templates/
|
|
# ....include/
|
|
# ......dart_api.h
|
|
# ......dart_mirrors_api.h
|
|
# ......dart_native_api.h
|
|
# ......dart_tools_api.h
|
|
# ....lib/
|
|
# ......dart_client.platform
|
|
# ......dart_server.platform
|
|
# ......dart_shared.platform
|
|
# ......_internal/
|
|
#.........spec.sum
|
|
#.........strong.sum
|
|
#.........dev_compiler/
|
|
# ......analysis_server/
|
|
# ......analyzer/
|
|
# ......async/
|
|
# ......collection/
|
|
# ......convert/
|
|
# ......core/
|
|
# ......front_end/
|
|
# ......html/
|
|
# ......internal/
|
|
# ......io/
|
|
# ......isolate/
|
|
# ......js/
|
|
# ......js_util/
|
|
# ......kernel/
|
|
# ......math/
|
|
# ......mirrors/
|
|
# ......typed_data/
|
|
# ......api_readme.md
|
|
|
|
# Scripts that go under bin/
|
|
_platform_sdk_scripts = [
|
|
"dartanalyzer",
|
|
"dartfmt",
|
|
"pub",
|
|
]
|
|
|
|
_full_sdk_scripts = [
|
|
"dart2js",
|
|
"dartanalyzer",
|
|
"dartdevc",
|
|
"dartfmt",
|
|
"pub",
|
|
]
|
|
|
|
# Scripts not ending in _sdk that go under bin/
|
|
_scripts = [ "dartdoc" ]
|
|
|
|
# Snapshots that go under bin/snapshots
|
|
_platform_sdk_snapshots = [
|
|
[
|
|
"analysis_server",
|
|
"../utils/analysis_server",
|
|
],
|
|
[
|
|
"dartanalyzer",
|
|
"../utils/dartanalyzer:generate_dartanalyzer_snapshot",
|
|
],
|
|
[
|
|
"dartdoc",
|
|
"../utils/dartdoc",
|
|
],
|
|
[
|
|
"dartfmt",
|
|
"../utils/dartfmt",
|
|
],
|
|
[
|
|
"pub",
|
|
"../utils/pub",
|
|
],
|
|
]
|
|
|
|
_full_sdk_snapshots = [
|
|
[
|
|
"analysis_server",
|
|
"../utils/analysis_server",
|
|
],
|
|
[
|
|
"dart2js",
|
|
"../utils/compiler:dart2js",
|
|
],
|
|
[
|
|
"dartanalyzer",
|
|
"../utils/dartanalyzer:generate_dartanalyzer_snapshot",
|
|
],
|
|
[
|
|
"dartdevc",
|
|
"../utils/dartdevc",
|
|
],
|
|
[
|
|
"dartdoc",
|
|
"../utils/dartdoc",
|
|
],
|
|
[
|
|
"dartfmt",
|
|
"../utils/dartfmt",
|
|
],
|
|
[
|
|
"pub",
|
|
"../utils/pub",
|
|
],
|
|
[
|
|
"utils_wrapper",
|
|
"../utils/compiler:utils_wrapper",
|
|
],
|
|
]
|
|
|
|
# Libraries that go under lib/
|
|
_platform_sdk_libraries = [
|
|
"_internal",
|
|
"async",
|
|
"collection",
|
|
"convert",
|
|
"core",
|
|
"developer",
|
|
"internal",
|
|
"io",
|
|
"isolate",
|
|
"math",
|
|
"mirrors",
|
|
"profiler",
|
|
"typed_data",
|
|
]
|
|
|
|
_full_sdk_libraries = [
|
|
"_blink",
|
|
"_chrome",
|
|
"_internal",
|
|
"async",
|
|
"collection",
|
|
"convert",
|
|
"core",
|
|
"developer",
|
|
"html",
|
|
"indexed_db",
|
|
"internal",
|
|
"io",
|
|
"isolate",
|
|
"js",
|
|
"js_util",
|
|
"math",
|
|
"mirrors",
|
|
"profiler",
|
|
"svg",
|
|
"typed_data",
|
|
"web_audio",
|
|
"web_gl",
|
|
"web_sql",
|
|
]
|
|
|
|
# Package sources copied to lib/
|
|
_analyzer_source_dirs = [
|
|
"analyzer",
|
|
"analysis_server",
|
|
"front_end",
|
|
"kernel",
|
|
]
|
|
|
|
# Copies the Dart VM binary into bin/
|
|
copy("copy_dart") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = [
|
|
"../runtime/bin:dart",
|
|
]
|
|
dart_out = get_label_info("../runtime/bin:dart", "root_out_dir")
|
|
if (is_win) {
|
|
sources = [
|
|
"$dart_out/dart.exe",
|
|
]
|
|
} else if (is_fuchsia || is_fuchsia_host) {
|
|
sources = [
|
|
"$dart_out/dart",
|
|
]
|
|
} else {
|
|
sources = [
|
|
"$dart_out/exe.stripped/dart",
|
|
]
|
|
}
|
|
if (is_win) {
|
|
sources += [ "$dart_out/dart.lib" ]
|
|
}
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/bin/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# Copies dynamically linked libraries into bin/. This is currently only needed
|
|
# for Fuchsia when building for Linux hosts.
|
|
if (is_fuchsia_host && is_linux) {
|
|
copy("copy_dylibs") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = [
|
|
"//third_party/boringssl:crypto",
|
|
"//third_party/boringssl:ssl",
|
|
"//third_party/zlib",
|
|
]
|
|
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")
|
|
zlib_out = get_label_info("//third_party/zlib", "root_out_dir")
|
|
sources = [
|
|
"$crypto_out/lib${crypto_name}.so",
|
|
"$ssl_out/lib${ssl_name}.so",
|
|
"$zlib_out/libz.so",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/bin/{{source_file_part}}",
|
|
]
|
|
}
|
|
}
|
|
|
|
# A template for copying the things in _platform_sdk_scripts and
|
|
# _full_sdk_scripts into bin/
|
|
template("copy_sdk_script") {
|
|
assert(defined(invoker.name), "copy_sdk_script must define 'name'")
|
|
name = invoker.name
|
|
ext = ""
|
|
if (is_win) {
|
|
ext = ".bat"
|
|
}
|
|
copy(target_name) {
|
|
visibility = [
|
|
":copy_platform_sdk_scripts",
|
|
":copy_full_sdk_scripts",
|
|
]
|
|
sources = [
|
|
"bin/${name}_sdk$ext",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/bin/$name$ext",
|
|
]
|
|
}
|
|
}
|
|
|
|
foreach(sdk_script, _full_sdk_scripts) {
|
|
copy_sdk_script("copy_${sdk_script}_script") {
|
|
name = sdk_script
|
|
}
|
|
}
|
|
|
|
foreach(script, _scripts) {
|
|
copy("copy_${script}_script") {
|
|
visibility = [
|
|
":copy_platform_sdk_scripts",
|
|
":copy_full_sdk_scripts",
|
|
]
|
|
ext = ""
|
|
if (is_win) {
|
|
ext = ".bat"
|
|
}
|
|
sources = [
|
|
"bin/$script$ext",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/bin/{{source_file_part}}",
|
|
]
|
|
}
|
|
}
|
|
|
|
# This is the main target for copying scripts in _platform_sdk_scripts to bin/
|
|
group("copy_platform_sdk_scripts") {
|
|
visibility = [ ":create_platform_sdk" ]
|
|
deps = []
|
|
foreach(sdk_script, _platform_sdk_scripts) {
|
|
deps += [ ":copy_${sdk_script}_script" ]
|
|
}
|
|
foreach(script, _scripts) {
|
|
deps += [ ":copy_${script}_script" ]
|
|
}
|
|
}
|
|
|
|
# This is the main target for copying scripts in _full_sdk_scripts to bin/
|
|
group("copy_full_sdk_scripts") {
|
|
visibility = [ ":create_full_sdk" ]
|
|
deps = []
|
|
foreach(sdk_script, _full_sdk_scripts) {
|
|
deps += [ ":copy_${sdk_script}_script" ]
|
|
}
|
|
foreach(script, _scripts) {
|
|
deps += [ ":copy_${script}_script" ]
|
|
}
|
|
}
|
|
|
|
# This loop generates "copy" targets that put snapshots into bin/snapshots
|
|
foreach(snapshot, _full_sdk_snapshots) {
|
|
copy("copy_${snapshot[0]}_snapshot") {
|
|
visibility = [
|
|
":copy_platform_sdk_snapshots",
|
|
":copy_full_sdk_snapshots",
|
|
]
|
|
deps = [
|
|
snapshot[1],
|
|
]
|
|
sources = [
|
|
"$root_gen_dir/${snapshot[0]}.dart.snapshot",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/bin/snapshots/{{source_file_part}}",
|
|
]
|
|
}
|
|
}
|
|
|
|
# This is the main rule for copying snapshots from _platform_sdk_snapshots to
|
|
# bin/snapshots
|
|
group("copy_platform_sdk_snapshots") {
|
|
visibility = [ ":create_platform_sdk" ]
|
|
deps = []
|
|
foreach(snapshot, _platform_sdk_snapshots) {
|
|
deps += [ ":copy_${snapshot[0]}_snapshot" ]
|
|
}
|
|
}
|
|
|
|
# This is the main rule for copying snapshots from _full_sdk_snapshots to
|
|
# bin/snapshots
|
|
group("copy_full_sdk_snapshots") {
|
|
visibility = [ ":create_full_sdk" ]
|
|
deps = []
|
|
foreach(snapshot, _full_sdk_snapshots) {
|
|
deps += [ ":copy_${snapshot[0]}_snapshot" ]
|
|
}
|
|
}
|
|
|
|
# This loop generates rules for copying analyzer sources into lib/
|
|
foreach(analyzer_source_dir, _analyzer_source_dirs) {
|
|
copy_tree("copy_${analyzer_source_dir}_source_dir") {
|
|
visibility = [ ":copy_analyzer_sources" ]
|
|
source = "../pkg/$analyzer_source_dir"
|
|
dest = "$root_out_dir/dart-sdk/lib/$analyzer_source_dir"
|
|
exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore,packages,test,testcases"
|
|
}
|
|
}
|
|
|
|
# This is the main rule for copying analyzer sources to lib/
|
|
group("copy_analyzer_sources") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = []
|
|
foreach(analyzer_source_dir, _analyzer_source_dirs) {
|
|
deps += [ ":copy_${analyzer_source_dir}_source_dir" ]
|
|
}
|
|
}
|
|
|
|
# This rule copies dartdoc templates to
|
|
# bin/snapshots/resources/dartdoc/templates
|
|
copy_tree("copy_dartdoc_templates") {
|
|
visibility = [ ":copy_dartdoc_files" ]
|
|
source = "../third_party/pkg/dartdoc/lib/templates"
|
|
dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/templates"
|
|
}
|
|
|
|
# This rule copies dartdoc resources to
|
|
# bin/snapshots/resources/dartdoc/resources
|
|
copy_tree("copy_dartdoc_resources") {
|
|
visibility = [ ":copy_dartdoc_files" ]
|
|
source = "../third_party/pkg/dartdoc/lib/resources"
|
|
dest = "$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/resources"
|
|
}
|
|
|
|
# This rule writes the .packages file for dartdoc resources.
|
|
write_file("$root_out_dir/dart-sdk/bin/snapshots/resources/dartdoc/.packages",
|
|
"dartdoc:.")
|
|
|
|
# This is the main rule for copying the files that dartdoc needs.
|
|
group("copy_dartdoc_files") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = [
|
|
":copy_dartdoc_resources",
|
|
":copy_dartdoc_templates",
|
|
]
|
|
}
|
|
|
|
# This rule copies analyzer summaries to lib/_internal
|
|
copy("copy_analysis_summaries") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
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}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies ddc summaries to lib/_internal
|
|
copy("copy_dev_compiler_summary") {
|
|
visibility = [ ":copy_dev_compiler_sdk" ]
|
|
deps = [
|
|
":copy_libraries",
|
|
]
|
|
sources = [
|
|
"../pkg/dev_compiler/lib/sdk/ddc_sdk.sum",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies js needed by ddc to lib/dev_compiler
|
|
copy_tree("copy_dev_compiler_js") {
|
|
visibility = [
|
|
":copy_dev_compiler_sdk",
|
|
":copy_dev_compiler_require_js",
|
|
":copy_dev_compiler_tools",
|
|
]
|
|
source = "../pkg/dev_compiler/lib/js"
|
|
dest = "$root_out_dir/dart-sdk/lib/dev_compiler"
|
|
}
|
|
|
|
# This rule copies require.js to lib/dev_compiler/amd
|
|
copy("copy_dev_compiler_require_js") {
|
|
visibility = [ ":copy_dev_compiler_sdk" ]
|
|
deps = [
|
|
":copy_dev_compiler_js",
|
|
]
|
|
sources = [
|
|
"../third_party/requirejs/require.js",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/dev_compiler/amd/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies tools to go along with ddc.
|
|
copy("copy_dev_compiler_tools") {
|
|
visibility = [ ":copy_dev_compiler_sdk" ]
|
|
deps = [
|
|
":copy_dev_compiler_js",
|
|
"../utils/dartdevc:dartdevc_web",
|
|
"../utils/dartdevc:stack_trace_mapper",
|
|
]
|
|
dart_out = get_label_info("../utils/dartdevc:dartdevc_web", "root_out_dir")
|
|
sources = [
|
|
"$dart_out/dev_compiler/build/web/dart_stack_trace_mapper.js",
|
|
"$dart_out/dev_compiler/build/web/ddc_web_compiler.js",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/dev_compiler/web/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# This is the main rule for copying ddc's dependencies to lib/
|
|
group("copy_dev_compiler_sdk") {
|
|
visibility = [ ":create_full_sdk" ]
|
|
deps = [
|
|
":copy_dev_compiler_js",
|
|
":copy_dev_compiler_require_js",
|
|
":copy_dev_compiler_summary",
|
|
":copy_dev_compiler_tools",
|
|
]
|
|
}
|
|
|
|
# This rule copies header files to include/
|
|
copy("copy_headers") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
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}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies .platform files to lib/
|
|
copy("copy_platform_files") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
sources = [
|
|
"lib/dart_client.platform",
|
|
"lib/dart_server.platform",
|
|
"lib/dart_shared.platform",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies pub assets to lib/_internal/pub/asset
|
|
copy_tree("copy_pub_assets") {
|
|
visibility = [
|
|
":create_common_sdk",
|
|
":copy_7zip",
|
|
]
|
|
deps = [
|
|
":copy_libraries",
|
|
]
|
|
source = "../third_party/pkg/pub/lib/src/asset"
|
|
dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset"
|
|
}
|
|
|
|
# This loop generates rules to copy libraries to lib/
|
|
foreach(library, _full_sdk_libraries) {
|
|
copy_tree("copy_${library}_library") {
|
|
visibility = [
|
|
":copy_platform_sdk_libraries",
|
|
":copy_full_sdk_libraries",
|
|
]
|
|
source = "lib/$library"
|
|
dest = "$root_out_dir/dart-sdk/lib/$library"
|
|
exclude = "*.svn,doc,*.py,*.gypi,*.sh,.gitignore"
|
|
}
|
|
}
|
|
|
|
# This is the main rule to copy libraries in _platform_sdk_libraries to lib/
|
|
group("copy_platform_sdk_libraries") {
|
|
visibility = [
|
|
":create_platform_sdk",
|
|
":copy_libraries",
|
|
]
|
|
deps = []
|
|
foreach(library, _platform_sdk_libraries) {
|
|
deps += [ ":copy_${library}_library" ]
|
|
}
|
|
}
|
|
|
|
# This is the main rule to copy libraries in _full_sdk_libraries to lib/
|
|
group("copy_full_sdk_libraries") {
|
|
visibility = [
|
|
":create_full_sdk",
|
|
":copy_libraries",
|
|
]
|
|
deps = []
|
|
foreach(library, _full_sdk_libraries) {
|
|
deps += [ ":copy_${library}_library" ]
|
|
}
|
|
}
|
|
|
|
group("copy_libraries") {
|
|
if (dart_platform_sdk) {
|
|
deps = [
|
|
":copy_platform_sdk_libraries",
|
|
]
|
|
} else {
|
|
deps = [
|
|
":copy_full_sdk_libraries",
|
|
]
|
|
}
|
|
}
|
|
|
|
if (is_win) {
|
|
copy_tree("copy_7zip") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = [
|
|
":copy_libraries",
|
|
":copy_pub_assets",
|
|
]
|
|
source = "../third_party/7zip"
|
|
dest = "$root_out_dir/dart-sdk/lib/_internal/pub/asset/7zip"
|
|
exclude = ".svn"
|
|
}
|
|
}
|
|
|
|
# This rule writes the version file.
|
|
action("write_version_file") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
output = "$root_out_dir/dart-sdk/version"
|
|
outputs = [
|
|
output,
|
|
]
|
|
script = "../tools/write_version_file.py"
|
|
args = [
|
|
"--output",
|
|
rebase_path(output),
|
|
]
|
|
}
|
|
|
|
# This rule writes the revision file.
|
|
action("write_revision_file") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
output = "$root_out_dir/dart-sdk/revision"
|
|
outputs = [
|
|
output,
|
|
]
|
|
script = "../tools/write_revision_file.py"
|
|
args = [
|
|
"--output",
|
|
rebase_path(output),
|
|
]
|
|
}
|
|
|
|
# Copy libraries.dart to lib/_internal/libraries.dart for backwards
|
|
# compatibility.
|
|
#
|
|
# TODO(sigmund): stop copying libraries.dart. Old versions (<=0.25.1-alpha.4)
|
|
# of the analyzer package do not support the new location of this file. We
|
|
# should be able to remove the old file once we release a newer version of
|
|
# analyzer and popular frameworks have migrated to use it.
|
|
copy("copy_libraries_dart") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
deps = [
|
|
":copy_libraries",
|
|
]
|
|
sources = [
|
|
"lib/_internal/sdk_library_metadata/lib/libraries.dart",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/_internal/{{source_file_part}}",
|
|
]
|
|
}
|
|
|
|
# This rule copies the README file.
|
|
copy("copy_readme") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
sources = [
|
|
"../README.dart-sdk",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/README",
|
|
]
|
|
}
|
|
|
|
# This rule copies the LICENSE file.
|
|
copy("copy_license") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
sources = [
|
|
"../LICENSE",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/LICENSE",
|
|
]
|
|
}
|
|
|
|
# This rule copies the API readme file to lib/
|
|
copy("copy_api_readme") {
|
|
visibility = [ ":create_common_sdk" ]
|
|
sources = [
|
|
"api_readme.md",
|
|
]
|
|
outputs = [
|
|
"$root_out_dir/dart-sdk/lib/api_readme.md",
|
|
]
|
|
}
|
|
|
|
# Parts common to both platform and full SDKs.
|
|
group("create_common_sdk") {
|
|
visibility = [ ":create_sdk" ]
|
|
deps = [
|
|
":copy_analysis_summaries",
|
|
":copy_analyzer_sources",
|
|
":copy_api_readme",
|
|
":copy_dart",
|
|
":copy_dartdoc_files",
|
|
":copy_headers",
|
|
":copy_libraries_dart",
|
|
":copy_license",
|
|
":copy_platform_files",
|
|
":copy_pub_assets",
|
|
":copy_readme",
|
|
":write_revision_file",
|
|
":write_version_file",
|
|
]
|
|
if (is_win) {
|
|
deps += [ ":copy_7zip" ]
|
|
}
|
|
if (is_fuchsia_host && is_linux) {
|
|
deps += [ ":copy_dylibs" ]
|
|
}
|
|
}
|
|
|
|
# Parts specific to the platform SDK.
|
|
group("create_platform_sdk") {
|
|
visibility = [ ":create_sdk" ]
|
|
deps = [
|
|
":copy_platform_sdk_libraries",
|
|
":copy_platform_sdk_scripts",
|
|
":copy_platform_sdk_snapshots",
|
|
]
|
|
}
|
|
|
|
# Parts specific to the full SDK.
|
|
group("create_full_sdk") {
|
|
visibility = [
|
|
":create_sdk",
|
|
]
|
|
|
|
deps = [
|
|
":copy_dev_compiler_sdk",
|
|
":copy_full_sdk_libraries",
|
|
":copy_full_sdk_scripts",
|
|
":copy_full_sdk_snapshots",
|
|
]
|
|
}
|
|
|
|
# The main target to depend on from ../BUILD.gn
|
|
group("create_sdk") {
|
|
deps = [
|
|
":create_common_sdk",
|
|
]
|
|
if (dart_platform_sdk) {
|
|
deps += [ ":create_platform_sdk" ]
|
|
} else {
|
|
deps += [ ":create_full_sdk" ]
|
|
}
|
|
}
|