| # 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/typed_data/typed_data_sources.gni") |
| import("../../sdk/lib/vmservice/vmservice_sources.gni") |
| import("../../sdk/lib/wasm/wasm_sources.gni") |
| import("../../sdk_args.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("../lib/wasm_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" ] |
| } |
| } |
| } |
| |
| library_for_all_configs("libdart_vm") { |
| target_type = "source_set" |
| extra_product_deps = [ |
| "//third_party/icu:icui18n_hidden_visibility", |
| "//third_party/icu:icuuc_hidden_visibility", |
| ] |
| extra_nonproduct_deps = [ |
| "//third_party/icu:icui18n", |
| "//third_party/icu:icuuc", |
| ] |
| if (is_fuchsia) { |
| if (using_fuchsia_gn_sdk) { |
| extra_deps = [ |
| "$fuchsia_sdk_root/fidl/fuchsia.deprecatedtimezone", |
| "$fuchsia_sdk_root/pkg/async", |
| "$fuchsia_sdk_root/pkg/async-default", |
| "$fuchsia_sdk_root/pkg/async-loop", |
| "$fuchsia_sdk_root/pkg/async-loop-default", |
| "$fuchsia_sdk_root/pkg/inspect", |
| "$fuchsia_sdk_root/pkg/inspect_service_cpp", |
| "$fuchsia_sdk_root/pkg/sys_cpp", |
| "$fuchsia_sdk_root/pkg/sys_inspect_cpp", |
| "$fuchsia_sdk_root/pkg/trace-engine", |
| ] |
| } else if (using_fuchsia_sdk) { |
| extra_deps = [ |
| "$fuchsia_sdk_root/fidl:fuchsia.deprecatedtimezone", |
| "$fuchsia_sdk_root/pkg:async-loop", |
| "$fuchsia_sdk_root/pkg:async-loop-default", |
| "$fuchsia_sdk_root/pkg:inspect", |
| "$fuchsia_sdk_root/pkg:inspect_service_cpp", |
| "$fuchsia_sdk_root/pkg:sys_cpp", |
| "$fuchsia_sdk_root/pkg:sys_inspect_cpp", |
| "$fuchsia_sdk_root/pkg:trace-engine", |
| ] |
| } else { |
| extra_deps = [ |
| # TODO(US-399): Remove time_service specific code when it is no longer |
| # necessary. |
| "//sdk/fidl/fuchsia.deprecatedtimezone", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/sys/inspect/cpp", |
| "//zircon/public/lib/fbl", |
| "//zircon/system/ulib/trace-engine", |
| ] |
| } |
| } |
| public_configs = [ ":libdart_vm_config" ] |
| set_sources_assignment_filter([ |
| "*_test.cc", |
| "*_test.h", |
| ]) |
| sources = vm_sources + rebase_path(compiler_api_sources, ".", "./compiler/") + |
| rebase_path(disassembler_sources, ".", "./compiler/") + |
| rebase_path(heap_sources, ".", "./heap/") |
| include_dirs = [ ".." ] |
| } |
| |
| library_for_all_configs_with_compiler("libdart_compiler") { |
| target_type = "source_set" |
| public_configs = [ ":libdart_vm_config" ] |
| set_sources_assignment_filter([ |
| "*_test.cc", |
| "*_test.h", |
| ]) |
| sources = rebase_path(compiler_sources, ".", "./compiler/") |
| include_dirs = [ ".." ] |
| if (is_fuchsia) { |
| if (using_fuchsia_gn_sdk) { |
| extra_deps = [ "$fuchsia_sdk_root/pkg/trace-engine" ] |
| } else if (using_fuchsia_sdk) { |
| extra_deps = [ "$fuchsia_sdk_root/pkg:trace-engine" ] |
| } else { |
| extra_deps = [ |
| "//zircon/public/lib/fbl", |
| "//zircon/system/ulib/trace-engine", |
| ] |
| } |
| } |
| } |
| |
| library_for_all_configs("libdart_lib") { |
| target_type = "source_set" |
| if (is_fuchsia) { |
| if (using_fuchsia_gn_sdk) { |
| extra_deps = [ "$fuchsia_sdk_root/pkg/trace-engine" ] |
| } else if (using_fuchsia_sdk) { |
| extra_deps = [ "$fuchsia_sdk_root/pkg:trace-engine" ] |
| } else { |
| extra_deps = [ |
| "//zircon/public/lib/fbl", |
| "//zircon/system/ulib/trace-engine", |
| ] |
| } |
| } |
| if (dart_enable_wasm) { |
| defines = [ "DART_ENABLE_WASM" ] |
| } |
| 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 + wasm_runtime_cc_files |
| sources = [ "bootstrap.cc" ] + rebase_path(allsources, ".", "../lib") |
| snapshot_sources = [] |
| } |
| |
| template("gen_vm_platform") { |
| assert(defined(invoker.output_postfix), |
| "Must define output postfix (e.g., '_strong'") |
| is_product_flag = dart_runtime_mode == "release" |
| if (defined(invoker.product_mode)) { |
| is_product_flag = invoker.product_mode |
| } |
| 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" ] |
| 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", |
| "--enable-experiment=non-nullable", |
| "--nnbd-agnostic", |
| ] |
| if (defined(invoker.exclude_source) && invoker.exclude_source) { |
| args += [ "--exclude-source" ] |
| } |
| if (defined(invoker.bytecode) && invoker.bytecode) { |
| args += [ "--bytecode" ] |
| } |
| outline = "vm_outline" + output_postfix + ".dill" |
| } |
| } |
| |
| gen_vm_platform("vm_platform") { |
| add_implicit_vm_platform_dependency = false |
| exclude_source = false |
| output_postfix = "_strong" |
| } |
| |
| gen_vm_platform("vm_platform_product") { |
| add_implicit_vm_platform_dependency = false |
| exclude_source = false |
| output_postfix = "_strong_product" |
| |
| # In Debug mode we use debug binaries for dart2native. |
| # (see also the "dart_product_config" config) |
| product_mode = !is_debug |
| } |
| |
| gen_vm_platform("vm_platform_stripped") { |
| add_implicit_vm_platform_dependency = false |
| exclude_source = true |
| output_postfix = "_strong_stripped" |
| |
| if (dart_platform_bytecode) { |
| bytecode = true |
| } |
| } |
| |
| group("kernel_platform_files") { |
| public_deps = [ |
| ":vm_platform", |
| ":vm_platform_stripped", |
| ] |
| } |
| |
| executable("offsets_extractor") { |
| configs += [ |
| "..:dart_arch_config", |
| "..:dart_config", |
| "..:dart_maybe_product_config", |
| ":libdart_vm_config", |
| ] |
| sources = [ "compiler/offsets_extractor.cc" ] |
| include_dirs = [ ".." ] |
| } |
| |
| executable("offsets_extractor_precompiled_runtime") { |
| configs += [ |
| "..:dart_arch_config", |
| "..:dart_config", |
| "..:dart_precompiled_runtime_config", |
| "..:dart_maybe_product_config", |
| ":libdart_vm_config", |
| ] |
| sources = [ "compiler/offsets_extractor.cc" ] |
| include_dirs = [ ".." ] |
| } |