# Copyright (c) 2016, 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/config/gclient_args.gni") import("sdk_args.gni") targeting_fuchsia = target_os == "fuchsia" # This target will be built if no target is specified when invoking ninja. group("default") { if (targeting_fuchsia) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ ":runtime" ] } group("most") { import("runtime/runtime_args.gni") if (targeting_fuchsia) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ ":analysis_server", ":create_sdk", ":dart2js", ":dartanalyzer", ":dartdevc", ":runtime", ] } group("runtime") { import("runtime/runtime_args.gni") if (targeting_fuchsia) { # Fuchsia has run_vm_tests marked testonly. testonly = true } deps = [ "runtime/bin:dart", "runtime/bin:entrypoints_verification_test", "runtime/bin:ffi_test_dynamic_library", "runtime/bin:ffi_test_functions", "runtime/bin:process_test", "runtime/bin:run_vm_tests", "runtime/vm:kernel_platform_files($host_toolchain)", "utils/kernel-service:kernel-service", ] # TODO(bkonyi): this dep causes a segfault on Android XARM_X64 builds. # See issue #41776. if (dart_target_arch != "arm") { deps += [ "utils/dartdev:dartdev", "utils/dds:dds", ] } # This flag is set in runtime/runtime_args.gni # The analyze_snapshot tool is only supported on 64 bit AOT builds running # under linux and android platforms if (build_analyze_snapshot) { deps += [ # The `analyze_snapshot` tests require the `analyze_snapshot` as well as # `gen_snapshot` binaries. "runtime/bin:analyze_snapshot", "runtime/bin:analyze_snapshot($host_toolchain)", "runtime/bin:gen_snapshot", "runtime/bin:gen_snapshot($host_toolchain)", ] } if (is_linux || is_android) { deps += [ "runtime/bin:abstract_socket_test" ] } } # A separate target and not included in group("runtime"). This way the target\ # "runtime" does not get many executables extra as build output. group("run_ffi_unit_tests") { deps = [ "runtime/bin/ffi_unit_test:run_ffi_unit_tests" ] } group("runtime_precompiled") { deps = [ "runtime/bin:dart_precompiled_runtime", "runtime/bin:process_test", ] if (is_linux || is_android) { deps += [ "runtime/bin:abstract_socket_test" ] } } group("create_sdk") { public_deps = [ "sdk:create_sdk" ] } group("create_platform_sdk") { public_deps = [ "sdk:create_platform_sdk" ] } group("dart2js") { deps = [ "utils/compiler:dart2js" ] } group("dart2wasm_platform") { deps = [ ":runtime_precompiled", "utils/dart2wasm:compile_dart2wasm_platform", "utils/dart2wasm:compile_dart2wasm_stringref_platform", "utils/dart2wasm:dart2wasm_snapshot", ] if (defined(is_product)) { if (is_product) { deps += [ "utils/dart2wasm:dart2wasm_product_snapshot" ] } else { deps += [ "utils/dart2wasm:dart2wasm_asserts_snapshot" ] } } } group("dart2wasm") { deps = [ ":dart2wasm_platform", "utils/dart2wasm:test_wasm_modules", ] } group("dart2wasm_benchmark") { deps = [ ":dart2wasm_platform", "third_party/binaryen:wasm-opt", ] } group("dartanalyzer") { deps = [ "utils/dartanalyzer" ] } group("dartdevc") { deps = [ "utils/dartdevc" ] } group("analysis_server") { deps = [ "utils/analysis_server" ] } # This is the target that is built on the dart2js build bots. # It must depend on anything that is required by the dart2js # test suites. group("dart2js_bot") { deps = [ ":create_sdk" ] } # This rule and the compressed_observatory_archive rule are for the Fuchsia # bots that pre-build the Observatory. They copy the observatory tar files to # the root build output directory for convenient access by the Fuchsia buildbot # scripts. group("observatory_archive") { deps = [ "runtime/observatory:copy_observatory_archive" ] } group("compressed_observatory_archive") { deps = [ "runtime/observatory:copy_compressed_observatory_archive" ] } if (is_fuchsia) { import("third_party/fuchsia/sdk/${host_os}/build/component.gni") import("third_party/fuchsia/sdk/${host_os}/build/package.gni") template("dart_fuchsia_test_package") { fuchsia_package(target_name) { package_name = invoker.package_name if (is_debug) { package_name += "_debug" } else if (is_release) { package_name += "_release" } else if (is_product) { package_name += "_product" } testonly = true deps = invoker.deps } } template("dart_fuchsia_test_component") { fuchsia_component(target_name) { testonly = true data_deps = [ "runtime/bin:dart" ] if (defined(invoker.data_deps)) { data_deps += invoker.data_deps } manifest = invoker.manifest library_files = [] if (defined(invoker.library_files)) { library_files += invoker.library_files } resource_files = [ ".dart_tool/package_config.json", "pkg/testing/test/hello_test.dart", "tools/addlatexhash.dart", ] resource_dirs = invoker.resource_dirs resources = [] foreach(file, library_files) { resources += [ { path = root_out_dir + "/" + file dest = "lib/" + file }, ] } foreach(file, resource_files) { resources += [ { path = file dest = "data/" + file }, ] } resources += exec_script("tools/fuchsia/find_resources.py", resource_dirs, "json") } } dart_fuchsia_test_component("fuchsia_test_component") { manifest = "build/fuchsia/fuchsia_test_component.cmx" resource_dirs = [ "tests/standalone_2", "pkg/async_helper", "pkg/expect", "pkg/meta", "pkg/native_stack_traces", "pkg/smith", "third_party/pkg/args", "third_party/pkg/async", "third_party/pkg/collection", "third_party/pkg/convert", "third_party/pkg/crypto", "third_party/pkg/http", "third_party/pkg/http_parser", "third_party/pkg/path", "third_party/pkg/pool", "third_party/pkg/stack_trace", "third_party/pkg/string_scanner", "third_party/pkg/typed_data", ] } dart_fuchsia_test_package("fuchsia_test_package") { package_name = "dart_test" deps = [ ":fuchsia_test_component" ] } dart_fuchsia_test_component("fuchsia_ffi_test_component") { manifest = "build/fuchsia/fuchsia_ffi_test_component.cmx" data_deps = [ "runtime/bin:ffi_test_dynamic_library", "runtime/bin:ffi_test_functions", ] library_files = [ "libffi_test_dynamic_library.so", "libffi_test_functions.so", ] resource_dirs = [ "pkg/expect", "pkg/meta", "tests/ffi", "third_party/pkg/ffi", ] } dart_fuchsia_test_package("fuchsia_ffi_test_package") { package_name = "dart_ffi_test" deps = [ ":fuchsia_ffi_test_component" ] } }