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

import("//third_party/dart/utils/application_snapshot.gni")

frontend_server_files =
    exec_script("//third_party/dart/tools/list_dart_files.py",
                [
                  "absolute",
                  rebase_path("."),
                ],
                "list lines")

frontend_server_files +=
    exec_script("//third_party/dart/tools/list_dart_files.py",
                [
                  "absolute",
                  rebase_path("../../third_party/dart/pkg"),
                ],
                "list lines")

application_snapshot("frontend_server") {
  main_dart = "bin/starter.dart"
  deps = [
    "//flutter/lib/snapshot:kernel_platform_files",
  ]
  dot_packages = rebase_path(".dart_tool/package_config.json")
  flutter_patched_sdk = rebase_path("$root_out_dir/flutter_patched_sdk")
  training_args = [
    "--train",
    "--sdk-root=$flutter_patched_sdk",
    rebase_path(main_dart),
  ]

  inputs = frontend_server_files
}
