# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# embedder specific template rules.
import("embedder.gni")
import("//mojo/dart/packages/mojo/sources.gni")
import("//mojo/dart/packages/mojo/sdk_ext_sources.gni")

group("embedder") {
  deps = [
    ":dart_controller_no_snapshot",
    ":generate_snapshot_file",
    "//mojo/dart/embedder/snapshotter",
  ]
}

source_set("dart_controller_no_snapshot") {
  sources = [
    "$target_gen_dir/dart_embedder_patch_resources.cc",
    "$target_gen_dir/dart_embedder_service_isolate_resources.cc",
    "builtin.cc",
    "builtin.h",
    "builtin_natives.cc",
    "common.cc",
    "common.h",
    "dart_controller.cc",
    "dart_controller.h",
    "io/internet_address.h",
    "io/internet_address_posix.cc",
    "mojo_dart_state.h",
    "mojo_io_natives.cc",
    "mojo_io_natives.h",
    "vmservice.cc",
    "vmservice.h",
  ]

  deps = [
    ":dart_embedder_packages",
    ":generate_dart_embedder_patch_resources_cc",
    ":generate_dart_embedder_service_isolate_resources_cc",
    "//base",
    "//base:i18n",
    "//dart/runtime:libdart",
    "//dart/runtime/bin:libdart_embedder_noio",
    "//dart/runtime/observatory:embedded_observatory_archive",
    "//mojo/message_pump",
    "//mojo/public/c/system",
    "//mojo/public/cpp/environment",
    "//mojo/public/cpp/system",
    "//mojo/public/platform/dart:mojo_internal_impl",
    "//mojo/services/files/interfaces",
    "//mojo/services/network/interfaces",
    "//tonic",
  ]

  defines = []
  if (is_debug) {
    defines += [ "DEBUG" ]
  } else {
    defines += [ "NDEBUG" ]
  }
}

dart_embedder_resources("generate_dart_embedder_patch_resources_cc") {
  inputs = [
    "//mojo/dart/embedder/core/natives_patch.dart",
    "//mojo/dart/embedder/io/file_patch.dart",
    "//mojo/dart/embedder/io/internet_address_patch.dart",
    "//mojo/dart/embedder/io/mojo_patch.dart",
    "//mojo/dart/embedder/io/platform_patch.dart",
    "//mojo/dart/embedder/io/process_patch.dart",
    "//mojo/dart/embedder/io/socket_patch.dart",
    "//mojo/dart/embedder/io/server_socket_patch.dart",
  ]
  root_prefix = "//mojo/dart/embedder/"
  output = "$target_gen_dir/dart_embedder_patch_resources.cc"
  table_name = "dart_embedder_patch"
}

group("dart_embedder_packages") {
  deps = [
    ":dart_embedder_package_application",
    ":dart_embedder_package_bindings",
    ":dart_embedder_package_files_service",
    ":dart_embedder_package_network",
    ":dart_embedder_package_network_service",
    ":dart_embedder_package_sdk",
  ]
}

dart_embedder_package("dart_embedder_package_application") {
  package = "mojo/public/interfaces/application"
  destination = "mojo/mojo"
}

dart_embedder_package("dart_embedder_package_bindings") {
  package = "mojo/public/interfaces/bindings"
  destination = "mojo/mojo"
}

dart_embedder_package("dart_embedder_package_network") {
  package = "mojo/public/interfaces/network"
  destination = "mojo/mojo"
}

dart_embedder_package("dart_embedder_package_network_service") {
  package = "mojo/services/network/interfaces"
  destination = "mojo_services/mojo"
}

dart_embedder_package("dart_embedder_package_files_service") {
  package = "mojo/services/files/interfaces"
  destination = "mojo_services/mojo/files"
}

action_foreach("dart_embedder_package_sdk") {
  sources = rebase_path(package_mojo_sources + dart_mojo_internal_sdk_sources,
                        "",
                        "//mojo/dart/packages/mojo")
  outputs = [
    "$root_gen_dir/dart_embedder_packages/{{source_root_relative_dir}}/{{source_file_part}}",
  ]
  script = rebase_path(
          "//mojo/dart/embedder/tools/dart_rewrite_embedder_package_imports.py")
  args = [
    rebase_path("{{source}}", "", root_build_dir),
    rebase_path(
        "$root_gen_dir/dart_embedder_packages/{{source_root_relative_dir}}/{{source_file_part}}"),
  ]
}

dart_embedder_resources("generate_dart_embedder_service_isolate_resources_cc") {
  inputs = [
    "//mojo/dart/embedder/vmservice/loader.dart",
    "//mojo/dart/embedder/vmservice/main.dart",
    "//mojo/dart/embedder/vmservice/server.dart",
  ]
  root_prefix = "//mojo/dart/embedder/"
  output = "$target_gen_dir/dart_embedder_service_isolate_resources.cc"
  table_name = "dart_embedder_service_isolate"
}

