2014-11-11 22:03:55 +00:00
|
|
|
# Copyright (c) 2014, 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.
|
|
|
|
|
2016-11-10 19:16:24 +00:00
|
|
|
import("../../build/executable_suffix.gni")
|
|
|
|
import("../../build/prebuilt_dart_sdk.gni")
|
2017-08-15 04:54:34 +00:00
|
|
|
import("../../sdk/lib/async/async_sources.gni")
|
|
|
|
import("../../sdk/lib/collection/collection_sources.gni")
|
|
|
|
import("../../sdk/lib/convert/convert_sources.gni")
|
|
|
|
import("../../sdk/lib/core/core_sources.gni")
|
|
|
|
import("../../sdk/lib/developer/developer_sources.gni")
|
|
|
|
import("../../sdk/lib/internal/internal_sources.gni")
|
|
|
|
import("../../sdk/lib/isolate/isolate_sources.gni")
|
|
|
|
import("../../sdk/lib/math/math_sources.gni")
|
|
|
|
import("../../sdk/lib/mirrors/mirrors_sources.gni")
|
|
|
|
import("../../sdk/lib/profiler/profiler_sources.gni")
|
|
|
|
import("../../sdk/lib/typed_data/typed_data_sources.gni")
|
|
|
|
import("../../sdk/lib/vmservice/vmservice_sources.gni")
|
2017-05-02 00:22:58 +00:00
|
|
|
import("../../utils/generate_patch_sdk.gni")
|
2017-08-15 04:54:34 +00:00
|
|
|
import("../bin/io_sources.gni")
|
|
|
|
import("../lib/async_sources.gni")
|
|
|
|
import("../lib/collection_sources.gni")
|
|
|
|
import("../lib/convert_sources.gni")
|
|
|
|
import("../lib/core_sources.gni")
|
|
|
|
import("../lib/developer_sources.gni")
|
|
|
|
import("../lib/internal_sources.gni")
|
|
|
|
import("../lib/isolate_sources.gni")
|
|
|
|
import("../lib/math_sources.gni")
|
|
|
|
import("../lib/mirrors_sources.gni")
|
|
|
|
import("../lib/profiler_sources.gni")
|
|
|
|
import("../lib/typed_data_sources.gni")
|
|
|
|
import("../lib/vmservice_sources.gni")
|
2017-01-06 20:38:11 +00:00
|
|
|
import("../runtime_args.gni")
|
2017-09-04 14:18:37 +00:00
|
|
|
import("compiler/compiler_sources.gni")
|
2017-08-15 04:54:34 +00:00
|
|
|
import("vm_sources.gni")
|
2016-11-01 19:59:36 +00:00
|
|
|
|
2014-11-11 22:03:55 +00:00
|
|
|
config("libdart_vm_config") {
|
2017-05-21 06:30:06 +00:00
|
|
|
if (is_fuchsia) {
|
2017-09-12 16:42:07 +00:00
|
|
|
libs = [
|
2017-09-15 14:54:18 +00:00
|
|
|
"zircon",
|
2017-09-12 16:42:07 +00:00
|
|
|
"trace-engine",
|
|
|
|
]
|
2016-10-04 16:19:07 +00:00
|
|
|
} else if (is_win) {
|
|
|
|
libs = [
|
|
|
|
"advapi32.lib",
|
|
|
|
"shell32.lib",
|
|
|
|
"dbghelp.lib",
|
|
|
|
]
|
|
|
|
} else {
|
|
|
|
libs = [ "dl" ]
|
|
|
|
if (!is_android) {
|
2016-10-26 15:50:54 +00:00
|
|
|
libs += [ "pthread" ]
|
2016-10-04 16:19:07 +00:00
|
|
|
}
|
|
|
|
if (is_linux) {
|
|
|
|
libs += [ "rt" ]
|
|
|
|
}
|
2015-01-26 20:59:03 +00:00
|
|
|
}
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
template("build_libdart_vm") {
|
|
|
|
extra_configs = []
|
|
|
|
if (defined(invoker.extra_configs)) {
|
|
|
|
extra_configs += invoker.extra_configs
|
2017-06-20 22:21:02 +00:00
|
|
|
}
|
2017-07-16 04:43:47 +00:00
|
|
|
source_set(target_name) {
|
|
|
|
configs += [ "..:dart_config" ] + extra_configs
|
|
|
|
if (is_fuchsia) {
|
|
|
|
configs -= [ "//build/config:symbol_visibility_hidden" ]
|
|
|
|
deps = [
|
2017-09-12 16:42:07 +00:00
|
|
|
# TODO(zra): When the platform-specific timeline code is moved out to
|
|
|
|
# the embedder, this can go away.
|
2017-09-15 14:54:18 +00:00
|
|
|
"//zircon/system/ulib/fbl",
|
2017-07-16 04:43:47 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
public_configs = [ ":libdart_vm_config" ]
|
|
|
|
set_sources_assignment_filter([
|
|
|
|
"*_test.cc",
|
|
|
|
"*_test.h",
|
|
|
|
])
|
2017-09-04 14:18:37 +00:00
|
|
|
sources = vm_sources + rebase_path(compiler_sources, ".", "./compiler/")
|
2017-07-16 04:43:47 +00:00
|
|
|
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" ]
|
2017-04-10 20:44:21 +00:00
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_vm("libdart_vm_precompiled_runtime") {
|
|
|
|
extra_configs = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
|
|
|
"..:dart_precompiled_runtime_config",
|
2014-11-11 22:03:55 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
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 = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
|
|
|
"..:dart_no_snapshot_config",
|
2016-09-23 14:47:36 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_vm("libdart_vm_nosnapshot_with_precompiler") {
|
|
|
|
extra_configs = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
|
|
|
"..:dart_precompiler_config",
|
|
|
|
"..:dart_no_snapshot_config",
|
2015-05-22 18:32:14 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
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 = [
|
2017-03-29 17:12:00 +00:00
|
|
|
"..:dart_maybe_product_config",
|
|
|
|
"..:dart_precompiler_config",
|
|
|
|
]
|
2017-07-16 04:43:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
build_libdart_vm("libdart_vm_with_precompiler_product") {
|
|
|
|
extra_configs = [
|
|
|
|
"..:dart_product_config",
|
|
|
|
"..:dart_precompiler_config",
|
|
|
|
]
|
2017-03-29 17:12:00 +00:00
|
|
|
}
|
|
|
|
|
2016-10-27 08:09:22 +00:00
|
|
|
template("process_library_source") {
|
2016-11-12 18:57:01 +00:00
|
|
|
assert(defined(invoker.libsources), "Need libsources in $target_name")
|
2014-11-11 22:03:55 +00:00
|
|
|
assert(defined(invoker.output), "Need output in $target_name")
|
|
|
|
action(target_name) {
|
|
|
|
visibility = [ ":*" ] # Only targets in this file can see this.
|
2016-11-12 18:57:01 +00:00
|
|
|
libsources = invoker.libsources
|
2014-11-11 22:03:55 +00:00
|
|
|
|
2016-10-27 08:09:22 +00:00
|
|
|
script = invoker.script
|
2016-11-12 18:57:01 +00:00
|
|
|
inputs = invoker.inputs + libsources
|
2016-10-26 15:50:54 +00:00
|
|
|
outputs = [
|
|
|
|
invoker.output,
|
|
|
|
]
|
2016-11-12 18:57:01 +00:00
|
|
|
args = invoker.args + rebase_path(libsources, root_build_dir)
|
2016-10-27 08:09:22 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
template("generate_library_source") {
|
|
|
|
assert(defined(invoker.libname), "Need libname in $target_name")
|
2016-11-12 18:57:01 +00:00
|
|
|
assert(defined(invoker.libsources), "Need libsources in $target_name")
|
2016-10-27 08:09:22 +00:00
|
|
|
assert(defined(invoker.kind), "Need kind in $target_name")
|
|
|
|
assert(defined(invoker.output), "Need output in $target_name")
|
|
|
|
|
|
|
|
process_library_source(target_name) {
|
|
|
|
libname = invoker.libname
|
2016-11-12 18:57:01 +00:00
|
|
|
libsources = invoker.libsources
|
2016-10-27 08:09:22 +00:00
|
|
|
kind = invoker.kind
|
|
|
|
script = "../tools/gen_library_src_paths.py"
|
|
|
|
inputs = [
|
|
|
|
"../lib/libgen_in.cc",
|
|
|
|
]
|
2016-11-12 18:57:01 +00:00
|
|
|
output = invoker.output
|
2014-11-11 22:03:55 +00:00
|
|
|
args = [
|
2016-10-27 08:09:22 +00:00
|
|
|
"--output",
|
|
|
|
rebase_path(invoker.output, root_build_dir),
|
|
|
|
"--input_cc",
|
|
|
|
rebase_path("../lib/libgen_in.cc", root_build_dir),
|
|
|
|
"--include",
|
|
|
|
"vm/bootstrap.h",
|
|
|
|
"--var_name",
|
|
|
|
"dart::Bootstrap::${libname}_${kind}_paths_",
|
|
|
|
"--library_name",
|
|
|
|
"dart:${libname}",
|
|
|
|
]
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
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 = [ ".." ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-11-12 18:57:01 +00:00
|
|
|
# This templates expects invoker.sources to be a list of lists.
|
|
|
|
# The lists contain the following information about each library:
|
|
|
|
# library name (string)
|
|
|
|
# library sources (list of strings)
|
|
|
|
# library source base path (string)
|
|
|
|
# filename (string)
|
|
|
|
# do_patch (boolean)
|
|
|
|
#
|
|
|
|
# If do_patch is true, the lists additionally contains
|
|
|
|
# patch sources (list of strings)
|
|
|
|
# patch source base path (string)
|
2014-11-11 22:03:55 +00:00
|
|
|
#
|
|
|
|
# The template iterates over the list, and generates generate_library_source
|
|
|
|
# actions for each. After that, it generates targets to compile the generated
|
2016-11-12 18:57:01 +00:00
|
|
|
# sources to make libdart_lib_*.
|
2014-11-11 22:03:55 +00:00
|
|
|
template("generate_core_libraries") {
|
|
|
|
assert(defined(invoker.sources), "Need sources in $target_name")
|
2016-11-12 18:57:01 +00:00
|
|
|
assert(defined(invoker.allsources), "Need allsources in $target_name")
|
2014-11-11 22:03:55 +00:00
|
|
|
liboutputs = []
|
|
|
|
libdeps = []
|
|
|
|
foreach(lib, invoker.sources) {
|
|
|
|
libname = lib[0]
|
2016-11-12 18:57:01 +00:00
|
|
|
filename = lib[3]
|
|
|
|
do_patch = lib[4]
|
2014-11-11 22:03:55 +00:00
|
|
|
generate_library_source("generate_${filename}_cc_file") {
|
|
|
|
libname = libname
|
2016-11-12 18:57:01 +00:00
|
|
|
libsources = rebase_path(lib[1], ".", lib[2])
|
2014-11-11 22:03:55 +00:00
|
|
|
kind = "source"
|
|
|
|
output = "$target_gen_dir/${filename}_gen.cc"
|
|
|
|
}
|
2016-03-23 19:56:02 +00:00
|
|
|
if (do_patch) {
|
|
|
|
generate_library_source("generate_${filename}_patch_cc_file") {
|
|
|
|
libname = libname
|
2016-11-12 18:57:01 +00:00
|
|
|
libsources = rebase_path(lib[5], ".", lib[6])
|
2016-03-23 19:56:02 +00:00
|
|
|
kind = "patch"
|
|
|
|
output = "$target_gen_dir/${filename}_patch_gen.cc"
|
|
|
|
}
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
2016-11-12 18:57:01 +00:00
|
|
|
|
2016-10-26 15:50:54 +00:00
|
|
|
liboutputs += [ "$target_gen_dir/${filename}_gen.cc" ]
|
|
|
|
libdeps += [ ":generate_${filename}_cc_file" ]
|
2016-03-23 19:56:02 +00:00
|
|
|
if (do_patch) {
|
2016-10-26 15:50:54 +00:00
|
|
|
liboutputs += [ "$target_gen_dir/${filename}_patch_gen.cc" ]
|
|
|
|
libdeps += [ ":generate_${filename}_patch_cc_file" ]
|
2016-03-23 19:56:02 +00:00
|
|
|
}
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
|
|
|
|
2016-11-12 18:57:01 +00:00
|
|
|
all_libsources = rebase_path(invoker.allsources, ".", "../lib")
|
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_lib("libdart_lib_nosnapshot_with_precompiler") {
|
|
|
|
extra_configs = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
2017-04-10 20:44:21 +00:00
|
|
|
"..:dart_precompiler_config",
|
2016-09-23 14:47:36 +00:00
|
|
|
]
|
2017-07-16 04:43:47 +00:00
|
|
|
extra_deps = libdeps
|
|
|
|
extra_sources = all_libsources + [ "bootstrap.cc" ] + liboutputs
|
2016-09-23 14:47:36 +00:00
|
|
|
}
|
2017-04-12 23:05:33 +00:00
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_lib("libdart_lib_nosnapshot_with_precompiler_product") {
|
|
|
|
extra_configs = [
|
|
|
|
"..:dart_product_config",
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_precompiler_config",
|
2014-11-11 22:03:55 +00:00
|
|
|
]
|
2017-07-16 04:43:47 +00:00
|
|
|
extra_deps = libdeps
|
|
|
|
extra_sources = all_libsources + [ "bootstrap.cc" ] + liboutputs
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
2017-04-10 20:44:21 +00:00
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_lib("libdart_lib_with_precompiler") {
|
|
|
|
extra_configs = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
2017-07-16 04:43:47 +00:00
|
|
|
"..:dart_precompiler_config",
|
2016-09-23 14:47:36 +00:00
|
|
|
]
|
2017-07-16 04:43:47 +00:00
|
|
|
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" ]
|
2016-09-23 14:47:36 +00:00
|
|
|
}
|
2017-04-12 23:05:33 +00:00
|
|
|
|
2017-07-16 04:43:47 +00:00
|
|
|
build_libdart_lib("libdart_lib_precompiled_runtime") {
|
|
|
|
extra_configs = [
|
2016-10-26 15:50:54 +00:00
|
|
|
"..:dart_maybe_product_config",
|
|
|
|
"..:dart_precompiled_runtime_config",
|
2016-02-25 21:44:28 +00:00
|
|
|
]
|
2017-07-16 04:43:47 +00:00
|
|
|
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" ]
|
2016-02-25 21:44:28 +00:00
|
|
|
}
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
generate_core_libraries("core_libraries") {
|
|
|
|
sources = [
|
2016-10-26 15:50:54 +00:00
|
|
|
[
|
|
|
|
"async",
|
2017-08-15 04:54:34 +00:00
|
|
|
async_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/async",
|
2016-10-26 15:50:54 +00:00
|
|
|
"async",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
async_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"collection",
|
2017-08-15 04:54:34 +00:00
|
|
|
collection_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/collection",
|
2016-10-26 15:50:54 +00:00
|
|
|
"collection",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
collection_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"convert",
|
2017-08-15 04:54:34 +00:00
|
|
|
convert_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/convert",
|
2016-10-26 15:50:54 +00:00
|
|
|
"convert",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
convert_runtime_sources,
|
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"core",
|
|
|
|
core_sdk_sources,
|
|
|
|
"../../sdk/lib/core",
|
|
|
|
"core",
|
|
|
|
true,
|
|
|
|
core_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"developer",
|
2017-08-15 04:54:34 +00:00
|
|
|
developer_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/developer",
|
2016-10-26 15:50:54 +00:00
|
|
|
"developer",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
developer_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"_internal",
|
2017-08-15 04:54:34 +00:00
|
|
|
internal_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/internal",
|
2016-10-26 15:50:54 +00:00
|
|
|
"internal",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
internal_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"isolate",
|
2017-08-15 04:54:34 +00:00
|
|
|
isolate_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/isolate",
|
2016-10-26 15:50:54 +00:00
|
|
|
"isolate",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
isolate_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"math",
|
2017-08-15 04:54:34 +00:00
|
|
|
math_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/math",
|
2016-10-26 15:50:54 +00:00
|
|
|
"math",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
math_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"mirrors",
|
2017-08-15 04:54:34 +00:00
|
|
|
mirrors_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/mirrors",
|
2016-10-26 15:50:54 +00:00
|
|
|
"mirrors",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
mirrors_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"profiler",
|
2017-08-15 04:54:34 +00:00
|
|
|
profiler_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/profiler",
|
2016-10-26 15:50:54 +00:00
|
|
|
"profiler",
|
|
|
|
false,
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"typed_data",
|
2017-08-15 04:54:34 +00:00
|
|
|
typed_data_sdk_sources,
|
2016-12-22 09:57:21 +00:00
|
|
|
"../../sdk/lib/typed_data",
|
|
|
|
"typed_data",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
typed_data_runtime_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../lib",
|
2016-10-26 15:50:54 +00:00
|
|
|
],
|
|
|
|
[
|
|
|
|
"_vmservice",
|
2017-08-15 04:54:34 +00:00
|
|
|
vmservice_sdk_sources,
|
2016-11-12 18:57:01 +00:00
|
|
|
"../../sdk/lib/vmservice",
|
2016-10-26 15:50:54 +00:00
|
|
|
"vmservice",
|
|
|
|
true,
|
2017-08-15 04:54:34 +00:00
|
|
|
vmservice_runtime_sources,
|
2016-10-26 15:50:54 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
2014-11-11 22:03:55 +00:00
|
|
|
]
|
2017-08-15 04:54:34 +00:00
|
|
|
allsources = async_runtime_sources + collection_runtime_sources +
|
|
|
|
convert_runtime_sources + core_runtime_sources +
|
|
|
|
developer_runtime_sources + internal_runtime_sources +
|
|
|
|
isolate_runtime_sources + math_runtime_sources +
|
|
|
|
mirrors_runtime_sources + profiler_runtime_sources +
|
|
|
|
typed_data_runtime_sources + vmservice_runtime_sources
|
2014-11-11 22:03:55 +00:00
|
|
|
}
|
2016-10-27 08:09:22 +00:00
|
|
|
|
|
|
|
template("concatenate_patch") {
|
2016-11-12 18:57:01 +00:00
|
|
|
assert(defined(invoker.libsources), "Need a sources in $target_name")
|
2016-10-27 08:09:22 +00:00
|
|
|
assert(defined(invoker.output), "Need an output in $target_name")
|
|
|
|
|
|
|
|
process_library_source(target_name) {
|
2016-11-12 18:57:01 +00:00
|
|
|
libsources = invoker.libsources
|
|
|
|
inputs = []
|
2016-10-27 08:09:22 +00:00
|
|
|
output = invoker.output
|
|
|
|
script = "../tools/concatenate_patches.py"
|
|
|
|
args = [
|
|
|
|
"--output",
|
|
|
|
rebase_path(output, root_build_dir),
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-05-02 00:22:58 +00:00
|
|
|
template("generate_vm_patched_sdk") {
|
2016-12-13 21:02:52 +00:00
|
|
|
assert(defined(invoker.libraries), "Need libraries in $target_name")
|
2016-10-31 18:10:06 +00:00
|
|
|
|
2016-12-13 21:02:52 +00:00
|
|
|
concatenation_target_names = []
|
2016-10-27 08:09:22 +00:00
|
|
|
|
2016-12-13 21:02:52 +00:00
|
|
|
# Concatenate vm library patches.
|
|
|
|
foreach(library, invoker.libraries) {
|
|
|
|
name = library[0]
|
2016-10-27 08:09:22 +00:00
|
|
|
|
2016-12-13 21:02:52 +00:00
|
|
|
target_output = "$target_gen_dir/patches/${name}_patch.dart"
|
|
|
|
concatenate_patch("concatenate_${name}_patch") {
|
|
|
|
libsources = rebase_path(library[1], ".", library[2])
|
|
|
|
output = target_output
|
2016-11-01 16:34:27 +00:00
|
|
|
}
|
2016-12-13 21:02:52 +00:00
|
|
|
concatenation_target_names += [ ":concatenate_${name}_patch" ]
|
|
|
|
}
|
2016-10-27 08:09:22 +00:00
|
|
|
|
2017-10-06 15:34:37 +00:00
|
|
|
patched_sdk_dir = "patched_sdk"
|
|
|
|
|
|
|
|
other_outputs = [
|
|
|
|
# Instead of listing all outputs we list those consumed by
|
|
|
|
# other BUILD rules.
|
|
|
|
"$root_out_dir/${patched_sdk_dir}/lib/libraries.json",
|
|
|
|
"$root_out_dir/${patched_sdk_dir}/lib/vmservice_libraries.json",
|
|
|
|
]
|
|
|
|
|
2016-12-13 21:02:52 +00:00
|
|
|
# Build the patched sdk out of the concatenated patches and the special
|
|
|
|
# libraries.
|
2017-05-02 00:22:58 +00:00
|
|
|
generate_patched_sdk(target_name) {
|
|
|
|
mode = "vm"
|
2016-12-13 21:02:52 +00:00
|
|
|
deps = concatenation_target_names
|
2017-05-02 00:22:58 +00:00
|
|
|
input_patches_dir = "$target_gen_dir/patches"
|
2017-10-06 15:34:37 +00:00
|
|
|
patched_sdk_dir = patched_sdk_dir
|
|
|
|
outputs = other_outputs
|
2016-10-27 08:09:22 +00:00
|
|
|
}
|
|
|
|
}
|
2016-12-13 21:02:52 +00:00
|
|
|
|
2017-05-02 00:22:58 +00:00
|
|
|
generate_vm_patched_sdk("patched_sdk") {
|
2016-12-13 21:02:52 +00:00
|
|
|
libraries = [
|
|
|
|
[
|
|
|
|
"async",
|
2017-08-15 04:54:34 +00:00
|
|
|
async_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"collection",
|
2017-08-15 04:54:34 +00:00
|
|
|
collection_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"convert",
|
2017-08-15 04:54:34 +00:00
|
|
|
convert_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"core",
|
2017-08-15 04:54:34 +00:00
|
|
|
core_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"developer",
|
2017-08-15 04:54:34 +00:00
|
|
|
developer_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"internal",
|
2017-08-15 04:54:34 +00:00
|
|
|
internal_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"isolate",
|
2017-08-15 04:54:34 +00:00
|
|
|
isolate_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"math",
|
2017-08-15 04:54:34 +00:00
|
|
|
math_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"mirrors",
|
2017-08-15 04:54:34 +00:00
|
|
|
mirrors_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"profiler",
|
2017-08-15 04:54:34 +00:00
|
|
|
profiler_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
2017-01-03 09:39:14 +00:00
|
|
|
[
|
|
|
|
"typed_data",
|
2017-08-15 04:54:34 +00:00
|
|
|
typed_data_runtime_sources,
|
2017-01-03 09:39:14 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
2016-12-13 21:02:52 +00:00
|
|
|
[
|
|
|
|
"vmservice",
|
2017-08-15 04:54:34 +00:00
|
|
|
vmservice_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../lib",
|
|
|
|
],
|
|
|
|
[
|
|
|
|
"io",
|
2017-08-15 04:54:34 +00:00
|
|
|
io_runtime_sources,
|
2016-12-13 21:02:52 +00:00
|
|
|
"../bin",
|
|
|
|
],
|
|
|
|
]
|
|
|
|
}
|
2017-10-06 15:34:37 +00:00
|
|
|
|
|
|
|
action("compile_platform") {
|
|
|
|
script = "../../tools/compile_platform.py"
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"$root_out_dir/patched_sdk/lib/libraries.json",
|
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$root_out_dir/vm_platform.dill",
|
|
|
|
"$root_out_dir/vm_outline.dill",
|
|
|
|
]
|
|
|
|
|
|
|
|
inputs = []
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":patched_sdk",
|
|
|
|
]
|
|
|
|
|
|
|
|
depfile = "$root_out_dir/vm_platform.dill.d"
|
|
|
|
|
|
|
|
args = [ "dart:core" ] + rebase_path(sources, root_build_dir) +
|
|
|
|
rebase_path(outputs, root_build_dir)
|
|
|
|
}
|
|
|
|
|
|
|
|
action("compile_vmservice") {
|
|
|
|
script = "../../tools/compile_platform.py"
|
|
|
|
|
|
|
|
sources = [
|
|
|
|
"../../sdk/lib/vmservice_libraries.json",
|
|
|
|
]
|
|
|
|
|
|
|
|
outputs = [
|
|
|
|
"$root_out_dir/vmservice_io.dill",
|
|
|
|
"$root_out_dir/vmservice_io_outline.dill",
|
|
|
|
]
|
|
|
|
|
|
|
|
inputs = [
|
|
|
|
"$root_out_dir/vm_platform.dill",
|
|
|
|
]
|
|
|
|
|
|
|
|
deps = [
|
|
|
|
":compile_platform",
|
|
|
|
]
|
|
|
|
|
|
|
|
depfile = "$root_out_dir/vmservice_io.dill.d"
|
|
|
|
|
|
|
|
args = [
|
|
|
|
"--platform=" +
|
|
|
|
rebase_path("$root_out_dir/vm_platform.dill", root_build_dir),
|
|
|
|
"dart:vmservice_io",
|
|
|
|
] + rebase_path(sources, root_build_dir) +
|
|
|
|
rebase_path(outputs, root_build_dir)
|
|
|
|
}
|
|
|
|
|
|
|
|
group("kernel_platform_files") {
|
|
|
|
public_deps = [
|
|
|
|
":compile_platform",
|
|
|
|
":compile_vmservice",
|
|
|
|
]
|
|
|
|
}
|