blob: fe51bbbbbbde07168e66cd45dfd3f195a36a2d5b [file] [log] [blame]
# 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}}",
]
}
}