| Index: runtime/vm/BUILD.gn
|
| ===================================================================
|
| --- runtime/vm/BUILD.gn (revision 0)
|
| +++ runtime/vm/BUILD.gn (revision 0)
|
| @@ -0,0 +1,201 @@
|
| +# 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 = [
|
| + "pthread",
|
| + "rt",
|
| + "dl",
|
| + ]
|
| +}
|
| +
|
| +
|
| +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"]
|
| + deps = [ ":generate_service_cc_file", ]
|
| +
|
| + 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
|
| + + ["$target_gen_dir/service_gen.cc",]
|
| + - ["vtune.cc", "vtune.h"]
|
| + 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_withcore 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_withcore") {
|
| + 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 = [
|
| + "..",
|
| + ]
|
| + }
|
| +}
|
| +
|
| +
|
| +generate_core_libraries("core_libraries") {
|
| + sources = [
|
| + ["async", "async"],
|
| + ["core", "core"],
|
| + ["collection", "collection"],
|
| + ["convert", "convert"],
|
| + ["_internal", "internal"],
|
| + ["isolate", "isolate"],
|
| + ["math", "math"],
|
| + ["mirrors", "mirrors"],
|
| + ["typed_data", "typed_data"],
|
| + ["profiler", "profiler"],
|
| + ]
|
| +}
|
| +
|
| +
|
| +action("generate_service_cc_file") {
|
| + visibility = [ ":*" ] # Only targets in this file can see this.
|
| + script = "../tools/create_resources.py"
|
| + sources = [
|
| + "service/client.dart",
|
| + "service/constants.dart",
|
| + "service/message.dart",
|
| + "service/message_router.dart",
|
| + "service/running_isolate.dart",
|
| + "service/running_isolates.dart",
|
| + "service/vmservice.dart",
|
| + ]
|
| +
|
| + output = "$target_gen_dir/service_gen.cc"
|
| + outputs = [ output, ]
|
| +
|
| + args = [
|
| + "--output", rebase_path(output, root_build_dir),
|
| + "--outer_namespace", "dart",
|
| + "--table_name", "service",
|
| + "--root_prefix", rebase_path("service/", root_build_dir)] +
|
| + rebase_path(sources, root_build_dir)
|
| +}
|
|
|