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

inputs = [
  "data/ref/input/crafty.in",
]

executable("186.crafty") {
  testonly = true

  sources = [
    "src/attacks.c",
    "src/boolean.c",
    "src/draw.c",
    "src/drawn.c",
    "src/edit.c",
    "src/enprise.c",
    "src/evaluate.c",
    "src/history.c",
    "src/init.c",
    "src/input.c",
    "src/interupt.c",
    "src/iterate.c",
    "src/lookup.c",
    "src/main.c",
    "src/make.c",
    "src/movgen.c",
    "src/next.c",
    "src/nexte.c",
    "src/nextr.c",
    "src/option.c",
    "src/output.c",
    "src/phase.c",
    "src/ponder.c",
    "src/preeval.c",
    "src/quiesce.c",
    "src/repeat.c",
    "src/root.c",
    "src/search.c",
    "src/searchr.c",
    "src/setboard.c",
    "src/store.c",
    "src/swap.c",
    "src/time.c",
    "src/unmake.c",
    "src/utility.c",
    "src/valid.c",
    "src/validate.c",
  ]
  defines = [ "SPEC_CPU2000" ]
  cflags_c = [
    "-Wno-dangling-else",
    "-Wno-implicit-function-declaration",
    "-Wno-unused-variable",
  ]
  if (current_os == "fuchsia") {
    data = inputs
  } else {
    data_deps = [
      ":copy_inputs",
    ]
  }
}

copy("copy_inputs") {
  visibility = [ ":*" ]
  sources = inputs
  outputs = [
    "$root_out_dir/data/186.crafty/{{source_file_part}}",
  ]
}
