mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 05:41:37 +00:00
e40a443bbf
BUG= R=zra@google.com Review URL: https://codereview.chromium.org/1744573002 .
224 lines
6.7 KiB
Plaintext
224 lines
6.7 KiB
Plaintext
# 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.
|
|
|
|
config("libdart_vm_config") {
|
|
libs = [
|
|
"dl",
|
|
]
|
|
|
|
if (!is_android) {
|
|
libs += [ "pthread" ]
|
|
|
|
if (is_linux) {
|
|
libs += [ "rt" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
static_library("libdart_platform") {
|
|
configs += ["..:dart_config"]
|
|
public_configs = [":libdart_vm_config"]
|
|
|
|
platform_headers_gypi =
|
|
exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("../platform/platform_headers.gypi")],
|
|
"scope",
|
|
["../platform/platform_headers.gypi"])
|
|
platform_headers =
|
|
rebase_path(platform_headers_gypi.sources, ".", "../platform")
|
|
|
|
platform_sources_gypi =
|
|
exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("../platform/platform_sources.gypi")],
|
|
"scope",
|
|
["../platform/platform_sources.gypi"])
|
|
platform_sources =
|
|
rebase_path(platform_sources_gypi.sources, ".", "../platform")
|
|
|
|
sources = platform_headers + platform_sources
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
|
|
|
|
static_library("libdart_vm") {
|
|
configs += ["..:dart_config"]
|
|
public_configs = [":libdart_vm_config"]
|
|
|
|
vm_sources_list = exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("vm_sources.gypi")],
|
|
"scope",
|
|
["vm_sources.gypi"])
|
|
|
|
set_sources_assignment_filter(["*_test.cc", "*_test.h"])
|
|
sources = vm_sources_list.sources
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
|
|
|
|
static_library("libdart_vm_precompiled_runtime") {
|
|
configs += ["..:dart_config_no_precompiler"]
|
|
public_configs = [":libdart_vm_config"]
|
|
defines = ["DART_PRECOMPILED_RUNTIME"]
|
|
vm_sources_list = exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("vm_sources.gypi")],
|
|
"scope",
|
|
["vm_sources.gypi"])
|
|
|
|
set_sources_assignment_filter(["*_test.cc", "*_test.h"])
|
|
sources = vm_sources_list.sources
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
|
|
|
|
static_library("libdart_vm_nosnapshot") {
|
|
configs += ["..:dart_config"]
|
|
public_configs = [":libdart_vm_config"]
|
|
defines = [ "DART_NO_SNAPSHOT" ]
|
|
vm_sources_list = exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("vm_sources.gypi")],
|
|
"scope",
|
|
["vm_sources.gypi"])
|
|
|
|
set_sources_assignment_filter(["*_test.cc", "*_test.h"])
|
|
sources = vm_sources_list.sources
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
|
|
|
|
template("generate_library_source") {
|
|
assert(defined(invoker.libname), "Need libname in $target_name")
|
|
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")
|
|
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"
|
|
}
|
|
|
|
lib_sources_gypi =
|
|
exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("${path}/${filename}_sources.gypi")],
|
|
"scope",
|
|
["${path}/${filename}_sources.gypi"])
|
|
lib_sources =
|
|
rebase_path(lib_sources_gypi.sources, ".", path)
|
|
|
|
script = "../tools/gen_library_src_paths.py"
|
|
inputs = [
|
|
"../tools/gen_library_src_paths.py",
|
|
"../lib/libgen_in.cc",
|
|
]
|
|
outputs = [ invoker.output, ]
|
|
args = [
|
|
"--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}",] +
|
|
rebase_path(lib_sources, root_build_dir)
|
|
}
|
|
}
|
|
|
|
|
|
# This templates expects invoker.sources to be a list of pairs of strings.
|
|
# The pairs of strings mean the following.
|
|
# library name, file name
|
|
# e.g. for the "internal" library named "dart:_internal",
|
|
# with sources listed at sdk/lib/internal/internal_sources.gypi and
|
|
# lib/internal_sources.gypi, we have: ["_internal", "internal"]
|
|
#
|
|
# The template iterates over the list, and generates generate_library_source
|
|
# actions for each. After that, it generates targets to compile the generated
|
|
# sources to make libdart_lib_nosnapshot and libdart_lib.
|
|
template("generate_core_libraries") {
|
|
assert(defined(invoker.sources), "Need sources in $target_name")
|
|
liboutputs = []
|
|
libsources = []
|
|
libdeps = []
|
|
foreach(lib, invoker.sources) {
|
|
libname = lib[0]
|
|
filename = lib[1]
|
|
generate_library_source("generate_${filename}_cc_file") {
|
|
libname = libname
|
|
filename = filename
|
|
kind = "source"
|
|
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"
|
|
}
|
|
lib_sources_gypi =
|
|
exec_script("../../tools/gypi_to_gn.py",
|
|
[rebase_path("../lib/${filename}_sources.gypi")],
|
|
"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"]
|
|
}
|
|
|
|
static_library("libdart_lib_nosnapshot") {
|
|
configs += ["..:dart_config"]
|
|
deps = libdeps
|
|
sources = libsources + ["bootstrap.cc"] + liboutputs
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
static_library("libdart_lib") {
|
|
configs += ["..:dart_config"]
|
|
sources = libsources + [ "bootstrap_nocore.cc", ]
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
static_library("libdart_lib_precompiled_runtime") {
|
|
configs += ["..:dart_config_no_precompiler"]
|
|
defines = ["DART_PRECOMPILED_RUNTIME"]
|
|
sources = libsources + [ "bootstrap_nocore.cc", ]
|
|
include_dirs = [
|
|
"..",
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
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"],
|
|
]
|
|
}
|