blob: 6b9f82fa935d245c08afecd2f492803fdd56caf9 [file] [log] [blame]
# 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.
import("../../build/executable_suffix.gni")
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/ffi/ffi_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")
import("../../utils/compile_platform.gni")
import("../bin/cli_sources.gni")
import("../bin/io_sources.gni")
import("../configs.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/ffi_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")
import("../runtime_args.gni")
import("compiler/compiler_sources.gni")
import("heap/heap_sources.gni")
import("vm_sources.gni")
if (is_fuchsia) {
import("//build/fuchsia/sdk.gni")
}
config("libdart_vm_config") {
if (is_fuchsia) {
libs = [ "zircon" ]
} else if (is_win) {
libs = [
"advapi32.lib",
"shell32.lib",
"dbghelp.lib",
]
} else {
libs = [ "dl" ]
if (!is_android) {
libs += [ "pthread" ]
}
if (is_linux) {
libs += [ "rt" ]
}
}
}
library_for_all_configs("libdart_vm") {
target_type = "source_set"
extra_deps = [ "//third_party/icu" ]
if (is_fuchsia) {
if (using_fuchsia_sdk) {
extra_deps += [ "$fuchsia_sdk_root/pkg/lib/sys/cpp" ]
} else {
extra_deps += [
# TODO(US-399): Remove time_service specific code when it is no longer
# necessary.
"//sdk/lib/sys/cpp",
"//sdk/fidl/fuchsia.timezone",
"//zircon/public/lib/fbl",
"//zircon/public/lib/trace-engine",
]
}
}
public_configs = [ ":libdart_vm_config" ]
set_sources_assignment_filter([
"*_test.cc",
"*_test.h",
])
sources = vm_sources + rebase_path(compiler_sources, ".", "./compiler/") +
rebase_path(heap_sources, ".", "./heap/")
include_dirs = [ ".." ]
}
library_for_all_configs("libdart_lib") {
target_type = "source_set"
if (is_fuchsia) {
if (!using_fuchsia_sdk) {
extra_deps = [
"//zircon/public/lib/fbl",
"//zircon/public/lib/trace-engine",
]
}
}
include_dirs = [ ".." ]
allsources = async_runtime_cc_files + collection_runtime_cc_files +
core_runtime_cc_files + developer_runtime_cc_files +
internal_runtime_cc_files + isolate_runtime_cc_files +
math_runtime_cc_files + mirrors_runtime_cc_files +
typed_data_runtime_cc_files + vmservice_runtime_cc_files +
ffi_runtime_cc_files
sources = [ "bootstrap.cc" ] + rebase_path(allsources, ".", "../lib")
snapshot_sources = []
nosnapshot_sources = []
}
template("gen_vm_platform") {
assert(defined(invoker.output_postfix),
"Must define output postfix (e.g., '_strong'")
compile_platform(target_name) {
output_postfix = invoker.output_postfix
if (defined(invoker.add_implicit_vm_platform_dependency)) {
add_implicit_vm_platform_dependency =
invoker.add_implicit_vm_platform_dependency
}
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("../../")
libraries_specification_uri = "org-dartlang-sdk:///sdk/lib/libraries.json"
outputs = [
"$root_out_dir/vm_platform" + output_postfix + ".dill",
"$root_out_dir/vm_outline" + output_postfix + ".dill",
]
args = [ "dart:core" ]
is_product_flag = dart_runtime_mode == "release"
allow_causal_async_stacks = !is_product_flag
args += [
"-Ddart.vm.product=$is_product_flag",
"-Ddart.developer.causal_async_stacks=$allow_causal_async_stacks",
"-Ddart.isVM=true",
]
if (defined(invoker.exclude_source) && invoker.exclude_source) {
args += [ "--exclude-source" ]
}
if (defined(invoker.legacy) && invoker.legacy) {
args += [ "--legacy-mode" ]
outline = "vm_outline_strong.dill"
} else {
outline = "vm_outline" + output_postfix + ".dill"
}
if (dart_platform_bytecode) {
args += [ "--bytecode" ]
}
}
}
gen_vm_platform("vm_legacy_platform") {
exclude_source = false
legacy = true
output_postfix = ""
}
gen_vm_platform("vm_platform") {
add_implicit_vm_platform_dependency = false
exclude_source = false
output_postfix = "_strong"
}
gen_vm_platform("vm_platform_stripped") {
add_implicit_vm_platform_dependency = false
exclude_source = true
output_postfix = "_strong_stripped"
}
group("kernel_platform_files") {
public_deps = [
":vm_legacy_platform",
":vm_platform",
":vm_platform_stripped",
]
}
executable("offsets_extractor") {
configs += [
"..:dart_arch_config",
"..:dart_config",
":libdart_vm_config",
]
sources = [
"compiler/offsets_extractor.cc",
]
include_dirs = [ ".." ]
}