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

# Engine should be compiled without coverage (infinite loop in trace_cmp).
fuzzing_engine_remove_configs = [
  "//build/config/coverage:default_coverage",
  "//build/config/sanitizers:default_sanitizer_flags",
]

fuzzing_engine_add_configs =
    [ "//build/config/sanitizers:default_sanitizer_flags_but_coverage" ]

source_set("libfuzzer") {
  sources = [
    "src/FuzzerClangCounters.cpp",
    "src/FuzzerCrossOver.cpp",
    "src/FuzzerDriver.cpp",
    "src/FuzzerExtFunctionsDlsym.cpp",
    "src/FuzzerExtFunctionsDlsymWin.cpp",
    "src/FuzzerExtFunctionsWeak.cpp",
    "src/FuzzerExtFunctionsWeakAlias.cpp",
    "src/FuzzerExtraCounters.cpp",
    "src/FuzzerIO.cpp",
    "src/FuzzerIOPosix.cpp",
    "src/FuzzerIOWindows.cpp",
    "src/FuzzerLoop.cpp",
    "src/FuzzerMain.cpp",
    "src/FuzzerMerge.cpp",
    "src/FuzzerMutate.cpp",
    "src/FuzzerSHA1.cpp",
    "src/FuzzerShmemPosix.cpp",
    "src/FuzzerShmemWindows.cpp",
    "src/FuzzerTracePC.cpp",
    "src/FuzzerUtil.cpp",
    "src/FuzzerUtilDarwin.cpp",
    "src/FuzzerUtilLinux.cpp",
    "src/FuzzerUtilPosix.cpp",
    "src/FuzzerUtilWindows.cpp",
  ]

  configs -= fuzzing_engine_remove_configs
  configs += fuzzing_engine_add_configs
}

source_set("afl_driver") {
  sources = [
    "src/afl/afl_driver.cpp",
  ]

  configs -= fuzzing_engine_remove_configs
  configs += fuzzing_engine_add_configs
}
