| Index: runtime/vm/BUILD.gn
|
| diff --git a/runtime/vm/BUILD.gn b/runtime/vm/BUILD.gn
|
| index 684b4480ceb7aa8a159b2df548cf54fbd9559fcb..285b0d52334eb964eeaa4b0836fdc82ec2c7efea 100644
|
| --- a/runtime/vm/BUILD.gn
|
| +++ b/runtime/vm/BUILD.gn
|
| @@ -4,7 +4,6 @@
|
|
|
| import("../../build/executable_suffix.gni")
|
| import("../../build/prebuilt_dart_sdk.gni")
|
| -import("gypi_contents.gni")
|
|
|
| config("libdart_vm_config") {
|
| if (defined(is_fuchsia) && is_fuchsia) {
|
| @@ -33,12 +32,30 @@ static_library("libdart_platform") {
|
| ]
|
| public_configs = [ ":libdart_vm_config" ]
|
|
|
| - sources = rebase_path(processed_gypis.platform_sources, ".", "../platform")
|
| -
|
| + 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 = [ ".." ]
|
| }
|
|
|
| -vm_sources_list = processed_gypis.vm_sources
|
| +vm_sources_list = exec_script("../../tools/gypi_to_gn.py",
|
| + [ rebase_path("vm_sources.gypi") ],
|
| + "scope",
|
| + [ "vm_sources.gypi" ])
|
|
|
| static_library("libdart_vm") {
|
| configs += [
|
| @@ -51,7 +68,7 @@ static_library("libdart_vm") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| @@ -67,7 +84,7 @@ static_library("libdart_vm_noopt") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| @@ -82,7 +99,7 @@ static_library("libdart_vm_precompiled_runtime") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| @@ -98,7 +115,7 @@ static_library("libdart_vm_nosnapshot") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| @@ -114,7 +131,7 @@ static_library("libdart_vm_nosnapshot_precompiled_runtime") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| @@ -130,41 +147,53 @@ static_library("libdart_vm_nosnapshot_with_precompiler") {
|
| "*_test.cc",
|
| "*_test.h",
|
| ])
|
| - sources = vm_sources_list
|
| + sources = vm_sources_list.sources
|
| include_dirs = [ ".." ]
|
| }
|
|
|
| template("process_library_source") {
|
| - assert(defined(invoker.libsources), "Need libsources in $target_name")
|
| + assert(defined(invoker.filename), "Need filename in $target_name")
|
| assert(defined(invoker.output), "Need output in $target_name")
|
| + assert(defined(invoker.path), "Need path in $target_name")
|
| action(target_name) {
|
| visibility = [ ":*" ] # Only targets in this file can see this.
|
| - libsources = invoker.libsources
|
| + filename = invoker.filename
|
| + path = invoker.path
|
| +
|
| + 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 = invoker.script
|
| - inputs = invoker.inputs + libsources
|
| + inputs = invoker.inputs + [ script ]
|
| + inputs += lib_sources
|
| outputs = [
|
| invoker.output,
|
| ]
|
| - args = invoker.args + rebase_path(libsources, root_build_dir)
|
| + args = invoker.args + rebase_path(lib_sources, root_build_dir)
|
| }
|
| }
|
|
|
| template("generate_library_source") {
|
| assert(defined(invoker.libname), "Need libname in $target_name")
|
| - assert(defined(invoker.libsources), "Need libsources 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")
|
| + assert(defined(invoker.path), "Need path in $target_name")
|
|
|
| process_library_source(target_name) {
|
| libname = invoker.libname
|
| - libsources = invoker.libsources
|
| + filename = invoker.filename
|
| kind = invoker.kind
|
| + output = invoker.output
|
| + path = invoker.path
|
| script = "../tools/gen_library_src_paths.py"
|
| inputs = [
|
| "../lib/libgen_in.cc",
|
| ]
|
| - output = invoker.output
|
| args = [
|
| "--output",
|
| rebase_path(invoker.output, root_build_dir),
|
| @@ -180,45 +209,51 @@ template("generate_library_source") {
|
| }
|
| }
|
|
|
| -# 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)
|
| +# 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_*.
|
| +# sources to make libdart_lib_nosnapshot and libdart_lib.
|
| template("generate_core_libraries") {
|
| assert(defined(invoker.sources), "Need sources in $target_name")
|
| - assert(defined(invoker.allsources), "Need allsources in $target_name")
|
| liboutputs = []
|
| + libsources = []
|
| libdeps = []
|
| foreach(lib, invoker.sources) {
|
| libname = lib[0]
|
| - filename = lib[3]
|
| - do_patch = lib[4]
|
| + filename = lib[1]
|
| + do_patch = lib[2]
|
| + source_path = lib[3]
|
| generate_library_source("generate_${filename}_cc_file") {
|
| libname = libname
|
| - libsources = rebase_path(lib[1], ".", lib[2])
|
| + filename = filename
|
| kind = "source"
|
| + path = source_path
|
| output = "$target_gen_dir/${filename}_gen.cc"
|
| }
|
| if (do_patch) {
|
| + patch_path = lib[4]
|
| generate_library_source("generate_${filename}_patch_cc_file") {
|
| libname = libname
|
| - libsources = rebase_path(lib[5], ".", lib[6])
|
| + filename = filename
|
| kind = "patch"
|
| + path = patch_path
|
| output = "$target_gen_dir/${filename}_patch_gen.cc"
|
| }
|
| }
|
| -
|
| + lib_sources_gypi = {
|
| + }
|
| + 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" ]
|
| libdeps += [ ":generate_${filename}_cc_file" ]
|
| if (do_patch) {
|
| @@ -227,8 +262,6 @@ template("generate_core_libraries") {
|
| }
|
| }
|
|
|
| - all_libsources = rebase_path(invoker.allsources, ".", "../lib")
|
| -
|
| static_library("libdart_lib_nosnapshot") {
|
| configs += [
|
| "..:dart_config",
|
| @@ -236,7 +269,7 @@ template("generate_core_libraries") {
|
| "..:dart_maybe_precompiled_runtime_config",
|
| ]
|
| deps = libdeps
|
| - sources = all_libsources + [ "bootstrap.cc" ] + liboutputs
|
| + sources = libsources + [ "bootstrap.cc" ] + liboutputs
|
| include_dirs = [ ".." ]
|
| }
|
| static_library("libdart_lib_nosnapshot_precompiled_runtime") {
|
| @@ -246,7 +279,7 @@ template("generate_core_libraries") {
|
| "..:dart_precompiled_runtime_config",
|
| ]
|
| deps = libdeps
|
| - sources = all_libsources + [ "bootstrap.cc" ] + liboutputs
|
| + sources = libsources + [ "bootstrap.cc" ] + liboutputs
|
| include_dirs = [ ".." ]
|
| }
|
| static_library("libdart_lib_nosnapshot_with_precompiler") {
|
| @@ -256,7 +289,7 @@ template("generate_core_libraries") {
|
| "..:dart_precompiler_config",
|
| ]
|
| deps = libdeps
|
| - sources = all_libsources + [ "bootstrap.cc" ] + liboutputs
|
| + sources = libsources + [ "bootstrap.cc" ] + liboutputs
|
| include_dirs = [ ".." ]
|
| }
|
| static_library("libdart_lib") {
|
| @@ -265,7 +298,7 @@ template("generate_core_libraries") {
|
| "..:dart_maybe_product_config",
|
| "..:dart_maybe_precompiled_runtime_config",
|
| ]
|
| - sources = all_libsources + [ "bootstrap_nocore.cc" ]
|
| + sources = libsources + [ "bootstrap_nocore.cc" ]
|
| include_dirs = [ ".." ]
|
| }
|
| static_library("libdart_lib_precompiled_runtime") {
|
| @@ -274,7 +307,7 @@ template("generate_core_libraries") {
|
| "..:dart_maybe_product_config",
|
| "..:dart_precompiled_runtime_config",
|
| ]
|
| - sources = all_libsources + [ "bootstrap_nocore.cc" ]
|
| + sources = libsources + [ "bootstrap_nocore.cc" ]
|
| include_dirs = [ ".." ]
|
| }
|
| }
|
| @@ -283,125 +316,104 @@ generate_core_libraries("core_libraries") {
|
| sources = [
|
| [
|
| "async",
|
| - processed_gypis.async_sdk_sources,
|
| - "../../sdk/lib/async",
|
| "async",
|
| true,
|
| - processed_gypis.async_runtime_sources,
|
| + "../../sdk/lib/async",
|
| "../lib",
|
| ],
|
| [
|
| "core",
|
| - processed_gypis.core_sdk_sources,
|
| - "../../sdk/lib/core",
|
| "core",
|
| true,
|
| - processed_gypis.core_runtime_sources,
|
| + "../../sdk/lib/core",
|
| "../lib",
|
| ],
|
| [
|
| "collection",
|
| - processed_gypis.collection_sdk_sources,
|
| - "../../sdk/lib/collection",
|
| "collection",
|
| true,
|
| - processed_gypis.collection_runtime_sources,
|
| + "../../sdk/lib/collection",
|
| "../lib",
|
| ],
|
| [
|
| "convert",
|
| - processed_gypis.convert_sdk_sources,
|
| - "../../sdk/lib/convert",
|
| "convert",
|
| true,
|
| - processed_gypis.convert_runtime_sources,
|
| + "../../sdk/lib/convert",
|
| "../lib",
|
| ],
|
| [
|
| "developer",
|
| - processed_gypis.developer_sdk_sources,
|
| - "../../sdk/lib/developer",
|
| "developer",
|
| true,
|
| - processed_gypis.developer_runtime_sources,
|
| + "../../sdk/lib/developer",
|
| "../lib",
|
| ],
|
| [
|
| "_internal",
|
| - processed_gypis.internal_sdk_sources,
|
| - "../../sdk/lib/internal",
|
| "internal",
|
| true,
|
| - processed_gypis.internal_runtime_sources,
|
| + "../../sdk/lib/internal",
|
| "../lib",
|
| ],
|
| [
|
| "isolate",
|
| - processed_gypis.isolate_sdk_sources,
|
| - "../../sdk/lib/isolate",
|
| "isolate",
|
| true,
|
| - processed_gypis.isolate_runtime_sources,
|
| + "../../sdk/lib/isolate",
|
| "../lib",
|
| ],
|
| [
|
| "math",
|
| - processed_gypis.math_sdk_sources,
|
| - "../../sdk/lib/math",
|
| "math",
|
| true,
|
| - processed_gypis.math_runtime_sources,
|
| + "../../sdk/lib/math",
|
| "../lib",
|
| ],
|
| [
|
| "mirrors",
|
| - processed_gypis.mirrors_sdk_sources,
|
| - "../../sdk/lib/mirrors",
|
| "mirrors",
|
| true,
|
| - processed_gypis.mirrors_runtime_sources,
|
| + "../../sdk/lib/mirrors",
|
| "../lib",
|
| ],
|
| [
|
| "profiler",
|
| - processed_gypis.profiler_sdk_sources,
|
| - "../../sdk/lib/profiler",
|
| "profiler",
|
| false,
|
| + "../../sdk/lib/profiler",
|
| ],
|
| [
|
| "typed_data",
|
| - processed_gypis.typed_data_runtime_sources,
|
| - "../lib",
|
| "typed_data",
|
| false,
|
| + "../lib",
|
| ],
|
| [
|
| "_vmservice",
|
| - processed_gypis.vmservice_sdk_sources,
|
| - "../../sdk/lib/vmservice",
|
| "vmservice",
|
| true,
|
| - processed_gypis.vmservice_runtime_sources,
|
| + "../../sdk/lib/vmservice",
|
| "../lib",
|
| ],
|
| ]
|
| - allsources = processed_gypis.allsources
|
| }
|
|
|
| template("concatenate_patch") {
|
| - assert(defined(invoker.libsources), "Need a sources in $target_name")
|
| + assert(defined(invoker.libname), "Need a name in $target_name")
|
| + assert(defined(invoker.dir), "Need a dir in $target_name")
|
| assert(defined(invoker.output), "Need an output in $target_name")
|
|
|
| process_library_source(target_name) {
|
| - libsources = invoker.libsources
|
| - inputs = []
|
| output = invoker.output
|
| + path = "../${invoker.dir}"
|
| + filename = invoker.libname
|
| script = "../tools/concatenate_patches.py"
|
| args = [
|
| "--output",
|
| rebase_path(output, root_build_dir),
|
| ]
|
| + inputs = []
|
| }
|
| }
|
|
|
| @@ -414,11 +426,12 @@ if (!defined(is_fuchsia) || !is_fuchsia) {
|
|
|
| # Concatenate vm library patches.
|
| foreach(library, invoker.libraries) {
|
| - name = library[0]
|
| + name = library[1]
|
|
|
| target_output = "$target_gen_dir/patches/${name}_patch.dart"
|
| concatenate_patch("concatenate_${name}_patch") {
|
| - libsources = library[1]
|
| + libname = name
|
| + dir = library[0]
|
| output = target_output
|
| }
|
| concatenation_target_names += [ ":concatenate_${name}_patch" ]
|
| @@ -494,52 +507,52 @@ if (!defined(is_fuchsia) || !is_fuchsia) {
|
| generate_patched_sdk("patched_sdk") {
|
| libraries = [
|
| [
|
| + "lib",
|
| "async",
|
| - processed_gypis.async_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "collection",
|
| - processed_gypis.collection_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "convert",
|
| - processed_gypis.convert_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "core",
|
| - processed_gypis.core_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "developer",
|
| - processed_gypis.developer_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "internal",
|
| - processed_gypis.internal_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "isolate",
|
| - processed_gypis.isolate_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "math",
|
| - processed_gypis.math_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "mirrors",
|
| - processed_gypis.mirrors_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "profiler",
|
| - processed_gypis.profiler_runtime_sources,
|
| ],
|
| [
|
| + "lib",
|
| "vmservice",
|
| - processed_gypis.vmservice_runtime_sources,
|
| ],
|
| [
|
| + "bin",
|
| "io",
|
| - processed_gypis.bin_io_sources,
|
| ],
|
| ]
|
| }
|
|
|