| Index: utils/invoke_dart.gni
|
| diff --git a/utils/invoke_dart.gni b/utils/invoke_dart.gni
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..287d94c633f31d1cf871aa3850cb8f520ab058eb
|
| --- /dev/null
|
| +++ b/utils/invoke_dart.gni
|
| @@ -0,0 +1,88 @@
|
| +# 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.
|
| +
|
| +_dart_root = rebase_path("..")
|
| +
|
| +template("invoke_dart") {
|
| + assert(defined(invoker.outputs), "invoke_dart must specify outputs")
|
| + extra_deps = []
|
| + if (defined(invoker.deps)) {
|
| + extra_deps += invoker.deps
|
| + }
|
| +
|
| + extra_inputs = []
|
| + if (defined(invoker.inputs)) {
|
| + extra_inputs += invoker.inputs
|
| + }
|
| +
|
| + extra_args = []
|
| + if (defined(invoker.args)) {
|
| + extra_args += invoker.args
|
| + }
|
| +
|
| + action(target_name) {
|
| + relative_dart_root = rebase_path(_dart_root, ".")
|
| + deps = extra_deps + [
|
| + "$relative_dart_root/runtime/bin:dart($host_toolchain)",
|
| + ]
|
| +
|
| + dart_out_dir = get_label_info(
|
| + "$relative_dart_root/runtime/bin:dart($host_toolchain)", "root_out_dir")
|
| + # TODO(zra): Add platform specific executable suffix (e.g. .exe on win)
|
| + dart = rebase_path("$dart_out_dir/dart")
|
| +
|
| + inputs = [
|
| + dart,
|
| + ] + extra_inputs
|
| +
|
| + outputs = invoker.outputs
|
| +
|
| + script = "$_dart_root/tools/dart_for_gn.py"
|
| + args = [
|
| + dart,
|
| + ] + extra_args
|
| + }
|
| +}
|
| +
|
| +template("application_snapshot") {
|
| + assert(defined(invoker.main_dart), "Must specify 'main_dart'")
|
| + main_dart = invoker.main_dart
|
| + name = target_name
|
| + if (defined(invoker.name)) {
|
| + name = invoker.name
|
| + }
|
| + extra_deps = []
|
| + if (defined(invoker.deps)) {
|
| + extra_deps += invoker.deps
|
| + }
|
| + extra_inputs = []
|
| + if (defined(invoker.inputs)) {
|
| + extra_inputs += invoker.inputs
|
| + }
|
| + invoke_dart(target_name) {
|
| + deps = extra_deps + [
|
| + "$_dart_root/pkg:pkg_files_stamp"
|
| + ]
|
| +
|
| + inputs = extra_inputs + [
|
| + "$_dart_root/sdk/lib/_internal/sdk_library_metadata/lib/libraries.dart",
|
| + "$root_gen_dir/pkg_files.stamp",
|
| + ]
|
| +
|
| + output = "$root_gen_dir/$name.dart.snapshot"
|
| + outputs = [
|
| + output,
|
| + ]
|
| +
|
| + dot_packages = rebase_path("$_dart_root/.packages")
|
| + abs_output = rebase_path(output)
|
| + main_file = rebase_path(main_dart)
|
| +
|
| + args = [
|
| + "--packages=$dot_packages",
|
| + "--snapshot=$abs_output",
|
| + main_file
|
| + ]
|
| + }
|
| +}
|
|
|