# 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/inp.in",
  "data/ref/input/mcf.out",
]

executable("181.mcf") {
  testonly = true

  sources = [
    "src/implicit.c",
    "src/mcf.c",
    "src/mcfutil.c",
    "src/output.c",
    "src/pbeampp.c",
    "src/pbla.c",
    "src/pflowup.c",
    "src/psimplex.c",
    "src/pstart.c",
    "src/readmin.c",
    "src/treeup.c",
  ]
  defines = [ "WANT_STDC_PROTO" ]
  if (current_os == "fuchsia") {
    data = inputs
  } else {
    data_deps = [
      ":copy_inputs",
    ]
  }
}

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