# 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.

config("util_config") {
  visibility = [ ":*" ]
  include_dirs = [ "." ]
}

executable("speccpu2000_benchmark") {
  testonly = true

  sources = [
    "main.cc",
  ]

  deps = [
    ":spec_utils",
    "//third_party/benchmark",
    "//third_party/gflags",
    "//third_party/glog",
  ]
}

source_set("spec_utils") {
  testonly = true

  sources = [
    "spec_fixture.cc",
    "spec_utils.cc",
  ]

  deps = [
    "//third_party/benchmark",
    "//third_party/glog",
  ]

  if (current_os == "linux") {
    libs = [ "pthread" ]
  }

  if (current_os == "fuchsia") {
    libs = [
      "launchpad",
      "magenta",
    ]
  }
  public_configs = [ ":util_config" ]
}
