# 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/bendian.rnv",
  "data/ref/input/bendian.wnv",
  "data/ref/input/bendian1.raw",
  "data/ref/input/bendian2.raw",
  "data/ref/input/bendian3.raw",
  "data/ref/input/lendian.rnv",
  "data/ref/input/lendian.wnv",
  "data/ref/input/lendian1.raw",
  "data/ref/input/lendian2.raw",
  "data/ref/input/lendian3.raw",
  "data/ref/input/persons.1k",
]

executable("255.vortex") {
  sources = [
    "src/bitvec.c",
    "src/bmt.c",
    "src/bmt0.c",
    "src/bmt01.c",
    "src/bmt10.c",
    "src/bmtlib.c",
    "src/bmtobj.c",
    "src/core01.c",
    "src/dba.c",
    "src/dbm0.c",
    "src/dbm1.c",
    "src/dbm2.c",
    "src/domain.c",
    "src/draw07.c",
    "src/draw7.c",
    "src/drawlib.c",
    "src/drawobj.c",
    "src/emplib.c",
    "src/empobj.c",
    "src/env0.c",
    "src/env01.c",
    "src/env1.c",
    "src/fm.c",
    "src/gdbm.c",
    "src/grp0.c",
    "src/grp1.c",
    "src/grp2.c",
    "src/hm.c",
    "src/iam.c",
    "src/ifm.c",
    "src/im.c",
    "src/km.c",
    "src/list01.c",
    "src/mem00.c",
    "src/mem01.c",
    "src/mem10.c",
    "src/oa0.c",
    "src/oa1.c",
    "src/oadmp.c",
    "src/obj01.c",
    "src/odbm.c",
    "src/ogrp.c",
    "src/om.c",
    "src/point.c",
    "src/primal.c",
    "src/pstub.c",
    "src/query.c",
    "src/rect.c",
    "src/rects.c",
    "src/sa.c",
    "src/shell.c",
    "src/sm.c",
    "src/testobj.c",
    "src/tm.c",
    "src/trans00.c",
    "src/trans01.c",
    "src/trans10.c",
    "src/trans20.c",
    "src/tree0.c",
    "src/tree00.c",
    "src/tree01.c",
    "src/ut.c",
    "src/vchunk.c",
    "src/vdbm.c",
    "src/voa.c",
    "src/vom.c",
  ]
  defines = [ "SPEC_CPU2000_LP64" ]
  cflags_c = [
    "-Wno-dangling-else",
    "-Wno-format",
    "-Wno-header-guard",
    "-Wno-implicit-function-declaration",
    "-Wno-implicit-int",
    "-Wno-incompatible-pointer-types",
    "-Wno-logical-op-parentheses",
    "-Wno-self-assign",
    "-Wno-sign-compare",
    "-Wno-sometimes-uninitialized",
    "-Wno-switch",
    "-Wno-unused-variable",
    "-fno-strict-aliasing",
  ]
  if (current_os == "fuchsia") {
    data = inputs
  } else {
    data_deps = [
      ":copy_inputs",
    ]
  }
}

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