# Copyright 2014 The Chromium 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/mac/mac_sdk.gni")
import("//testing/test.gni")

component("sandbox") {
  sources = [
    "bootstrap_sandbox.cc",
    "bootstrap_sandbox.h",
    "launchd_interception_server.cc",
    "launchd_interception_server.h",
    "mach_message_server.cc",
    "mach_message_server.h",
    "message_server.h",
    "os_compatibility.cc",
    "os_compatibility.h",
    "policy.cc",
    "policy.h",
    "pre_exec_delegate.cc",
    "pre_exec_delegate.h",
    "xpc.h",
    "xpc_message_server.cc",
    "xpc_message_server.h",
  ]

  defines = [ "SANDBOX_IMPLEMENTATION" ]
  libs = [ "bsm" ]

  deps = [
    "//base",
  ]
}

component("seatbelt") {
  sources = [
    "sandbox_compiler.cc",
    "sandbox_compiler.h",
    "seatbelt.cc",
    "seatbelt.h",
    "seatbelt_export.h",
  ]
  libs = [ "sandbox" ]
  defines = [ "SEATBELT_IMPLEMENTATION" ]
}

test("sandbox_mac_unittests") {
  sources = [
    "bootstrap_sandbox_unittest.mm",
    "policy_unittest.cc",
    "sandbox_mac_compiler_unittest.mm",
    "sandbox_mac_compiler_v2_unittest.mm",
    "xpc_message_server_unittest.cc",
  ]

  libs = [
    "CoreFoundation.framework",
    "Foundation.framework",
  ]

  deps = [
    ":sandbox",
    ":seatbelt",
    "//base",
    "//base/test:run_all_unittests",
    "//testing/gtest",
  ]
}
