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

import("//build/config/compiler.gni")

target("static_library", "safeside") {
  sources = [
    "demos/ret2spec_callret_disparity.cc",
    "demos/ret2spec_sa.cc",
    "demos/cache_sidechannel.cc",
    "demos/utils.cc",
    "demos/instr.cc",
  ]
  include_dirs = [
    "demos",
  ]

  deps = [ "//sdk/lib/fdio" ]

  if (is_fuchsia) {
    configs += [ "//build/config/fuchsia:static_cpp_standard_library" ]
  }

  # Safeside must be built with compiler optimizations; otherwise intervening
  # memory accesses or text confounds reliability of the tests.
  configs -= [ "//build/config:default_optimize" ]
  configs += [ "//build/config:optimize_debug" ]
}