action("generate_snapshot_bin") {
  deps = [
    ":dart_embedder_packages",
    "//dart/runtime/bin:gen_snapshot($host_toolchain)",
  ]
  inputs = [
    "snapshot.dart",
    "//dart/runtime/tools/create_snapshot_bin.py",
    "//mojo/dart/embedder/builtin.dart",
    "//mojo/dart/embedder/packages.dart",
  ]

  inputs += rebase_path(dart_mojo_internal_sdk_sources, "", "../packages/mojo")

  vm_isolate_snapshot = "$target_gen_dir/vm_isolate_snapshot.bin"
  isolate_snapshot = "$target_gen_dir/isolate_snapshot.bin"
  outputs = [
    vm_isolate_snapshot,
    isolate_snapshot,
  ]

  gen_snapshot_dir =
      get_label_info("//dart/runtime/bin:gen_snapshot($host_toolchain)",
                     "root_out_dir")
  script = "//dart/runtime/tools/create_snapshot_bin.py"
  builtin_path = rebase_path("//mojo/dart/embedder/builtin.dart")
  internal_path = rebase_path("//mojo/dart/packages/mojo/sdk_ext/internal.dart")
  io_path = rebase_path("//dart/sdk/lib/io/io.dart")

  embedder_packages_path = rebase_path("//mojo/dart/embedder/packages.dart")
  embedder_package_application_path = rebase_path(
          "$root_gen_dir/dart_embedder_packages/mojo/dart/packages/mojo/lib/application.dart")
  embedder_package_bindings_path = rebase_path(
          "$root_gen_dir/dart_embedder_packages/mojo/dart/packages/mojo/lib/bindings.dart")
  embedder_package_core_path = rebase_path(
          "$root_gen_dir/dart_embedder_packages/mojo/dart/packages/mojo/lib/core.dart")
  url_mappings_script =
      rebase_path("//mojo/dart/embedder/tools/dart_embedder_url_mappings.py")

  application_mojoms = rebase_path("//mojo/public/interfaces/application")
  bindings_mojoms = rebase_path("//mojo/public/interfaces/bindings")
  network_mojoms = rebase_path("//mojo/public/interfaces/network")
  network_service_mojoms = rebase_path("//mojo/services/network/interfaces")
  files_mojoms = rebase_path("//mojo/services/files/interfaces")

  # This script generates --url_mapping command line arguments for all
  # generated mojom.dart bindings files. See HACKING.md for more information.
  embedder_mojom_url_mappings =
      exec_script(url_mappings_script,
                  [
                    # File system path containing target imports.
                    rebase_path("$root_gen_dir/dart_embedder_packages"),

                    # Embedder package directories.
                    "$application_mojoms,mojo/mojo",
                    "$bindings_mojoms,mojo/mojo",
                    "$network_mojoms,mojo/mojo",
                    "$network_service_mojoms,mojo_services/mojo",
                    "$files_mojoms,mojo_services/mojo/files",
                  ],
                  "list lines")

  args = [
           "--executable",
           rebase_path("$gen_snapshot_dir/gen_snapshot"),
           "--package_root",
           rebase_path("$root_gen_dir/dart-gen"),
           "--script",
           rebase_path("snapshot.dart"),
           "--vm_output_bin",
           rebase_path(vm_isolate_snapshot, root_build_dir),
           "--output_bin",
           rebase_path(isolate_snapshot, root_build_dir),
           "--target_os",
           current_os,
           "--url_mapping=dart:mojo.builtin,$builtin_path",
           "--url_mapping=dart:mojo.internal,$internal_path",
           "--url_mapping=dart:io,$io_path",

           # Embedder packages
           "--url_mapping=dart:embedder_private_packages,$embedder_packages_path",
           "--url_mapping=dart:_mojo/application.dart,$embedder_package_application_path",
           "--url_mapping=dart:_mojo/bindings.dart,$embedder_package_bindings_path",
           "--url_mapping=dart:_mojo/core.dart,$embedder_package_core_path",
         ] + embedder_mojom_url_mappings
}

action("generate_snapshot_file") {
  deps = [
    ":generate_snapshot_bin",
  ]
  inputs = [
    "//dart/runtime/tools/create_snapshot_file.py",
    "//mojo/dart/embedder/snapshot.cc.tmpl",
    "$target_gen_dir/vm_isolate_snapshot.bin",
    "$target_gen_dir/isolate_snapshot.bin",
  ]
  output = "$root_gen_dir/dart_snapshot.cc"
  outputs = [
    output,
  ]

  script = "//dart/runtime/tools/create_snapshot_file.py"
  args = [
    "--vm_input_bin",
    rebase_path("$target_gen_dir/vm_isolate_snapshot.bin"),
    "--input_bin",
    rebase_path("$target_gen_dir/isolate_snapshot.bin"),
    "--input_cc",
    rebase_path("//mojo/dart/embedder/snapshot.cc.tmpl"),
    "--output",
    rebase_path(output),
  ]
}

source_set("dart_snapshot_cc") {
  sources = [
    "$root_gen_dir/dart_snapshot.cc",
  ]

  deps = [
    ":generate_snapshot_file",
  ]
}
