# 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("//tools/ipc_fuzzer/ipc_fuzzer.gni")

config("ipc_fuzzer_config") {
  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") {
    deps = [
      "//tools/ipc_fuzzer/fuzzer:ipc_fuzzer",
      "//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") {
  }
}
