# 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",
    ":ddc",
    ":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: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)",
    "samples/embedder:kernel",
    "samples/ffi/http:fake_http",
    "utils/dartdev:dartdev",
    "utils/kernel-service:kernel-service",
  ]

  # The following dependencies allow dartdev to start the resident frontend
  # server.
  if (dart_target_arch != "ia32" && dart_target_arch != "x86") {
    deps += [ "utils/kernel-service:frontend_server_aot_product" ]
    deps += [ "runtime/bin:dartaotruntime_product" ]
  } else {
    deps += [ "utils/kernel-service:frontend_server" ]
  }

  # AOT samples use dlopen to load AOT snapshots and it works only on
  # 64-bit Linux right now.
  if ((is_linux || is_mac) &&
      (dart_target_arch == "x64" || dart_target_arch == "arm64")) {
    deps += [ "samples/embedder:aot" ]
  }

  if (!is_win) {
    # The test isn't run on windows
    deps += [ "runtime/bin:entrypoints_verification_test" ]
  }

  # 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" ]
  } else if (is_fuchsia) {
    deps += [ ":fuchsia_test_package" ]
  }
}

# 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") {
  import("runtime/runtime_args.gni")
  deps = [
    "runtime/bin:dartaotruntime",
    "runtime/bin:gen_snapshot",
    "runtime/bin:gen_snapshot($host_toolchain)",
    "runtime/bin:process_test",
    "runtime/vm:kernel_platform_files($host_toolchain)",
  ]
  if (is_linux || is_android) {
    deps += [ "runtime/bin:abstract_socket_test" ]
  }
  if (dart_dynamic_modules) {
    deps += [ "utils/dart2bytecode:dart2bytecode_snapshot" ]
    deps += [ "utils/dynamic_module_runner:dynamic_module_runner_snapshot" ]
  }
}

group("create_sdk") {
  public_deps = [ "sdk:create_sdk" ]
}

group("create_platform_sdk") {
  public_deps = [ "sdk:create_platform_sdk" ]
}

group("dart2js") {
  import("runtime/runtime_args.gni")
  if (dart_target_arch != "ia32" && dart_target_arch != "x86") {
    deps = [
      ":runtime_precompiled",
      "utils/compiler:dart2js_sdk_aot",
    ]
  } else {
    deps = [ "utils/compiler:dart2js" ]
  }
}

group("dart2wasm_platform") {
  deps = [
    ":runtime_precompiled",
    "utils/dart2wasm:compile_dart2wasm_js_compatibility_platform",
    "utils/dart2wasm:compile_dart2wasm_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("ddc") {
  import("runtime/runtime_args.gni")
  if (dart_target_arch != "ia32" && dart_target_arch != "x86") {
    deps = [
      ":runtime_precompiled",
      "utils/bazel:kernel_worker_aot",
      "utils/ddc:dartdevc_aot",
    ]
  } else {
    deps = [
      "utils/bazel:kernel_worker",
      "utils/ddc:dartdevc",
    ]
  }
}

group("analysis_server") {
  deps = [ "utils/analysis_server" ]
}

group("tools") {
  deps = [
    "utils:compile_platform.exe",
    "utils:gen_kernel.exe",
  ]
}

# 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",
    "utils/compiler:compile_dart2js_platform_unsound",
  ]
}

