Index: runtime/vm/BUILD.gn |
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn |
index ea968d89cb094bb4bcef60604c8baac8f3273d33..b19dfc86768bf40682a78ccea66e51dabce219ef 100644 |
--- a/runtime/vm/BUILD.gn |
+++ b/runtime/vm/BUILD.gn |
@@ -100,17 +100,13 @@ template("generate_library_source") { |
assert(defined(invoker.filename), "Need a filename in $target_name") |
assert(defined(invoker.kind), "Need kind in $target_name") |
assert(defined(invoker.output), "Need output in $target_name") |
+ assert(defined(invoker.path), "Need path in $target_name") |
action(target_name) { |
visibility = [ ":*" ] # Only targets in this file can see this. |
libname = invoker.libname |
filename = invoker.filename |
kind = invoker.kind |
- |
- if (kind == "source") { |
- path = "../../sdk/lib/${filename}" |
- } else { |
- path = "../lib" |
- } |
+ path = invoker.path |
lib_sources_gypi = |
exec_script("../../tools/gypi_to_gn.py", |
@@ -155,17 +151,24 @@ template("generate_core_libraries") { |
foreach(lib, invoker.sources) { |
libname = lib[0] |
filename = lib[1] |
+ do_patch = lib[2] |
+ source_path = lib[3] |
generate_library_source("generate_${filename}_cc_file") { |
libname = libname |
filename = filename |
kind = "source" |
+ path = source_path |
output = "$target_gen_dir/${filename}_gen.cc" |
} |
- generate_library_source("generate_${filename}_patch_cc_file") { |
- libname = libname |
- filename = filename |
- kind = "patch" |
- output = "$target_gen_dir/${filename}_patch_gen.cc" |
+ if (do_patch) { |
+ patch_path = lib[4] |
+ generate_library_source("generate_${filename}_patch_cc_file") { |
+ libname = libname |
+ filename = filename |
+ kind = "patch" |
+ path = patch_path |
+ output = "$target_gen_dir/${filename}_patch_gen.cc" |
+ } |
} |
lib_sources_gypi = |
exec_script("../../tools/gypi_to_gn.py", |
@@ -173,10 +176,12 @@ template("generate_core_libraries") { |
"scope", |
["../lib/${filename}_sources.gypi"]) |
libsources += rebase_path(lib_sources_gypi.sources, ".", "../lib") |
- liboutputs += ["$target_gen_dir/${filename}_gen.cc", |
- "$target_gen_dir/${filename}_patch_gen.cc"] |
- libdeps += [":generate_${filename}_cc_file", |
- ":generate_${filename}_patch_cc_file"] |
+ liboutputs += ["$target_gen_dir/${filename}_gen.cc"] |
+ libdeps += [":generate_${filename}_cc_file"] |
+ if (do_patch) { |
+ liboutputs += ["$target_gen_dir/${filename}_patch_gen.cc"] |
+ libdeps += [":generate_${filename}_patch_cc_file"] |
+ } |
} |
static_library("libdart_lib_nosnapshot") { |
@@ -207,17 +212,17 @@ template("generate_core_libraries") { |
generate_core_libraries("core_libraries") { |
sources = [ |
- ["async", "async"], |
- ["core", "core"], |
- ["collection", "collection"], |
- ["convert", "convert"], |
- ["developer", "developer"], |
- ["_internal", "internal"], |
- ["isolate", "isolate"], |
- ["math", "math"], |
- ["mirrors", "mirrors"], |
- ["profiler", "profiler"], |
- ["typed_data", "typed_data"], |
- ["_vmservice", "vmservice"], |
+ ["async", "async", true, "../../sdk/lib/async", "../lib"], |
+ ["core", "core", true, "../../sdk/lib/core", "../lib"], |
+ ["collection", "collection", true, "../../sdk/lib/collection", "../lib"], |
+ ["convert", "convert", true, "../../sdk/lib/convert", "../lib"], |
+ ["developer", "developer", true, "../../sdk/lib/developer", "../lib"], |
+ ["_internal", "internal", true, "../../sdk/lib/internal", "../lib"], |
+ ["isolate", "isolate", true, "../../sdk/lib/isolate", "../lib"], |
+ ["math", "math", true, "../../sdk/lib/math", "../lib"], |
+ ["mirrors", "mirrors", true, "../../sdk/lib/mirrors", "../lib"], |
+ ["profiler", "profiler", false, "../../sdk/lib/profiler"], |
+ ["typed_data", "typed_data", false, "../lib"], |
+ ["_vmservice", "vmservice", true, "../../sdk/lib/vmservice", "../lib"], |
] |
} |