# 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/input.graphic",
  "data/ref/input/input.log",
  "data/ref/input/input.program",
  "data/ref/input/input.random",
  "data/ref/input/input.source",
]

executable("164.gzip") {
  testonly = true

  sources = [
    "src/bits.c",
    "src/deflate.c",
    "src/gzip.c",
    "src/inflate.c",
    "src/lzw.c",
    "src/spec.c",
    "src/trees.c",
    "src/unlzh.c",
    "src/unlzw.c",
    "src/unpack.c",
    "src/unzip.c",
    "src/util.c",
    "src/zip.c",
  ]
  cflags_c = [
    "-Wno-format",
    "-Wno-implicit-function-declaration",
    "-Wno-macro-redefined",
    "-Wno-unused-function",
    "-Wno-unused-variable",
  ]
  defines = [ "SPEC_CPU2000" ]
  if (current_os == "fuchsia") {
    data = inputs
  } else {
    data_deps = [
      ":copy_inputs",
    ]
  }
}

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