CMAKE: moved GNA var setting to proper place; removed find_package when build python...
[platform/upstream/dldt.git] / inference-engine / cmake / fuzzing.cmake
1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
3 #
4
5 function(enable_fuzzing)
6     # Enable (libFuzzer)[https://llvm.org/docs/LibFuzzer.html] if supported.
7     if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT WIN32)
8         # Communicate libfuzzer is enabled
9         set(WITH_LIBFUZZER ON PARENT_SCOPE)
10         add_compile_definitions(WITH_LIBFUZZER)
11
12         # Enable libfuzzer and code coverage
13         set(FUZZING_COMPILER_FLAGS "-fsanitize=fuzzer-no-link -fprofile-instr-generate -fcoverage-mapping")
14         set(FUZZING_LINKER_FLAGS "-fsanitize-coverage=trace-pc-guard -fprofile-instr-generate")
15
16         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FUZZING_COMPILER_FLAGS}" PARENT_SCOPE)
17         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FUZZING_COMPILER_FLAGS}" PARENT_SCOPE)
18         set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}" PARENT_SCOPE)        
19         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}")
20     endif()
21 endfunction(enable_fuzzing)
22
23
24 function(add_fuzzer FUZZER_EXE_NAME FUZZER_SOURCES)
25     add_executable(${FUZZER_EXE_NAME} ${FUZZER_SOURCES})
26     if(WITH_LIBFUZZER)
27         set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=fuzzer" PARENT_SCOPE)
28     endif()
29     target_link_libraries(${FUZZER_EXE_NAME} PRIVATE fuzz-testhelper)
30 endfunction(add_fuzzer)