used native LTO support from cmake 3.9.6 (#2625)

* used native LTO support from cmake 3.9.6

* Removed compilation flags push / pop

* Fixes

* Fixes for VPU unit tests

* Temp WA for old gcc
This commit is contained in:
Ilya Lavrenov 2020-10-14 10:43:24 +03:00 committed by GitHub
parent 72d387c702
commit 82d0aaf1dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 194 additions and 265 deletions

View File

@ -89,15 +89,8 @@ function(build_ngraph)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4308 /wd4146 /wd4703 /wd4244 /wd4819") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4308 /wd4146 /wd4703 /wd4244 /wd4819")
endif() endif()
# Preserve the original flags for further use
set(CMAKE_ORIGINAL_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_ORIGINAL_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_ORIGINAL_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_ORIGINAL_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
set(CMAKE_ORIGINAL_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE}")
if(ENABLE_LTO) if(ENABLE_LTO)
ie_enable_lto() set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
endif() endif()
ie_cpack_add_component(ngraph) ie_cpack_add_component(ngraph)

View File

@ -2,6 +2,8 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
cmake_minimum_required(VERSION 3.13)
list(APPEND CMAKE_MODULE_PATH list(APPEND CMAKE_MODULE_PATH
"${OpenVINO_MAIN_SOURCE_DIR}/cmake/download" "${OpenVINO_MAIN_SOURCE_DIR}/cmake/download"
"${OpenVINO_MAIN_SOURCE_DIR}/cmake/cross_compile" "${OpenVINO_MAIN_SOURCE_DIR}/cmake/cross_compile"
@ -214,6 +216,22 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(CMAKE_POLICY_DEFAULT_CMP0054 NEW) set(CMAKE_POLICY_DEFAULT_CMP0054 NEW)
# LTO
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_SUPPORTED
OUTPUT OUTPUT_MESSAGE
LANGUAGES C CXX)
if(NOT IPO_SUPPORTED)
set(ENABLE_LTO "OFF" CACHE STRING "Enable Link Time Optmization" FORCE)
message(WARNING "IPO / LTO is not supported: ${OUTPUT_MESSAGE}")
endif()
# General flags
include(sdl) include(sdl)
include(os_flags) include(os_flags)
include(sanitizer) include(sanitizer)

View File

@ -21,7 +21,7 @@ ie_dependent_option (ENABLE_CLDNN "clDnn based plugin for inference engine" ON "
# FIXME: there are compiler failures with LTO and Cross-Compile toolchains. Disabling for now, but # FIXME: there are compiler failures with LTO and Cross-Compile toolchains. Disabling for now, but
# this must be addressed in a proper way # this must be addressed in a proper way
ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF "LINUX OR WIN32;NOT CMAKE_CROSSCOMPILING" OFF) ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF "LINUX OR WIN32;NOT CMAKE_CROSSCOMPILING; CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9" OFF)
ie_option (OS_FOLDER "create OS dedicated folder in output" OFF) ie_option (OS_FOLDER "create OS dedicated folder in output" OFF)

View File

@ -130,40 +130,7 @@ endfunction()
# Enables Link Time Optimization compilation # Enables Link Time Optimization compilation
# #
macro(ie_enable_lto) macro(ie_enable_lto)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel" AND OFF) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
ProcessorCount(N)
if(UNIX)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ipo")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ipo")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -ipo-jobs${N}")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -ipo-jobs${N}")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -ipo-jobs${N}")
else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Qipo")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Qipo")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /Qipo-jobs:${N}")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /Qipo-jobs:${N}")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /Qipo-jobs:${N}")
endif()
elseif(UNIX)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -flto")
# LTO causes issues with gcc 4.8.5 during cmake pthread check
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -flto")
endif()
# modify runlib and ar tools
if(LINUX)
set(CMAKE_AR "gcc-ar")
set(CMAKE_RANLIB "gcc-ranlib")
endif()
elseif(MSVC AND OFF)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GL")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG:STATUS")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG:STATUS")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG:STATUS")
endif()
endmacro() endmacro()
# #

View File