# 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/gn-sdk/src/component.gni")
  import("third_party/fuchsia/gn-sdk/src/package.gni")
  import("utils/application_snapshot.gni")

  # tests/ffi/**_test.dart except those with compile-time errors
  test_sources = [
    "tests/ffi/abi_specific_int_incomplete_aot_test.dart",
    "tests/ffi/abi_specific_int_incomplete_jit_test.dart",
    "tests/ffi/abi_specific_int_test.dart",
    "tests/ffi/abi_test.dart",
    "tests/ffi/address_of_array_generated_test.dart",
    "tests/ffi/address_of_cast_test.dart",
    "tests/ffi/address_of_struct_generated_test.dart",
    "tests/ffi/address_of_test.dart",
    "tests/ffi/address_of_typeddata_generated_test.dart",
    "tests/ffi/aliasing_test.dart",
    "tests/ffi/allocator_test.dart",
    "tests/ffi/async_void_function_callbacks_test.dart",
    "tests/ffi/bool_test.dart",
    "tests/ffi/c_types_test.dart",
    "tests/ffi/callback_unwind_error_test.dart",
    "tests/ffi/calloc_test.dart",
    "tests/ffi/data_not_asan_test.dart",
    "tests/ffi/data_test.dart",
    "tests/ffi/deeply_immutable_c_api_finalizer_test.dart",
    "tests/ffi/dl_api_exit_enter_isolate_test.dart",
    "tests/ffi/dylib_close_test.dart",
    "tests/ffi/dylib_isolates_test.dart",
    "tests/ffi/dylib_open_test.dart",
    "tests/ffi/expando_test.dart",
    "tests/ffi/extension_methods_test.dart",
    "tests/ffi/external_typed_data_finalizer_test.dart",
    "tests/ffi/external_typed_data_test.dart",
    "tests/ffi/ffi_callback_unique_test.dart",
    "tests/ffi/ffi_induce_a_crash_test.dart",
    "tests/ffi/ffi_native_test.dart",
    "tests/ffi/finalizer_external_size_accounting_test.dart",
    "tests/ffi/function_callbacks_many_test.dart",
    "tests/ffi/function_callbacks_structs_by_value_generated_test.dart",
    "tests/ffi/function_callbacks_structs_by_value_native_callable_generated_test.dart",
    "tests/ffi/function_callbacks_structs_by_value_test.dart",
    "tests/ffi/function_callbacks_subtype_test.dart",
    "tests/ffi/function_callbacks_test.dart",
    "tests/ffi/function_callbacks_varargs_generated_test.dart",
    "tests/ffi/function_callbacks_varargs_native_callable_generated_test.dart",
    "tests/ffi/function_callbacks_very_many_test.dart",
    "tests/ffi/function_struct_by_value_out_of_bounds_test.dart",
    "tests/ffi/function_structs_by_value_generated_args_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_args_native_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_args_native_test.dart",
    "tests/ffi/function_structs_by_value_generated_args_test.dart",
    "tests/ffi/function_structs_by_value_generated_compounds_sizeof_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_arg_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_arg_native_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_arg_native_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_arg_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_native_leaf_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_native_test.dart",
    "tests/ffi/function_structs_by_value_generated_ret_test.dart",
    "tests/ffi/function_structs_test.dart",
    "tests/ffi/function_test.dart",
    "tests/ffi/function_varargs_generated_leaf_test.dart",
    "tests/ffi/function_varargs_generated_native_leaf_test.dart",
    "tests/ffi/function_varargs_generated_native_test.dart",
    "tests/ffi/function_varargs_generated_test.dart",
    "tests/ffi/function_varargs_name_test.dart",
    "tests/ffi/function_varargs_test.dart",
    "tests/ffi/function_very_many_test.dart",
    "tests/ffi/hardfp_test.dart",
    "tests/ffi/has_symbol_test.dart",
    "tests/ffi/inline_array_multi_dimensional_test.dart",
    "tests/ffi/inline_array_test.dart",
    "tests/ffi/inline_array_variable_length_test.dart",
    "tests/ffi/invoke_callback_after_suspension_test.dart",
    "tests/ffi/isolate_local_function_callbacks_test.dart",
    "tests/ffi/msan_test.dart",
    "tests/ffi/native_assets/asset_absolute_test.dart",
    "tests/ffi/native_assets/asset_executable_test.dart",
    "tests/ffi/native_assets/asset_library_annotation_test.dart",
    "tests/ffi/native_assets/asset_process_test.dart",
    "tests/ffi/native_assets/asset_relative_test.dart",
    "tests/ffi/native_assets/asset_system_test.dart",
    "tests/ffi/native_assets/infer_native_assets_yaml_dart_kernel_snapshot_test.dart",
    "tests/ffi/native_assets/infer_native_assets_yaml_isolate_spawnuri_2_test.dart",
    "tests/ffi/native_assets/infer_native_assets_yaml_isolate_spawnuri_3_test.dart",
    "tests/ffi/native_assets/infer_native_assets_yaml_isolate_spawnuri_test.dart",
    "tests/ffi/native_assets/infer_native_assets_yaml_process_run_test.dart",
    "tests/ffi/native_assets/process_test.dart",
    "tests/ffi/native_callables_async_structs_by_value_generated_test.dart",
    "tests/ffi/native_callables_sync_structs_by_value_generated_test.dart",
    "tests/ffi/native_effect_test.dart",
    "tests/ffi/negative_function_test.dart",
    "tests/ffi/pointer_arithmetic_operators_test.dart",
    "tests/ffi/regress_37254_test.dart",
    "tests/ffi/regress_39044_test.dart",
    "tests/ffi/regress_39063_test.dart",
    "tests/ffi/regress_39885_test.dart",
    "tests/ffi/regress_40537_test.dart",
    "tests/ffi/regress_43016_test.dart",
    "tests/ffi/regress_43693_test.dart",
    "tests/ffi/regress_45189_test.dart",
    "tests/ffi/regress_45198_test.dart",
    "tests/ffi/regress_45507_test.dart",
    "tests/ffi/regress_45988_test.dart",
    "tests/ffi/regress_46004_test.dart",
    "tests/ffi/regress_46127_test.dart",
    "tests/ffi/regress_47594_test.dart",
    "tests/ffi/regress_47673_test.dart",
    "tests/ffi/regress_49402_test.dart",
    "tests/ffi/regress_49684_test.dart",
    "tests/ffi/regress_51315_test.dart",
    "tests/ffi/regress_51321_test.dart",
    "tests/ffi/regress_51504_test.dart",
    "tests/ffi/regress_51538_2_test.dart",
    "tests/ffi/regress_51538_3_test.dart",
    "tests/ffi/regress_51538_test.dart",
    "tests/ffi/regress_52298_test.dart",
    "tests/ffi/regress_52399_test.dart",
    "tests/ffi/regress_56412_2_test.dart",
    "tests/ffi/regress_56412_test.dart",
    "tests/ffi/regress_b_261224444_test.dart",
    "tests/ffi/regress_flutter79441_test.dart",
    "tests/ffi/regress_flutter97301_test.dart",
    "tests/ffi/regress_jump_to_frame_test.dart",
    "tests/ffi/sizeof_test.dart",
    "tests/ffi/snapshot_test.dart",
    "tests/ffi/stacktrace_regress_37910_test.dart",
    "tests/ffi/structs_nested_test.dart",
    "tests/ffi/structs_nnbd_workaround_test.dart",
    "tests/ffi/structs_packed_test.dart",
    "tests/ffi/structs_test.dart",
    "tests/ffi/structs_typed_data_test.dart",
    "tests/ffi/unaligned_test.dart",
    "tests/ffi/variance_function_test.dart",
    "tests/ffi/vmspecific_deprecated_funcs_test.dart",
    "tests/ffi/vmspecific_dynamic_library_test.dart",
    "tests/ffi/vmspecific_enable_ffi_test.dart",
    "tests/ffi/vmspecific_ffi_native_handles_test.dart",
    "tests/ffi/vmspecific_ffi_native_test.dart",
    "tests/ffi/vmspecific_function_callbacks_exit_test.dart",
    "tests/ffi/vmspecific_function_callbacks_test.dart",
    "tests/ffi/vmspecific_function_gc_test.dart",
    "tests/ffi/vmspecific_function_test.dart",
    "tests/ffi/vmspecific_handle_dynamically_linked_test.dart",
    "tests/ffi/vmspecific_handle_test.dart",
    "tests/ffi/vmspecific_highmem_32bit_test.dart",
    "tests/ffi/vmspecific_leaf_call_test.dart",
    "tests/ffi/vmspecific_native_finalizer_2_test.dart",
    "tests/ffi/vmspecific_native_finalizer_deeply_immutable_test.dart",
    "tests/ffi/vmspecific_native_finalizer_isolate_groups_test.dart",
    "tests/ffi/vmspecific_native_finalizer_isolates_test.dart",
    "tests/ffi/vmspecific_native_finalizer_test.dart",
    "tests/ffi/vmspecific_object_gc_test.dart",
    "tests/ffi/vmspecific_pointer_load_il_test.dart",
    "tests/ffi/vmspecific_regress_37100_test.dart",
    "tests/ffi/vmspecific_regress_37511_callbacks_test.dart",
    "tests/ffi/vmspecific_regress_37511_test.dart",
    "tests/ffi/vmspecific_regress_37780_test.dart",
    "tests/ffi/vmspecific_regress_51794_test.dart",
    "tests/ffi/vmspecific_send_port_id_test.dart",
  ]

  test_deps = []
  test_resources = []
  foreach(test_source, test_sources) {
    label = string_replace(test_source, "/", "_")

    application_snapshot(label) {
      dart_snapshot_kind = "kernel"
      main_dart = test_source
      training_args = []  # Not used
      output = "$target_gen_dir/$test_source.dill"
    }

    test_deps += [ ":$label" ]
    test_resources += [
      {
        path = rebase_path("$target_gen_dir/$test_source.dill")
        dest = "data/$test_source"
      },
    ]
  }

  test_binaries = [
    "dart",
    "dartaotruntime",
    "run_vm_tests",
  ]

  foreach(binary, test_binaries) {
    fuchsia_component("${binary}_test_component") {
      testonly = true
      manifest = "runtime/bin/${binary}_test_component.cml"
      data_deps = [
        "runtime/bin:${binary}",
        "runtime/bin:ffi_test_dynamic_library",
        "runtime/bin:ffi_test_functions",
      ]
      library_files = [
        "libffi_test_dynamic_library.so",
        "libffi_test_functions.so",
      ]
      resource_files = [
        ".dart_tool/package_config.json",
        "tools/addlatexhash.dart",
      ]
      resources = []
      foreach(file, library_files) {
        resources += [
          {
            path = root_out_dir + "/" + file
            dest = "lib/" + file
          },
        ]
      }
      foreach(file, resource_files) {
        resources += [
          {
            path = file
            dest = "data/" + file
          },
        ]
      }
      deps = test_deps
      resources += test_resources
    }
  }

  fuchsia_package("fuchsia_test_package") {
    testonly = true
    if (is_debug) {
      package_name = "dart_test_debug"
    } else if (is_release) {
      package_name = "dart_test_release"
    } else if (is_product) {
      package_name = "dart_test_product"
    }
    deps = []
    foreach(binary, test_binaries) {
      deps += [ ":${binary}_test_component" ]
    }
  }
}
