# 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("../application_snapshot.gni")

analysis_server_files = exec_script("../../tools/list_dart_files.py",
                                    [
                                      "absolute",
                                      rebase_path("../../pkg/analysis_server"),
                                    ],
                                    "list lines")

application_snapshot("analysis_server") {
  main_dart = "../../pkg/analysis_server/bin/server.dart"
  training_args = [
    "--help",
    # TODO(34616): This is broken on Fuchsia.
    # "--sdk=" + rebase_path("../../sdk/"),
    # "--train-using=" + rebase_path("../../pkg/analyzer_cli")
  ]
  inputs = analysis_server_files
}