@ -14,12 +14,12 @@ find_package(InferenceEngineDeveloperPackage REQUIRED)
add_subdirectory(src) add_subdirectory(src)
if(ENABLE_TESTS) if(ENABLE_TESTS)
include(CTest) include(CTest)
enable_testing() enable_testing()
if(ENABLE_FUNCTIONAL_TESTS) if(ENABLE_FUNCTIONAL_TESTS)
add_subdirectory(tests/functional) add_subdirectory(tests/functional)
endif() endif()
endif() endif()
# [cmake:main] # [cmake:main]

View File

@ -5,10 +5,6 @@
# [cmake:plugin] # [cmake:plugin]
set(TARGET_NAME "templatePlugin") set(TARGET_NAME "templatePlugin")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
@ -20,9 +16,7 @@ ie_add_plugin(NAME ${TARGET_NAME}
VERSION_DEFINES_FOR template_plugin.cpp) VERSION_DEFINES_FOR template_plugin.cpp)
target_include_directories(${TARGET_NAME} PRIVATE target_include_directories(${TARGET_NAME} PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}") "${CMAKE_CURRENT_SOURCE_DIR}"
target_include_directories(${TARGET_NAME} PRIVATE
"${IE_MAIN_TEMPLATE_PLUGIN_SOURCE_DIR}/include") "${IE_MAIN_TEMPLATE_PLUGIN_SOURCE_DIR}/include")
# link common Inference Engine libraries # link common Inference Engine libraries
@ -36,6 +30,8 @@ target_link_libraries(${TARGET_NAME} PRIVATE
IE::ngraph_backend IE::ngraph_backend
IE::interpreter_backend) IE::interpreter_backend)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# ATTENTION: uncomment to register a plugin in the plugins.xml file # ATTENTION: uncomment to register a plugin in the plugins.xml file
# ie_register_plugins(MAIN_TARGET ${TARGET_NAME} # ie_register_plugins(MAIN_TARGET ${TARGET_NAME}
# POSSIBLE_PLUGINS ${TARGET_NAME}) # POSSIBLE_PLUGINS ${TARGET_NAME})

View File

@ -3,10 +3,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO AND CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0)
ie_enable_lto()
endif()
# [cmake:functional_tests] # [cmake:functional_tests]
set(TARGET_NAME templateFuncTests) set(TARGET_NAME templateFuncTests)

View File

@ -20,7 +20,7 @@ endforeach()
message(STATUS "The following CMake options are exported from Inference Engine Developer package") message(STATUS "The following CMake options are exported from Inference Engine Developer package")
message("") message("")
foreach(option IN LISTS ie_options) foreach(option IN LISTS ie_options)
message(" ${option}: ${${option}}") message(" ${option}: ${${option}}")
endforeach() endforeach()
message("") message("")
@ -50,7 +50,7 @@ list(APPEND CMAKE_MODULE_PATH "${OpenVINO_MAIN_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${IE_MAIN_SOURCE_DIR}/cmake") list(APPEND CMAKE_MODULE_PATH "${IE_MAIN_SOURCE_DIR}/cmake")
# generic stuff from developer package # generic stuff from developer package
include(developer_package) include(developer_package NO_POLICY_SCOPE)
include(developer_package_ie) include(developer_package_ie)
# Don't threat deprecated API warnings as errors in 3rd party apps # Don't threat deprecated API warnings as errors in 3rd party apps
@ -68,4 +68,4 @@ if (THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO")
find_package(TBB) find_package(TBB)
endif() endif()
find_package(Threads REQUIRED) find_package(Threads REQUIRED)

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO)
ie_enable_lto()
endif()
set(TARGET_NAME inference_engine_c_api) set(TARGET_NAME inference_engine_c_api)
file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
@ -21,6 +17,8 @@ target_include_directories(${TARGET_NAME} PUBLIC "${InferenceEngine_C_API_SOURCE
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# export # export
export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake") export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake")

View File

