CMakeLists.txt 1.0 KB

123456789101112131415161718192021222324252627
  1. # Fuzz process is dependent upon a few environment variables provided by OSSFuzz during the build process
  2. # For more information, see google.github.io/oss-fuzz/getting-started/new-project-guide/#buildsh-script-environment
  3. add_definitions(-DNDEBUG) # Do not want assertions for fuzz-testing
  4. if (DEFINED JPEG_ENGINE)
  5. set(FUZZER_NAME "${JPEG_ENGINE}_compression_fuzzer")
  6. else()
  7. set(FUZZER_NAME "unknown_compression_fuzzer")
  8. endif()
  9. add_executable(${FUZZER_NAME} fuzz_compression.c fuzz_manager.c)
  10. # Configure compilation options
  11. target_compile_options(${FUZZER_NAME} PRIVATE "$ENV{CMAKE_C_FLAGS}")
  12. set(CMAKE_C_COMPILER "$ENV{CC}" CACHE STRING "C compiler" FORCE)
  13. # Configure linking options
  14. target_link_options(${FUZZER_NAME} PRIVATE "$ENV{LIB_FUZZING_ENGINE}")
  15. target_link_libraries(${FUZZER_NAME} PRIVATE ${PROJECT_NAME})
  16. # Install the built fuzzer(s) to output directory
  17. if (DEFINED ENV{OUT})
  18. install(TARGETS ${FUZZER_NAME} DESTINATION $ENV{OUT})
  19. else()
  20. message(FATAL_ERROR "Cannot install if $OUT is not defined!")
  21. endif()