[PM/AA] Run clang-format over the ObjCARC Alias Analysis code to
[oota-llvm.git] / lib / Fuzzer / CMakeLists.txt
index e1ff65848cc84f3da168530bf4f8f22659b2f791..8b4d61905d00a154a9ee36207cba4f8de344bb7f 100644 (file)
@@ -1,13 +1,28 @@
-add_library(LLVMFuzzer STATIC
-  EXCLUDE_FROM_ALL  # Do not build if you are not building fuzzers.
-  FuzzerCrossOver.cpp
-  FuzzerIO.cpp
-  FuzzerLoop.cpp
-  FuzzerMain.cpp
-  FuzzerMutate.cpp
-  FuzzerUtil.cpp
-  )
+set(LIBFUZZER_FLAGS_BASE "${CMAKE_CXX_FLAGS_RELEASE}")
+# Disable the coverage and sanitizer instrumentation for the fuzzer itself.
+set(CMAKE_CXX_FLAGS_RELEASE "${LIBFUZZER_FLAGS_BASE} -O2 -fno-sanitize=all")
+if( LLVM_USE_SANITIZE_COVERAGE )
+  add_library(LLVMFuzzerNoMainObjects OBJECT
+    FuzzerCrossOver.cpp
+    FuzzerInterface.cpp
+    FuzzerTraceState.cpp
+    FuzzerDriver.cpp
+    FuzzerIO.cpp
+    FuzzerLoop.cpp
+    FuzzerMutate.cpp
+    FuzzerSanitizerOptions.cpp
+    FuzzerSHA1.cpp
+    FuzzerUtil.cpp
+    )
+  add_library(LLVMFuzzerNoMain STATIC
+    $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
+    )
+  add_library(LLVMFuzzer STATIC
+    FuzzerMain.cpp
+    $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects>
+    )
 
-if( LLVM_INCLUDE_TESTS )
-  add_subdirectory(test)
+  if( LLVM_INCLUDE_TESTS )
+    add_subdirectory(test)
+  endif()
 endif()