cmake_minimum_required(VERSION 3.14...4.2.1) if(CMAKE_C_COMPILER_ID MATCHES "Clang") if(DEFINED ENV{LIB_FUZZING_ENGINE}) set(FUZZING_ENGINE $ENV{LIB_FUZZING_ENGINE}) set(FUZZING_ENGINE_FOUND ON) else() find_library(FUZZING_ENGINE "FuzzingEngine") endif() endif() set(FUZZERS fuzzer_checksum fuzzer_compress fuzzer_example_small fuzzer_example_large fuzzer_example_flush fuzzer_example_dict ) if(WITH_GZFILEOP) list(APPEND FUZZERS fuzzer_minigzip) endif() foreach(FUZZER ${FUZZERS}) add_executable(${FUZZER} ${FUZZER}.c) if(NOT FUZZING_ENGINE_FOUND) target_sources(${FUZZER} PRIVATE standalone_fuzz_target_runner.c) endif() if(NOT DEFINED BUILD_SHARED_LIBS) target_link_libraries(${FUZZER} zlib-ng-static) else() target_link_libraries(${FUZZER} zlib-ng) endif() if(FUZZING_ENGINE_FOUND) target_link_libraries(${FUZZER} ${FUZZING_ENGINE}) endif() file(GLOB FUZZER_TEST_FILES ${PROJECT_SOURCE_DIR}/*) set(FUZZER_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $ ${FUZZER_TEST_FILES}) add_test(NAME ${FUZZER} COMMAND ${FUZZER_COMMAND}) endforeach()