1*f6aab3d8Srobertset(LLVM_LINK_COMPONENTS 2*f6aab3d8Srobert Support 3*f6aab3d8Srobert ) 4*f6aab3d8Srobert 5*f6aab3d8Srobertadd_llvm_fuzzer(lldb-commandinterpreter-fuzzer 6*f6aab3d8Srobert EXCLUDE_FROM_ALL 7*f6aab3d8Srobert lldb-commandinterpreter-fuzzer.cpp 8*f6aab3d8Srobert ) 9*f6aab3d8Srobert 10*f6aab3d8Srobertif(TARGET lldb-commandinterpreter-fuzzer) 11*f6aab3d8Srobert target_include_directories(lldb-commandinterpreter-fuzzer PRIVATE ..) 12*f6aab3d8Srobert target_link_libraries(lldb-commandinterpreter-fuzzer 13*f6aab3d8Srobert PRIVATE 14*f6aab3d8Srobert liblldb 15*f6aab3d8Srobert ) 16*f6aab3d8Srobert 17*f6aab3d8Srobert # A directory in the build directory is created to hold the fuzzer's 18*f6aab3d8Srobert # artifacts as a pre-build command for the command interpreter's executable 19*f6aab3d8Srobert # target. When the fuzzer exits the input artifact that caused it to exit 20*f6aab3d8Srobert # will be written to this directory. 21*f6aab3d8Srobert 22*f6aab3d8Srobert add_custom_command(TARGET lldb-commandinterpreter-fuzzer PRE_BUILD 23*f6aab3d8Srobert COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts 24*f6aab3d8Srobert ) 25*f6aab3d8Srobert 26*f6aab3d8Srobert add_custom_target(fuzz-lldb-commandinterpreter 27*f6aab3d8Srobert COMMENT "Running the LLDB command interpreter fuzzer..." 28*f6aab3d8Srobert WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts 29*f6aab3d8Srobert COMMAND $<TARGET_FILE:lldb-commandinterpreter-fuzzer> -dict=${CMAKE_CURRENT_SOURCE_DIR}/inputdictionary.txt -only_ascii=1 -artifact_prefix=commandinterpreter- 30*f6aab3d8Srobert USES_TERMINAL 31*f6aab3d8Srobert ) 32*f6aab3d8Srobertendif() 33