mirror of
https://github.com/dart-lang/sdk
synced 2024-09-04 16:03:44 +00:00
![Zachary Anderson](/assets/img/avatar_default.png)
The Dart root in the Dart tree is at //, not //dart. But in the Dart tree we can refer to the root with a relative path. R=asiva@google.com Review URL: https://codereview.chromium.org/2301833003 .
55 lines
1.8 KiB
Plaintext
55 lines
1.8 KiB
Plaintext
# Copyright (c) 2016, 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.
|
|
|
|
default_dart_root = rebase_path("../..")
|
|
|
|
# This build rule will copy the source for one Dart SDK library.
|
|
#
|
|
# Required arguments:
|
|
# sdk_lib_name
|
|
# The name of a Dart SDK library.
|
|
#
|
|
# Optional arguments:
|
|
# destination
|
|
# Base path to copy sources. Default value is "$root_gen_dir/dart_sdk".
|
|
#
|
|
# dart_root
|
|
# Path to the Dart SDK source root. Default value is "../..".
|
|
#
|
|
# The sources will be copied into $root_gen_dir/dart_sdk/$sdk_lib_name/.
|
|
#
|
|
template("dart_sdk_lib_copy") {
|
|
assert(defined(invoker.sdk_lib_name))
|
|
if (defined(invoker.dart_root)) {
|
|
dart_root = rebase_path(invoker.dart_root)
|
|
} else {
|
|
dart_root = default_dart_root
|
|
}
|
|
if (defined(invoker.destination)) {
|
|
destination = invoker.destination
|
|
} else {
|
|
destination = "$root_gen_dir/dart_sdk"
|
|
}
|
|
dart_sdk_sdk_lib_path =
|
|
rebase_path("sdk/lib", "", dart_root)
|
|
dart_sdk_tools_gypi_to_gn_path =
|
|
rebase_path("tools/gypi_to_gn.py", "", dart_root)
|
|
# The name of the SDK library being copied.
|
|
lib_name = invoker.sdk_lib_name
|
|
# The path to the libraries source directory.
|
|
lib_path = rebase_path(lib_name, "", dart_sdk_sdk_lib_path)
|
|
# The path to the sources gypi.
|
|
lib_sources_gypi = lib_name + "_sources.gypi"
|
|
# Get the contents of the gypi file.
|
|
sdk_lib_sources_gypi =
|
|
exec_script(dart_sdk_tools_gypi_to_gn_path,
|
|
[rebase_path(lib_sources_gypi, "", lib_path)],
|
|
"scope",
|
|
[rebase_path(lib_sources_gypi, "", lib_path)])
|
|
copy(target_name) {
|
|
sources = rebase_path(sdk_lib_sources_gypi.sources, "", lib_path)
|
|
outputs = [ "$destination/$lib_name/{{source_file_part}}" ]
|
|
}
|
|
}
|