Index: runtime/vm/BUILD.gn |
diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn |
index 3a79bd5d0a62a155ac89658e6255e44f15fded07..f8369093bf961d095aaf1af11652aec4e8845200 100644 |
--- a/runtime/vm/BUILD.gn |
+++ b/runtime/vm/BUILD.gn |
@@ -28,129 +28,117 @@ config("libdart_vm_config") { |
} |
} |
-static_library("libdart_platform") { |
- configs += [ |
- "..:dart_config", |
- "..:dart_maybe_product_config", |
- ] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
+template("build_libdart_platform") { |
+ extra_configs = [] |
+ if (defined(invoker.extra_configs)) { |
+ extra_configs += invoker.extra_configs |
} |
- public_configs = [ ":libdart_vm_config" ] |
+ static_library(target_name) { |
+ configs += [ "..:dart_config" ] + extra_configs |
+ if (is_fuchsia) { |
+ configs -= [ "//build/config:symbol_visibility_hidden" ] |
+ deps = [ |
+ "//apps/tracing/lib/trace", |
+ ] |
+ } |
+ public_configs = [ ":libdart_vm_config" ] |
+ |
+ sources = rebase_path(processed_gypis.platform_sources, ".", "../platform") |
- sources = rebase_path(processed_gypis.platform_sources, ".", "../platform") |
+ include_dirs = [ ".." ] |
+ } |
+} |
- include_dirs = [ ".." ] |
+build_libdart_platform("libdart_platform") { |
+ extra_configs = [ "..:dart_maybe_product_config" ] |
+} |
+ |
+build_libdart_platform("libdart_platform_product") { |
+ extra_configs = [ "..:dart_product_config" ] |
} |
vm_sources_list = processed_gypis.vm_sources |
-source_set("libdart_vm_jit") { |
- configs += [ |
- "..:dart_config", |
- "..:dart_maybe_product_config", |
- ] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
+template("build_libdart_vm") { |
+ extra_configs = [] |
+ if (defined(invoker.extra_configs)) { |
+ extra_configs += invoker.extra_configs |
} |
- public_configs = [ ":libdart_vm_config" ] |
- set_sources_assignment_filter([ |
- "*_test.cc", |
- "*_test.h", |
- ]) |
- sources = vm_sources_list |
- include_dirs = [ ".." ] |
+ source_set(target_name) { |
+ configs += [ "..:dart_config" ] + extra_configs |
+ if (is_fuchsia) { |
+ configs -= [ "//build/config:symbol_visibility_hidden" ] |
+ deps = [ |
+ "//apps/tracing/lib/trace", |
+ ] |
+ } |
+ public_configs = [ ":libdart_vm_config" ] |
+ set_sources_assignment_filter([ |
+ "*_test.cc", |
+ "*_test.h", |
+ ]) |
+ sources = vm_sources_list |
+ include_dirs = [ ".." ] |
+ } |
+} |
+ |
+build_libdart_vm("libdart_vm_jit") { |
+ extra_configs = [ "..:dart_maybe_product_config" ] |
+} |
+ |
+build_libdart_vm("libdart_vm_jit_product") { |
+ extra_configs = [ "..:dart_product_config" ] |
} |
-source_set("libdart_vm_precompiled_runtime") { |
- configs += [ |
- "..:dart_config", |
+build_libdart_vm("libdart_vm_precompiled_runtime") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_precompiled_runtime_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
- } |
- public_configs = [ ":libdart_vm_config" ] |
- set_sources_assignment_filter([ |
- "*_test.cc", |
- "*_test.h", |
- ]) |
- sources = vm_sources_list |
- include_dirs = [ ".." ] |
} |
-source_set("libdart_vm_nosnapshot") { |
- configs += [ |
- "..:dart_config", |
+build_libdart_vm("libdart_vm_precompiled_runtime_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
+ "..:dart_precompiled_runtime_config", |
+ ] |
+} |
+ |
+build_libdart_vm("libdart_vm_nosnapshot") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_no_snapshot_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
- } |
- public_configs = [ ":libdart_vm_config" ] |
- set_sources_assignment_filter([ |
- "*_test.cc", |
- "*_test.h", |
- ]) |
- sources = vm_sources_list |
- include_dirs = [ ".." ] |
} |
-source_set("libdart_vm_nosnapshot_with_precompiler") { |
- configs += [ |
- "..:dart_config", |
+build_libdart_vm("libdart_vm_nosnapshot_with_precompiler") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_precompiler_config", |
"..:dart_no_snapshot_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
- } |
- public_configs = [ ":libdart_vm_config" ] |
- set_sources_assignment_filter([ |
- "*_test.cc", |
- "*_test.h", |
- ]) |
- sources = vm_sources_list |
- include_dirs = [ ".." ] |
} |
-source_set("libdart_vm_with_precompiler") { |
- configs += [ |
- "..:dart_config", |
+build_libdart_vm("libdart_vm_nosnapshot_with_precompiler_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
+ "..:dart_precompiler_config", |
+ "..:dart_no_snapshot_config", |
+ ] |
+} |
+ |
+build_libdart_vm("libdart_vm_with_precompiler") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_precompiler_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- deps = [ |
- "//apps/tracing/lib/trace", |
- ] |
- } |
- public_configs = [ ":libdart_vm_config" ] |
- set_sources_assignment_filter([ |
- "*_test.cc", |
- "*_test.h", |
- ]) |
- sources = vm_sources_list |
- include_dirs = [ ".." ] |
+} |
+ |
+build_libdart_vm("libdart_vm_with_precompiler_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
+ "..:dart_precompiler_config", |
+ ] |
} |
template("process_library_source") { |
@@ -199,6 +187,30 @@ template("generate_library_source") { |
} |
} |
+template("build_libdart_lib") { |
+ extra_configs = [] |
+ if (defined(invoker.extra_configs)) { |
+ extra_configs += invoker.extra_configs |
+ } |
+ extra_deps = [] |
+ if (defined(invoker.extra_deps)) { |
+ extra_deps += invoker.extra_deps |
+ } |
+ extra_sources = [] |
+ if (defined(invoker.extra_sources)) { |
+ extra_sources += invoker.extra_sources |
+ } |
+ source_set(target_name) { |
+ configs += [ "..:dart_config" ] + extra_configs |
+ if (is_fuchsia) { |
+ configs -= [ "//build/config:symbol_visibility_hidden" ] |
+ } |
+ deps = extra_deps |
+ sources = extra_sources |
+ include_dirs = [ ".." ] |
+ } |
+} |
+ |
# This templates expects invoker.sources to be a list of lists. |
# The lists contain the following information about each library: |
# library name (string) |
@@ -248,57 +260,66 @@ template("generate_core_libraries") { |
all_libsources = rebase_path(invoker.allsources, ".", "../lib") |
- source_set("libdart_lib_nosnapshot_with_precompiler") { |
- configs += [ |
- "..:dart_config", |
+ build_libdart_lib("libdart_lib_nosnapshot_with_precompiler") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_precompiler_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- } |
- deps = libdeps |
- sources = all_libsources + [ "bootstrap.cc" ] + liboutputs |
- include_dirs = [ ".." ] |
+ extra_deps = libdeps |
+ extra_sources = all_libsources + [ "bootstrap.cc" ] + liboutputs |
} |
- source_set("libdart_lib_with_precompiler") { |
- configs += [ |
- "..:dart_config", |
- "..:dart_maybe_product_config", |
+ build_libdart_lib("libdart_lib_nosnapshot_with_precompiler_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
"..:dart_precompiler_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- } |
- deps = libdeps |
- sources = all_libsources + [ "bootstrap_nocore.cc" ] |
- include_dirs = [ ".." ] |
+ extra_deps = libdeps |
+ extra_sources = all_libsources + [ "bootstrap.cc" ] + liboutputs |
} |
- source_set("libdart_lib_jit") { |
- configs += [ |
- "..:dart_config", |
+ build_libdart_lib("libdart_lib_with_precompiler") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
+ "..:dart_precompiler_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- } |
- sources = all_libsources + [ "bootstrap_nocore.cc" ] |
- include_dirs = [ ".." ] |
+ extra_deps = libdeps |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
+ } |
+ |
+ build_libdart_lib("libdart_lib_with_precompiler_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
+ "..:dart_precompiler_config", |
+ ] |
+ extra_deps = libdeps |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
+ } |
+ |
+ build_libdart_lib("libdart_lib_jit") { |
+ extra_configs = [ "..:dart_maybe_product_config" ] |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
+ } |
+ |
+ build_libdart_lib("libdart_lib_jit_product") { |
+ extra_configs = [ "..:dart_product_config" ] |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
} |
- source_set("libdart_lib_precompiled_runtime") { |
- configs += [ |
- "..:dart_config", |
+ build_libdart_lib("libdart_lib_precompiled_runtime") { |
+ extra_configs = [ |
"..:dart_maybe_product_config", |
"..:dart_precompiled_runtime_config", |
] |
- if (is_fuchsia) { |
- configs -= [ "//build/config:symbol_visibility_hidden" ] |
- } |
- sources = all_libsources + [ "bootstrap_nocore.cc" ] |
- include_dirs = [ ".." ] |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
+ } |
+ |
+ build_libdart_lib("libdart_lib_precompiled_runtime_product") { |
+ extra_configs = [ |
+ "..:dart_product_config", |
+ "..:dart_precompiled_runtime_config", |
+ ] |
+ extra_sources = all_libsources + [ "bootstrap_nocore.cc" ] |
} |
} |