# 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/ammp.in",
  "data/ref/input/all.init.ammp",
  "data/ref/input/init_cond.run.1",
  "data/ref/input/init_cond.run.2",
  "data/ref/input/init_cond.run.3",
]

executable("188.ammp") {
  testonly = true

  sources = [
    "src/ammp.c",
    "src/analyze.c",
    "src/angle.c",
    "src/animate.c",
    "src/anonbon.c",
    "src/atoms.c",
    "src/bonds.c",
    "src/box.c",
    "src/eval.c",
    "src/gsdg.c",
    "src/hybrid.c",
    "src/math.c",
    "src/mom.c",
    "src/monitor.c",
    "src/noel.c",
    "src/optimist.c",
    "src/random.c",
    "src/rectmm.c",
    "src/restrain.c",
    "src/significance.c",
    "src/tailor.c",
    "src/tether.c",
    "src/tgroup.c",
    "src/torsion.c",
    "src/tset.c",
    "src/unonbon.c",
    "src/variable.c",
    "src/vnonbon.c",
  ]
  defines = [ "SPEC_CPU2000" ]
  cflags_c = [
    "-Wno-comment",
    "-Wno-format",
    "-Wno-implicit-function-declaration",
    "-Wno-implicit-int",
    "-Wno-parentheses-equality",
    "-Wno-return-type",
    "-Wno-self-assign",
    "-Wno-unused-label",
    "-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/188.ammp/{{source_file_part}}",
  ]
}