@ -11,10 +11,6 @@ if (LINUX)
endif() endif()
endif() endif()
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB MAIN_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) file(GLOB MAIN_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h) file(GLOB LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
@ -35,6 +31,8 @@ target_include_directories(${TARGET_NAME} PRIVATE
${CLDNN__IOCL_ICD_INCDIRS} ${CLDNN__IOCL_ICD_INCDIRS}
${CLDNN_TOP_FOLDER}) ${CLDNN_TOP_FOLDER})
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# install # install
install(FILES "${clDNN_SOURCE_DIR}/kernel_selector/core/cache/cache.json" install(FILES "${clDNN_SOURCE_DIR}/kernel_selector/core/cache/cache.json"

View File

@ -3,10 +3,6 @@
set(TARGET_NAME "GNAPlugin") set(TARGET_NAME "GNAPlugin")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE SOURCES file(GLOB_RECURSE SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
@ -53,11 +49,8 @@ target_link_libraries(${TARGET_NAME}_test_static PUBLIC inference_engine_preproc
target_include_directories(${TARGET_NAME}_test_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(${TARGET_NAME}_test_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(${TARGET_NAME}_test_static PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_test_static) set_target_properties(${TARGET_NAME}_test_static PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_test_static)
if(WIN32) set_target_properties(${TARGET_NAME} ${TARGET_NAME}_test_static
# Correct 'jnl' macro/jit issue PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/bigobj> )
target_compile_options(${TARGET_NAME}_test_static PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/bigobj> )
endif()
# install # install

View File

@ -4,16 +4,8 @@
set (TARGET_NAME "HeteroPlugin") set (TARGET_NAME "HeteroPlugin")
if(ENABLE_LTO) file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
ie_enable_lto() file(GLOB_RECURSE HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
endif()
file(GLOB SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)
file(GLOB_RECURSE HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
ie_add_plugin(NAME ${TARGET_NAME} ie_add_plugin(NAME ${TARGET_NAME}
DEVICE_NAME "HETERO" DEVICE_NAME "HETERO"
@ -25,3 +17,5 @@ ie_faster_build(${TARGET_NAME}
) )
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine ade pugixml ${NGRAPH_LIBRARIES} inference_engine_transformations) target_link_libraries(${TARGET_NAME} PRIVATE inference_engine ade pugixml ${NGRAPH_LIBRARIES} inference_engine_transformations)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})

View File

@ -4,10 +4,6 @@
set (TARGET_NAME "inference_engine") set (TARGET_NAME "inference_engine")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file (GLOB LIBRARY_SRC file (GLOB LIBRARY_SRC
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/threading/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/threading/*.cpp
@ -215,6 +211,11 @@ target_link_libraries(${TARGET_NAME}_s PRIVATE ${CMAKE_DL_LIBS} ${NGRAPH_LIBRARI
target_compile_definitions(${TARGET_NAME}_s PUBLIC USE_STATIC_IE) target_compile_definitions(${TARGET_NAME}_s PUBLIC USE_STATIC_IE)
# LTO
set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj ${TARGET_NAME}_s ${TARGET_NAME}_common_obj
PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# export targets # export targets
export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake") export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake")

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "inference_engine_legacy") set(TARGET_NAME "inference_engine_legacy")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h) file(GLOB_RECURSE PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)
@ -58,6 +54,11 @@ target_link_libraries(${TARGET_NAME} PRIVATE ${CMAKE_DL_LIBS} ${NGRAPH_LIBRARIES
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})
# LTO
set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj
PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# export targets # export targets
export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake") export(TARGETS ${TARGET_NAME} NAMESPACE IE:: APPEND FILE "${CMAKE_BINARY_DIR}/targets.cmake")

View File

@ -4,10 +4,6 @@
set (TARGET_NAME "inference_engine_lp_transformations") set (TARGET_NAME "inference_engine_lp_transformations")
if(ENABLE_LTO)
ie_enable_lto()
endif()
set(PUBLIC_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") set(PUBLIC_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include")
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
@ -35,10 +31,14 @@ target_compile_definitions(${TARGET_NAME} PRIVATE IMPLEMENT_INFERENCE_ENGINE_API
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine openvino::itt) target_link_libraries(${TARGET_NAME} PRIVATE inference_engine openvino::itt)
target_include_directories(${TARGET_NAME} PUBLIC ${PUBLIC_HEADERS_DIR} target_include_directories(${TARGET_NAME} PUBLIC ${PUBLIC_HEADERS_DIR}
$<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>) $<TARGET_PROPERTY:inference_engine_plugin_api,INTERFACE_INCLUDE_DIRECTORIES>)
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})
# LTO
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# developer package # developer package
ie_developer_export_targets(${TARGET_NAME}) ie_developer_export_targets(${TARGET_NAME})

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "MKLDNNPlugin") set(TARGET_NAME "MKLDNNPlugin")
if(ENABLE_LTO)
ie_enable_lto()
endif()
if (WIN32) if (WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOMINMAX")
endif() endif()
@ -205,6 +201,11 @@ set_ie_threading_interface_for(${TARGET_NAME}_obj)
target_compile_definitions(${TARGET_NAME}_obj PUBLIC -DMKLDNN_THR=${MKLDNN_THR} target_compile_definitions(${TARGET_NAME}_obj PUBLIC -DMKLDNN_THR=${MKLDNN_THR}
PRIVATE USE_STATIC_IE IMPLEMENT_INFERENCE_ENGINE_PLUGIN) PRIVATE USE_STATIC_IE IMPLEMENT_INFERENCE_ENGINE_PLUGIN)
# LTO
set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj
PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# install # install
if(GEMM STREQUAL "MKL") if(GEMM STREQUAL "MKL")

View File

@ -4,17 +4,8 @@
set (TARGET_NAME "MultiDevicePlugin") set (TARGET_NAME "MultiDevicePlugin")
if(ENABLE_LTO) file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
ie_enable_lto() file(GLOB HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
endif()
file(GLOB SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
)
file(GLOB HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
)
ie_add_plugin(NAME ${TARGET_NAME} ie_add_plugin(NAME ${TARGET_NAME}
DEVICE_NAME "MULTI" DEVICE_NAME "MULTI"
@ -24,3 +15,5 @@ ie_add_plugin(NAME ${TARGET_NAME}
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine) target_link_libraries(${TARGET_NAME} PRIVATE inference_engine)
set_ie_threading_interface_for(${TARGET_NAME}) set_ie_threading_interface_for(${TARGET_NAME})
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})

View File

@ -4,10 +4,6 @@
set (TARGET_NAME "inference_engine_preproc") set (TARGET_NAME "inference_engine_preproc")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp) file(GLOB LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) file(GLOB LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
@ -187,6 +183,11 @@ target_link_libraries(${TARGET_NAME}_s PRIVATE fluid openvino::itt
target_compile_definitions(${TARGET_NAME}_s INTERFACE USE_STATIC_IE) target_compile_definitions(${TARGET_NAME}_s INTERFACE USE_STATIC_IE)
# LTO
set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj ${TARGET_NAME}_s
PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# developer package # developer package
ie_developer_export_targets(${TARGET_NAME}) ie_developer_export_targets(${TARGET_NAME})

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "inference_engine_ir_reader") set(TARGET_NAME "inference_engine_ir_reader")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
@ -37,6 +33,8 @@ target_link_libraries(${TARGET_NAME} PRIVATE ${NGRAPH_LIBRARIES}
pugixml pugixml
openvino::itt) openvino::itt)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# code style # code style
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "inference_engine_ir_v7_reader") set(TARGET_NAME "inference_engine_ir_v7_reader")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.h
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
@ -35,6 +31,8 @@ target_include_directories(${TARGET_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/"
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine_reader_api inference_engine_plugin_api target_link_libraries(${TARGET_NAME} PRIVATE inference_engine_reader_api inference_engine_plugin_api
inference_engine pugixml openvino::itt) inference_engine pugixml openvino::itt)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# code style # code style
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "inference_engine_onnx_reader") set(TARGET_NAME "inference_engine_onnx_reader")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.hpp) ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp)
@ -26,6 +22,8 @@ target_compile_definitions(${TARGET_NAME} PRIVATE IMPLEMENT_INFERENCE_ENGINE_PLU
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine_reader_api onnx_importer inference_engine) target_link_libraries(${TARGET_NAME} PRIVATE inference_engine_reader_api onnx_importer inference_engine)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# code style # code style
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})

View File

@ -4,10 +4,6 @@
set(TARGET_NAME "inference_engine_transformations") set(TARGET_NAME "inference_engine_transformations")
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) file(GLOB_RECURSE PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp)
@ -36,6 +32,10 @@ target_include_directories(${TARGET_NAME} PUBLIC ${PUBLIC_HEADERS_DIR}
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})
# LTO
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# developer package # developer package
ie_developer_export_targets(${TARGET_NAME}) ie_developer_export_targets(${TARGET_NAME})

View File

@ -14,9 +14,9 @@ if(ENABLE_MYRIAD)
"${IE_MAIN_SOURCE_DIR}/thirdparty/movidius" "${IE_MAIN_SOURCE_DIR}/thirdparty/movidius"
"${CMAKE_CURRENT_BINARY_DIR}/thirdparty/movidius") "${CMAKE_CURRENT_BINARY_DIR}/thirdparty/movidius")
# #
# Build plugins # Build plugins
# #
add_subdirectory(myriad_plugin) add_subdirectory(myriad_plugin)

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h) file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h)
function(add_common_target TARGET_NAME STATIC_IE) function(add_common_target TARGET_NAME STATIC_IE)
@ -51,6 +47,8 @@ function(add_common_target TARGET_NAME STATIC_IE)
add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME} CUSTOM_FILTERS "+runtime/explicit") add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME} CUSTOM_FILTERS "+runtime/explicit")
endif() endif()
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
ie_developer_export_targets(${TARGET_NAME}) ie_developer_export_targets(${TARGET_NAME})
target_link_libraries(${TARGET_NAME} PUBLIC ${NGRAPH_LIBRARIES} inference_engine_transformations target_link_libraries(${TARGET_NAME} PUBLIC ${NGRAPH_LIBRARIES} inference_engine_transformations

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO)
ie_enable_lto()
endif()
file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h *.inc) file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h *.inc)
function(add_graph_transformer_target TARGET_NAME STATIC_IE) function(add_graph_transformer_target TARGET_NAME STATIC_IE)
@ -59,6 +55,8 @@ function(add_graph_transformer_target TARGET_NAME STATIC_IE)
ie_developer_export_targets(${TARGET_NAME}) ie_developer_export_targets(${TARGET_NAME})
endif() endif()
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
endfunction() endfunction()
add_graph_transformer_target("vpu_graph_transformer" FALSE) add_graph_transformer_target("vpu_graph_transformer" FALSE)

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO)
ie_enable_lto()
endif()
set(TARGET_NAME "myriadPlugin") set(TARGET_NAME "myriadPlugin")
file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h) file(GLOB_RECURSE SOURCES *.cpp *.hpp *.h)
@ -45,6 +41,10 @@ target_link_libraries(${TARGET_NAME}
PRIVATE PRIVATE
mvnc inference_engine vpu_graph_transformer) mvnc inference_engine vpu_graph_transformer)
# LTO
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
# install # install
install(FILES ${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/mvnc/src/97-myriad-usbboot.rules install(FILES ${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/mvnc/src/97-myriad-usbboot.rules

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO AND CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0)
ie_enable_lto()
endif()
set(IE_TESTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) set(IE_TESTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
enable_testing() enable_testing()

View File

@ -23,3 +23,8 @@ addIeTargetTest(
VPU VPU
MYRIAD MYRIAD
) )
# because vpu_common_lib and vpu_graph_transformer are compiled with LTO
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
endif()

View File

@ -5,6 +5,11 @@
# RPATH is always enabled for unit tests # RPATH is always enabled for unit tests
set(CMAKE_SKIP_RPATH OFF) set(CMAKE_SKIP_RPATH OFF)
# because unit tests use plugins object files compiled with LTO
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
endif()
add_subdirectory(inference_engine) add_subdirectory(inference_engine)
if (ENABLE_MKL_DNN) if (ENABLE_MKL_DNN)

View File

@ -2,29 +2,35 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
disable_deprecated_warnings()
set(TARGET_NAME vpuUnitTests) set(TARGET_NAME vpuUnitTests)
disable_deprecated_warnings()
include(${XLINK_DIR}/XLink.cmake) include(${XLINK_DIR}/XLink.cmake)
addIeTargetTest( addIeTargetTest(
NAME ${TARGET_NAME} NAME ${TARGET_NAME}
ROOT ${CMAKE_CURRENT_SOURCE_DIR} ROOT ${CMAKE_CURRENT_SOURCE_DIR}
ADDITIONAL_SOURCE_DIRS
# because ngraphFunctions sources need to be compiled with LTO as well
"${IE_TESTS_ROOT}/ngraph_functions/src"
INCLUDES INCLUDES
${IE_MAIN_SOURCE_DIR}/src/vpu/myriad_plugin "${IE_MAIN_SOURCE_DIR}/src/vpu/myriad_plugin"
${IE_MAIN_SOURCE_DIR}/thirdparty/movidius "${IE_MAIN_SOURCE_DIR}/thirdparty/movidius"
${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/mvnc/include/watchdog "${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/mvnc/include/watchdog"
${XLINK_INCLUDE} "${XLINK_INCLUDE}"
${XLINK_PLATFORM_INCLUDE} "${XLINK_PLATFORM_INCLUDE}"
${CMAKE_CURRENT_SOURCE_DIR}/base/ "${CMAKE_CURRENT_SOURCE_DIR}/base"
$<TARGET_PROPERTY:ngraphFunctions,INTERFACE_INCLUDE_DIRECTORIES>
LINK_LIBRARIES LINK_LIBRARIES
vpu_graph_transformer_test_static vpu_graph_transformer_test_static
unitTestUtils unitTestUtils
ngraphFunctions
mvnc mvnc
${NGRAPH_LIBRARIES}
ngraph_backend
interpreter_backend
ADD_CPPLINT ADD_CPPLINT
LABELS LABELS
VPU VPU
MYRIAD MYRIAD
) )

View File

@ -2,10 +2,6 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if(ENABLE_LTO AND CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 9.0)
ie_enable_lto()
endif()
enable_testing() enable_testing()
add_subdirectory(helpers) add_subdirectory(helpers)
@ -22,8 +18,6 @@ if (ENABLE_BEH_TESTS)
add_subdirectory(behavior) add_subdirectory(behavior)
endif() endif()
disable_deprecated_warnings()
if(ENABLE_TESTS) if(ENABLE_TESTS)
add_subdirectory(unit) add_subdirectory(unit)
endif() endif()

View File

@ -6,6 +6,8 @@ cmake_policy(SET CMP0054 NEW)
set(TARGET_NAME InferenceEngineUnitTests) set(TARGET_NAME InferenceEngineUnitTests)
disable_deprecated_warnings()
# rpath enabled for unit tests only # rpath enabled for unit tests only
SET (CMAKE_SKIP_RPATH OFF) SET (CMAKE_SKIP_RPATH OFF)
@ -118,6 +120,11 @@ target_include_directories(${TARGET_NAME} PRIVATE
set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}) set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
# because IE unit tests use plugin and IE object files compiled with LTO
if(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.0)
set_target_properties(${TARGET_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION ${ENABLE_LTO})
endif()
## Mock macros doesn't use "override" specificator ## Mock macros doesn't use "override" specificator
target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:Clang>: -Wno-error=inconsistent-missing-override >) target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:Clang>: -Wno-error=inconsistent-missing-override >)
target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:AppleClang>: -Wno-error=inconsistent-missing-override >) target_compile_options(${TARGET_NAME} PRIVATE $<$<CXX_COMPILER_ID:AppleClang>: -Wno-error=inconsistent-missing-override >)

View File

@ -2,90 +2,85 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unknown-warning-option -Wno-error=inconsistent-missing-override -Wno-error=pass-failed")
elseif(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.1) elseif(CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 9.1)
# On g++ 9.3.0 (Ubuntu 20.04) the ADE library raises "redundant-move" warnings # On g++ 9.3.0 (Ubuntu 20.04) the ADE library raises "redundant-move" warnings
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=redundant-move") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=redundant-move")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=redundant-move") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=redundant-move")
elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") AND ("${MSVC_VERSION}" VERSION_GREATER_EQUAL "1920")) elseif((CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") AND (MSVC_VERSION VERSION_GREATER_EQUAL "1920"))
# 1920 version of MSVC 2019 # 1920 version of MSVC 2019
# This flagis needed for enabling SIMD vectorization with command '#pragma omp simd'. # This flagis needed for enabling SIMD vectorization with command '#pragma omp simd'.
# Compilation with '/openmp:experimental' key allow us to enable vectorizatikon capability in MSVC. # Compilation with '/openmp:experimental' key allow us to enable vectorizatikon capability in MSVC.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /openmp:experimental") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /openmp:experimental")
endif() endif()
function(build_with_lto) if(ENABLE_LTO)
if(ENABLE_LTO) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON)
ie_enable_lto() endif()
endif()
if (ENABLE_CLDNN) if (ENABLE_CLDNN)
set(CLDNN__OUTPUT_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) set(CLDNN__OUTPUT_BIN_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
set(CLDNN__OUTPUT_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) set(CLDNN__OUTPUT_LIB_DIR ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
if (ENABLE_TESTS AND ENABLE_CLDNN_TESTS) if (ENABLE_TESTS AND ENABLE_CLDNN_TESTS)
set(CLDNN__INCLUDE_TESTS ON CACHE BOOL "" FORCE) set(CLDNN__INCLUDE_TESTS ON CACHE BOOL "" FORCE)
set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS ON CACHE BOOL "" FORCE) set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS ON CACHE BOOL "" FORCE)
else()
set(CLDNN__INCLUDE_TESTS OFF CACHE BOOL "" FORCE)
set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS OFF CACHE BOOL "" FORCE)
endif()
set(CLDNN__INCLUDE_EXAMPLES OFF CACHE BOOL "" FORCE)
set(CLDNN__INCLUDE_TUTORIAL OFF CACHE BOOL "" FORCE)
if (WIN32)
set(CLDNN__ARCHITECTURE_TARGET "Windows64" CACHE STRING "" FORCE)
elseif (ANDROID)
set(CLDNN__ARCHITECTURE_TARGET "Android64" CACHE STRING "" FORCE)
else()
set(CLDNN__ARCHITECTURE_TARGET "Linux64" CACHE STRING "" FORCE)
endif()
add_subdirectory(clDNN)
# disable CLDNN docs build
set_target_properties(docs PROPERTIES EXCLUDE_FROM_ALL ON
FOLDER docs)
endif()
function(ie_build_pugixml)
set(BUILD_TESTS_current ${BUILD_TESTS})
set(BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE)
add_subdirectory(pugixml)
set(BUILD_TESTS ${BUILD_TESTS_current} CACHE BOOL "Build tests" FORCE)
endfunction()
if (USE_SYSTEM_PUGIXML)
find_package(PugiXML REQUIRED)
set_property(TARGET pugixml PROPERTY IMPORTED_GLOBAL TRUE)
else() else()
ie_build_pugixml() set(CLDNN__INCLUDE_TESTS OFF CACHE BOOL "" FORCE)
target_include_directories(pugixml INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src>") set(CLDNN__INCLUDE_CORE_INTERNAL_TESTS OFF CACHE BOOL "" FORCE)
endif() endif()
add_subdirectory(stb_lib) set(CLDNN__INCLUDE_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory(ade) set(CLDNN__INCLUDE_TUTORIAL OFF CACHE BOOL "" FORCE)
add_subdirectory(fluid/modules/gapi) if (WIN32)
set(CLDNN__ARCHITECTURE_TARGET "Windows64" CACHE STRING "" FORCE)
set_target_properties(ade fluid stb_image elseif (ANDROID)
PROPERTIES FOLDER thirdparty) set(CLDNN__ARCHITECTURE_TARGET "Android64" CACHE STRING "" FORCE)
else()
# developer package set(CLDNN__ARCHITECTURE_TARGET "Linux64" CACHE STRING "" FORCE)
ie_developer_export_targets(ade fluid)
if (NOT USE_SYSTEM_PUGIXML)
set_target_properties(pugixml PROPERTIES FOLDER thirdparty)
ie_developer_export_targets(pugixml)
if(TARGET pugixml_mt)
ie_developer_export_targets(pugixml_mt)
set_target_properties(pugixml_mt PROPERTIES FOLDER thirdparty)
endif()
endif() endif()
if(ENABLE_MKL_DNN) add_subdirectory(clDNN)
set(SDL_cmake_included ON)
include(mkldnn.cmake) # disable CLDNN docs build
endif() set_target_properties(docs PROPERTIES EXCLUDE_FROM_ALL ON FOLDER docs)
endif()
function(ie_build_pugixml)
set(BUILD_TESTS_current ${BUILD_TESTS})
set(BUILD_TESTS OFF CACHE BOOL "Build tests" FORCE)
add_subdirectory(pugixml)
set(BUILD_TESTS ${BUILD_TESTS_current} CACHE BOOL "Build tests" FORCE)
endfunction() endfunction()
build_with_lto() if (USE_SYSTEM_PUGIXML)
find_package(PugiXML REQUIRED)
set_property(TARGET pugixml PROPERTY IMPORTED_GLOBAL TRUE)
else()
ie_build_pugixml()
target_include_directories(pugixml INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/pugixml/src>")
endif()
add_subdirectory(stb_lib)
add_subdirectory(ade)
add_subdirectory(fluid/modules/gapi)
set_target_properties(ade fluid stb_image PROPERTIES FOLDER thirdparty)
# developer package
ie_developer_export_targets(ade fluid)
if (NOT USE_SYSTEM_PUGIXML)
set_target_properties(pugixml PROPERTIES FOLDER thirdparty)
ie_developer_export_targets(pugixml)
if(TARGET pugixml_mt)
ie_developer_export_targets(pugixml_mt)
set_target_properties(pugixml_mt PROPERTIES FOLDER thirdparty)
endif()
endif()
if(ENABLE_MKL_DNN)
set(SDL_cmake_included ON)
include(mkldnn.cmake)
endif()

View File

@ -10,7 +10,7 @@ if (ENABLE_MYRIAD)
endif() endif()
# LTO usage leads to a linker fail on CentOS with the old 4.8.5 compiler during XLinkTests # LTO usage leads to a linker fail on CentOS with the old 4.8.5 compiler during XLinkTests
if(ENABLE_LTO AND NOT ENABLE_TESTS AND NOT XLINK_OLD_48_COMPILER) if(ENABLE_LTO AND NOT ENABLE_TESTS AND NOT XLINK_OLD_48_COMPILER)
ie_enable_lto() set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO})
endif() endif()
set(XLINK_DIR "${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/XLink" CACHE PATH "path to Xlink") set(XLINK_DIR "${IE_MAIN_SOURCE_DIR}/thirdparty/movidius/XLink" CACHE PATH "path to Xlink")

View File

@ -20,27 +20,13 @@ include(FetchContent)
# Download and install Google Protobuf ... # Download and install Google Protobuf ...
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Since this file is going to be modifying CMAKE_*_FLAGS we need to preserve set(PUSH_CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE "${CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE}")
# it so we won't overwrite the caller's CMAKE_*_FLAGS set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE OFF)
set(PUSH_CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
set(PUSH_CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(PUSH_CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
set(PUSH_CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(PUSH_CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
set(PUSH_CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE}")
set(CMAKE_CXX_FLAGS ${CMAKE_ORIGINAL_CXX_FLAGS})
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_ORIGINAL_CXX_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_ORIGINAL_C_FLAGS_RELEASE}")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_ORIGINAL_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_ORIGINAL_SHARED_LINKER_FLAGS_RELEASE}")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_ORIGINAL_MODULE_LINKER_FLAGS_RELEASE}")
if (MSVC) if (MSVC)
string(REPLACE "/W3" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "") set(protobuf_MSVC_STATIC_RUNTIME OFF CACHE BOOL "")
else() else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -fno-lto") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error")
endif() endif()
# This version of PROTOBUF is required by Microsoft ONNX Runtime. # This version of PROTOBUF is required by Microsoft ONNX Runtime.
@ -168,10 +154,5 @@ else()
endif() endif()
endif() endif()
# Now make sure we restore the original CMAKE_*_FLAGS for the caller # Now make sure we restore the original flags
set(CMAKE_CXX_FLAGS ${PUSH_CMAKE_CXX_FLAGS}) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE "${PUSH_CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE}")
set(CMAKE_CXX_FLAGS_RELEASE "${PUSH_CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_C_FLAGS_RELEASE "${PUSH_CMAKE_C_FLAGS_RELEASE}")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${PUSH_CMAKE_EXE_LINKER_FLAGS_RELEASE}")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${PUSH_CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${PUSH_CMAKE_MODULE_LINKER_FLAGS_RELEASE}")