| # 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") |
| |
| 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" |
| if (is_fuchsia) { |
| 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) { |
| extra_deps = [ |
| "//zircon/public/lib/fbl", |
| "//zircon/public/lib/trace-engine", |
| ] |
| } |
| include_dirs = [ ".." ] |
| 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 + ffi_runtime_sources |
| 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", |
| ] |
| } |