xref: /llvm-project/lldb/tools/lldb-fuzzer/lldb-commandinterpreter-fuzzer/CMakeLists.txt (revision c3efb57655001896fac955f4d42657db42c836b0)
146be5faaSChelsea Cassanovaset(LLVM_LINK_COMPONENTS
246be5faaSChelsea Cassanova  Support
346be5faaSChelsea Cassanova  )
446be5faaSChelsea Cassanova
546be5faaSChelsea Cassanovaadd_llvm_fuzzer(lldb-commandinterpreter-fuzzer
646be5faaSChelsea Cassanova  EXCLUDE_FROM_ALL
746be5faaSChelsea Cassanova  lldb-commandinterpreter-fuzzer.cpp
846be5faaSChelsea Cassanova  )
946be5faaSChelsea Cassanova
1046be5faaSChelsea Cassanovaif(TARGET lldb-commandinterpreter-fuzzer)
1146be5faaSChelsea Cassanova  target_include_directories(lldb-commandinterpreter-fuzzer PRIVATE ..)
1246be5faaSChelsea Cassanova  target_link_libraries(lldb-commandinterpreter-fuzzer
1346be5faaSChelsea Cassanova    PRIVATE
1446be5faaSChelsea Cassanova    liblldb
1546be5faaSChelsea Cassanova    )
1646be5faaSChelsea Cassanova
1740aace59SChelsea Cassanova  # A directory in the build directory is created to hold the fuzzer's
1840aace59SChelsea Cassanova  # artifacts as a pre-build command for the command interpreter's executable
1940aace59SChelsea Cassanova  # target. When the fuzzer exits the input artifact that caused it to exit
2040aace59SChelsea Cassanova  # will be written to this directory.
2140aace59SChelsea Cassanova
2240aace59SChelsea Cassanova  add_custom_command(TARGET lldb-commandinterpreter-fuzzer PRE_BUILD
2340aace59SChelsea Cassanova    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts
2440aace59SChelsea Cassanova    )
2540aace59SChelsea Cassanova
2646be5faaSChelsea Cassanova  add_custom_target(fuzz-lldb-commandinterpreter
2746be5faaSChelsea Cassanova    COMMENT "Running the LLDB command interpreter fuzzer..."
2840aace59SChelsea Cassanova    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/fuzzer-artifacts/commandinterpreter-artifacts
2940aace59SChelsea Cassanova    COMMAND  $<TARGET_FILE:lldb-commandinterpreter-fuzzer> -dict=${CMAKE_CURRENT_SOURCE_DIR}/inputdictionary.txt  -only_ascii=1 -artifact_prefix=commandinterpreter-
3046be5faaSChelsea Cassanova    USES_TERMINAL
3146be5faaSChelsea Cassanova    )
32*c3efb576SMichael Kruse  set_target_properties(fuzz-lldb-commandinterpreter PROPERTIES FOLDER "LLDB/Fuzzer")
3346be5faaSChelsea Cassanovaendif()
34