cmake_minimum_required(VERSION 3.16)
project(insight_fuzz)
set(FUZZ_HOME_DIR ${HOME_DIR}/src/test/fuzz)
message("fuzz start")
message(STATUS "[fuzz dir is] ${FUZZ_HOME_DIR}")
include_directories(${FUZZ_HOME_DIR})
include_directories(${FUZZ_HOME_DIR}/timeline)
aux_source_directory(${FUZZ_HOME_DIR}/timeline FUZZ_TIMELINE_TEST)
include_directories(${FUZZ_HOME_DIR}/compute)
aux_source_directory(${FUZZ_HOME_DIR}/compute FUZZ_COMPUTE_TEST)
include_directories(${FUZZ_HOME_DIR}/common)
aux_source_directory(${FUZZ_HOME_DIR}/common FUZZ_COMMON_TEST)
list(APPEND DIC_FUZZ_TEST_LIST
${FUZZ_TIMELINE_TEST}
${FUZZ_COMPUTE_TEST}
${FUZZ_COMMON_TEST}
${SRC_HOME_DIR}/utils/
${U_SOCKETS_SRC_LIST}
${DIC_UTILS_SRC}
${DIC_PROTOCOL_SRC}
${DIC_MODULES_SRC_LIST}
${DIC_SERVER_SRC}
${DIC_CHANNEL_SRC}
)
add_executable(insight_fuzz FuzzMain.cpp ${DIC_FUZZ_TEST_LIST})
target_include_directories(insight_fuzz PRIVATE
${HOME_DIR}/msinsight/src
${HOME_DIR}/msinsight/src/utils
${HOME_DIR}/msinsight/src/base
${HOME_DIR}/msinsight/include
${HOME_DIR}/msinsight/include/utils
${HOME_DIR}/msinsight/include/base)
target_precompile_headers(insight_fuzz PRIVATE ${HOME_DIR}/msinsight/src/utils/pch.h)
set_source_files_properties(${U_SOCKETS_SRC_LIST} PROPERTIES SKIP_PRECOMPILE_HEADERS ON)
target_compile_options(insight_fuzz PRIVATE
-g
-fPIC
-Wall
-Winvalid-pch
-fms-extensions
-std=c++11
-O0
-fno-omit-frame-pointer
-ftest-coverage
-fprofile-arcs
-fdump-rtl-expand
-Wno-pmf-conversions
-fsanitize=address
-fsanitize=undefined
-fsanitize-coverage=trace-cmp,trace-pc
)
target_link_options(insight_fuzz PRIVATE
-fsanitize=address
-fsanitize=undefined
-fsanitize-coverage=trace-cmp,trace-pc
)
target_link_libraries(insight_fuzz PRIVATE
msinsight gtest gtest_main gmock_main
uv_a pthread dl sqlite z Secodefuzz stdc++fs gcov)
target_link_directories(insight_fuzz PUBLIC
${HOME_DIR}/third_party/secodefuzz/examples/out-bin-x64/
${HOME_DIR}/third_party/googletest/
)
target_include_directories(insight_fuzz PUBLIC
${HOME_DIR}/third_party/googletest/googletest/include/gtest
${HOME_DIR}/third_party/secodefuzz/Secodefuzz
)
install(TARGETS insight_fuzz
RUNTIME DESTINATION ${HOME_DIR}/build)