Removed global CMAKE_MODULE_PATH in IE DevPackage (#3747)

* Cleanup

* Added CMAKE_MODULE_LINKER_FLAGS for onecoreuap toolchain

* Fixed ENABLE_FASTER_BUILD mode on Android

* Cosmetic fix

* Fixed fuzzing

* Enabled fuzzing
This commit is contained in:
Ilya Lavrenov 2020-12-27 00:02:50 +03:00 committed by GitHub
parent 6f77c72fc7
commit 278b662e56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 53 additions and 55 deletions

View File

@ -204,6 +204,7 @@ endif()
include(compile_flags/sdl)
include(compile_flags/os_flags)
include(compile_flags/sanitizer)
include(compile_flags/fuzzing)
include(download/dependency_solver)
include(cross_compile/cross_compiled_func)
include(faster_build)
@ -216,6 +217,10 @@ include(vs_version/vs_version)
include(plugins/plugins)
include(add_ie_target)
if(ENABLE_FUZZING)
enable_fuzzing()
endif()
# Code style utils
include(cpplint/cpplint)

View File

@ -0,0 +1,25 @@
# Copyright (C) 2018-2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
macro(enable_fuzzing)
# Enable (libFuzzer)[https://llvm.org/docs/LibFuzzer.html] if supported.
set(FUZZING_COMPILER_FLAGS "-fsanitize=fuzzer-no-link -fprofile-instr-generate -fcoverage-mapping")
set(FUZZING_LINKER_FLAGS "-fsanitize-coverage=trace-pc-guard -fprofile-instr-generate")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FUZZING_COMPILER_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FUZZING_COMPILER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}")
unset(FUZZING_COMPILER_FLAGS)
unset(FUZZING_LINKER_FLAGS)
endmacro()
function(add_fuzzer FUZZER_EXE_NAME FUZZER_SOURCES)
add_executable(${FUZZER_EXE_NAME} ${FUZZER_SOURCES})
target_link_libraries(${FUZZER_EXE_NAME} PRIVATE fuzz-testhelper)
if(ENABLE_FUZZING)
set_target_properties(${FUZZER_EXE_NAME} PROPERTIES LINK_FLAGS "-fsanitize=fuzzer")
endif()
endfunction(add_fuzzer)

View File

@ -18,7 +18,7 @@ function (DownloadAndCheck from to fatal result sha256)
message(STATUS "Downloading from ${from} to ${to} ...")
find_program(aria2c "aria2c")
if (${aria2c} STREQUAL "aria2c-NOTFOUND")
if (NOT ${WGET_FOUND})
if (NOT WGET_FOUND)
Download(${from} ${to} ${fatal} ${result} output ${sha256})
list(GET output 0 status_code)
else()

View File

@ -48,6 +48,8 @@ ie_option (ENABLE_UNSAFE_LOCATIONS "skip check for MD5 for dependency" OFF)
ie_option (ENABLE_ALTERNATIVE_TEMP "in case of dependency conflict, to avoid modification in master, use local copy of dependency" ON)
ie_dependent_option (ENABLE_FUZZING "instrument build for fuzzing" OFF "CMAKE_CXX_COMPILER_ID MATCHES ^(Apple)?Clang$; NOT WIN32" OFF)
#
# Check features
#

View File

@ -1,31 +0,0 @@
# Copyright (C) 2018-2020 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
function(enable_fuzzing)
# Enable (libFuzzer)[https://llvm.org/docs/LibFuzzer.html] if supported.
if(CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang$" AND NOT WIN32)
# Communicate libfuzzer is enabled
set(WITH_LIBFUZZER ON PARENT_SCOPE)
add_compile_definitions(WITH_LIBFUZZER)
# Enable libfuzzer and code coverage
set(FUZZING_COMPILER_FLAGS "-fsanitize=fuzzer-no-link -fprofile-instr-generate -fcoverage-mapping")
set(FUZZING_LINKER_FLAGS "-fsanitize-coverage=trace-pc-guard -fprofile-instr-generate")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FUZZING_COMPILER_FLAGS}" PARENT_SCOPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FUZZING_COMPILER_FLAGS}" PARENT_SCOPE)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}" PARENT_SCOPE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}" PARENT_SCOPE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${FUZZING_LINKER_FLAGS}")
endif()
endfunction(enable_fuzzing)
function(add_fuzzer FUZZER_EXE_NAME FUZZER_SOURCES)
add_executable(${FUZZER_EXE_NAME} ${FUZZER_SOURCES})
if(WITH_LIBFUZZER)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=fuzzer" PARENT_SCOPE)
endif()
target_link_libraries(${FUZZER_EXE_NAME} PRIVATE fuzz-testhelper)
endfunction(add_fuzzer)

View File

@ -63,6 +63,7 @@ foreach(lib kernel32 user32 advapi32 ole32 mscoree combase)
endforeach()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${linker_flags}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${linker_flags}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${linker_flags}")
unset(linker_flags)

View File

@ -13,10 +13,6 @@ include(cmake/features.cmake)
# resolving dependencies for the project
include(cmake/dependencies.cmake)
if (ENABLE_FUZZING)
enable_fuzzing()
endif()
find_package(Threads REQUIRED)
function(ie_developer_export_targets)

View File

