# Copyright 2016 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/nacl/config.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")

config("ipc_fuzzer_config") {
  if (!is_nacl_nonsfi) {
    defines = [ "ENABLE_IPC_FUZZER" ]
  }
}

config("ipc_fuzzer_tool_config") {
  if (is_win) {
    cflags = [ "/wd4366" ]
  }
  defines = [
    "ENABLE_IPC_FUZZER",
    "USE_CUPS",
  ]
  include_dirs = [ "." ]
}

if (enable_ipc_fuzzer) {
  assert(!is_component_build, "IPC fuzzer does not support component builds.")

  group("ipc_fuzzer_all") {
    testonly = true
    deps = [
      "//tools/ipc_fuzzer/fuzzer:ipc_fuzzer",
      "//tools/ipc_fuzzer/get_accessible_interfaces:get_accessible_interfaces",
      "//tools/ipc_fuzzer/message_dump:ipc_message_dump",
      "//tools/ipc_fuzzer/message_replay:ipc_fuzzer_replay",
      "//tools/ipc_fuzzer/message_tools:ipc_message_list",
      "//tools/ipc_fuzzer/message_tools:ipc_message_util",
    ]
  }
} else {
  group("ipc_fuzzer_all") {
  }
}
