Dan Liew | 676892a | 2016-05-26 20:55:05 +0000 | [diff] [blame] | 1 | set(LIBFUZZER_FLAGS_BASE "${CMAKE_CXX_FLAGS}") |
Kostya Serebryany | 16d03bd | 2015-03-30 22:09:51 +0000 | [diff] [blame] | 2 | # Disable the coverage and sanitizer instrumentation for the fuzzer itself. |
Kostya Serebryany | bceadcf | 2016-08-24 01:38:42 +0000 | [diff] [blame] | 3 | set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fno-sanitize=all -fno-sanitize-coverage=edge,trace-cmp,indirect-calls,8bit-counters -Werror") |
Aaron Ballman | f77031f | 2015-04-06 16:09:13 +0000 | [diff] [blame] | 4 | if( LLVM_USE_SANITIZE_COVERAGE ) |
Dan Liew | c752a264 | 2016-05-26 20:55:09 +0000 | [diff] [blame] | 5 | if(NOT "${LLVM_USE_SANITIZER}" STREQUAL "Address") |
| 6 | message(FATAL_ERROR |
| 7 | "LibFuzzer and its tests require LLVM_USE_SANITIZER=Address and " |
| 8 | "LLVM_USE_SANITIZE_COVERAGE=YES to be set." |
| 9 | ) |
| 10 | endif() |
Kostya Serebryany | f342459 | 2015-05-22 22:35:31 +0000 | [diff] [blame] | 11 | add_library(LLVMFuzzerNoMainObjects OBJECT |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 12 | FuzzerCrossOver.cpp |
Kostya Serebryany | 2252625 | 2015-05-11 21:16:27 +0000 | [diff] [blame] | 13 | FuzzerTraceState.cpp |
Kostya Serebryany | 016852c | 2015-02-19 18:45:37 +0000 | [diff] [blame] | 14 | FuzzerDriver.cpp |
Dan Liew | d3c3311 | 2016-06-02 05:48:02 +0000 | [diff] [blame] | 15 | FuzzerExtFunctionsDlsym.cpp |
| 16 | FuzzerExtFunctionsWeak.cpp |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 17 | FuzzerIO.cpp |
| 18 | FuzzerLoop.cpp |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 19 | FuzzerMutate.cpp |
Kostya Serebryany | 96eab65 | 2015-05-14 22:41:49 +0000 | [diff] [blame] | 20 | FuzzerSHA1.cpp |
Kostya Serebryany | da63c1d | 2016-02-26 21:33:56 +0000 | [diff] [blame] | 21 | FuzzerTracePC.cpp |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 22 | FuzzerUtil.cpp |
Dan Liew | ed3c9ca | 2016-08-12 18:29:36 +0000 | [diff] [blame] | 23 | FuzzerUtilDarwin.cpp |
| 24 | FuzzerUtilLinux.cpp |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 25 | ) |
Kostya Serebryany | f342459 | 2015-05-22 22:35:31 +0000 | [diff] [blame] | 26 | add_library(LLVMFuzzerNoMain STATIC |
| 27 | $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects> |
| 28 | ) |
Rafael Espindola | 5cd721a | 2016-03-01 15:54:40 +0000 | [diff] [blame] | 29 | target_link_libraries(LLVMFuzzerNoMain ${PTHREAD_LIB}) |
Kostya Serebryany | 7167255 | 2015-01-30 23:26:57 +0000 | [diff] [blame] | 30 | add_library(LLVMFuzzer STATIC |
| 31 | FuzzerMain.cpp |
Kostya Serebryany | f342459 | 2015-05-22 22:35:31 +0000 | [diff] [blame] | 32 | $<TARGET_OBJECTS:LLVMFuzzerNoMainObjects> |
Kostya Serebryany | 7167255 | 2015-01-30 23:26:57 +0000 | [diff] [blame] | 33 | ) |
Rafael Espindola | 5cd721a | 2016-03-01 15:54:40 +0000 | [diff] [blame] | 34 | target_link_libraries(LLVMFuzzer ${PTHREAD_LIB}) |
Aaron Ballman | ef11698 | 2015-01-29 16:58:29 +0000 | [diff] [blame] | 35 | |
| 36 | if( LLVM_INCLUDE_TESTS ) |
| 37 | add_subdirectory(test) |
| 38 | endif() |
| 39 | endif() |