@ -81,8 +81,6 @@ ie_dependent_option (ENABLE_SAMPLES "console samples are part of inference engin
ie_dependent_option (ENABLE_SPEECH_DEMO "enable speech demo integration" ON "NOT APPLE;NOT ANDROID;X86 OR X86_64" OFF)
ie_option (ENABLE_FUZZING "instrument build for fuzzing" OFF)
ie_option (ENABLE_OPENCV "enables OpenCV" ON)
ie_option (ENABLE_PYTHON "enables ie python bridge build" OFF)

View File

@ -47,11 +47,6 @@ set(InferenceEngine_LIBRARIES IE::inference_engine)
# Common cmake includes
#
# TODO: remove after private plugin change
list(APPEND CMAKE_MODULE_PATH "@OpenVINO_MAIN_SOURCE_DIR@/cmake/developer_package" # KMB
"@OpenVINO_MAIN_SOURCE_DIR@/cmake/developer_package/download" # KMB, HDDL
"@IE_MAIN_SOURCE_DIR@/cmake") # HDDL
# Inference Engine Developer Scripts package
find_package(IEDevScripts REQUIRED

View File

@ -5,7 +5,6 @@
project(OpenCV_C_Wraper)
set(TARGET_NAME opencv_c_wraper)
#set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs,ALL")
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
@ -15,7 +14,7 @@ add_library(${TARGET_NAME} SHARED ${HEADERS} ${SOURCES})
# Find OpenCV components if exist
find_package(OpenCV COMPONENTS imgcodecs videoio QUIET)
if(NOT OpenCV_FOUND)
message(WARNING "OPENCV is disabled or not found, " ${TARGET_NAME} " is built without OPENCV support")
message(WARNING "OPENCV is disabled or not found, ${TARGET_NAME} is built without OPENCV support")
else()
add_definitions(-DUSE_OPENCV)
endif()

View File

@ -7,7 +7,7 @@ set(TARGET_NAME "InferenceEngineCAPITests")
# Find OpenCV components if exist
find_package(OpenCV COMPONENTS imgcodecs videoio imgproc QUIET)
if(NOT OpenCV_FOUND)
message(WARNING "OPENCV is disabled or not found, " ${TARGET_NAME} " is disabled")
message(WARNING "OPENCV is disabled or not found, ${TARGET_NAME} is disabled")
return()
endif()

View File

@ -198,7 +198,7 @@ macro(ie_add_sample)
if(IE_SAMPLE_OPENCV_DEPENDENCIES)
find_package(OpenCV COMPONENTS ${IE_SAMPLE_OPENCV_DEPENDENCIES} QUIET)
if(NOT OpenCV_FOUND)
message(WARNING "OPENCV is disabled or not found, " ${IE_SAMPLE_NAME} " skipped")
message(WARNING "OPENCV is disabled or not found, ${IE_SAMPLE_NAME} skipped")
return()
endif()
endif()

View File

@ -23,7 +23,7 @@ add_library(${TARGET_NAME} SHARED ${MAIN_SRC} ${LIBRARY_HEADERS})
# Find OpenCV components if exist
find_package(OpenCV COMPONENTS imgcodecs videoio imgproc QUIET)
if(NOT OpenCV_FOUND)
message(WARNING "OPENCV is disabled or not found, " ${TARGET_NAME} " will be built without OPENCV support")
message(WARNING "OPENCV is disabled or not found, ${TARGET_NAME} will be built without OPENCV support")
else()
target_link_libraries(${TARGET_NAME} PRIVATE ${OpenCV_LIBRARIES})
if(UNIX AND NOT APPLE)

View File

@ -7,6 +7,7 @@
#include <string>
#include <vector>
#include <debug.h> // to allow putting vector into exception string stream
#include "details/ie_exception.hpp"
#include <legacy/ie_layers_property.hpp>
#include "ie_blob.h"

View File

@ -7,7 +7,7 @@ set(TARGET_NAME ieUnitTests)
# Find OpenCV components if exist
find_package(OpenCV COMPONENTS imgcodecs videoio imgproc QUIET)
if(NOT OpenCV_FOUND)
message(WARNING "OPENCV is disabled or not found, " ${TARGET_NAME} " needs OpenCV for its build")
message(WARNING "OPENCV is disabled or not found, ${TARGET_NAME} needs OpenCV for its build")
else()
add_definitions(-DUSE_OPENCV)
endif()

View File

@ -2,22 +2,25 @@
# SPDX-License-Identifier: Apache-2.0
#
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
project(openvino_fuzzing)
set(OpenVINO_MAIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
set(CMAKE_MODULE_PATH "${OpenVINO_MAIN_SOURCE_DIR}/cmake/developer_package" ${CMAKE_MODULE_PATH})
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
if (CMAKE_BUILD_TYPE STREQUAL "")
message(STATUS "CMAKE_BUILD_TYPE not defined, 'Release' will be used")
set(CMAKE_BUILD_TYPE "Release")
endif()
set(OpenVINO_MAIN_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../")
if (NOT TARGET IE::inference_engine)
find_package(InferenceEngineDeveloperPackage REQUIRED)
find_package(IEDevScripts REQUIRED
PATHS "${OpenVINO_MAIN_SOURCE_DIR}/cmake/developer_package"
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
endif()
include(compile_flags/sanitizer)
include(fuzzing)
find_package(InferenceEngine REQUIRED)
if (NOT ENABLE_FUZZING)
message(STATUS

View File

@ -13,3 +13,7 @@ add_library(
${SRC_FILES})
target_include_directories(${TARGET_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
if(ENABLE_FUZZING)
target_compile_definitions(${TARGET_NAME} PRIVATE WITH_LIBFUZZER)
endif()