Made OpenVINO cmake scripts Linux flavors agnostic (#14384)

* Use prebuilt cmake in install-dependencies steps

* Removed building of custom python to save Azure CI time

* Adjusted conditions in cmake

* Download VPU custom kernels compiler only for x86

* Removed -pyver argument

* Improvements

* Detect glibc version

* Usage of new glic variable

* Fixed typo

* Increased glibc version for MYRIAD case

* Made OpenVINO cmake Linux flavors agnostic

* Detect glibc version on RedHat

* Use clcompiler only since ubuntu 18.04

* Universal way to detect glibc version

* Revert some changes

* Apply suggestions from code review

fixes issue with GNA

* Apply suggestions from code review

fixed typo
This commit is contained in:
Ilya Lavrenov 2022-12-04 22:55:52 +04:00 committed by GitHub
parent 3caebffa5c
commit 6dd8a93735
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 128 additions and 87 deletions

View File

@ -50,6 +50,8 @@ message (STATUS "CMAKE_C_COMPILER_ID ................... " ${CMAKE_C_COMPILER_ID
message (STATUS "CMAKE_CXX_COMPILER_ID ................. " ${CMAKE_CXX_COMPILER_ID})
message (STATUS "CMAKE_BUILD_TYPE ...................... " ${CMAKE_BUILD_TYPE})
message (STATUS "CMAKE_TOOLCHAIN_FILE .................. " ${CMAKE_TOOLCHAIN_FILE})
message (STATUS "GLIBC_VERSION....... .................. " ${OV_GLIBC_VERSION})
# remove file with exported developer targets to force its regeneration
file(REMOVE "${CMAKE_BINARY_DIR}/ngraphTargets.cmake")

View File

@ -106,7 +106,7 @@ function(ov_download_tbb)
ENVIRONMENT "TBBROOT"
SHA256 "01cac3cc48705bd52b83a6e1fa1ed95c708928be76160f5b9c5c37f954d56df4"
USE_NEW_LOCATION TRUE)
elseif(ANDROID AND X86_64) # Should be before LINUX due LINUX is detected as well
elseif(ANDROID AND X86_64)
RESOLVE_DEPENDENCY(TBB
ARCHIVE_ANDROID "tbb2020_20200404_android.tgz"
TARGET_PATH "${TEMP}/tbb"
@ -185,7 +185,7 @@ function(ov_download_tbbbind_2_5)
TARGET_PATH "${TEMP}/tbbbind_2_5"
ENVIRONMENT "TBBBIND_2_5_ROOT"
SHA256 "a67afeea8cf194f97968c800dab5b5459972908295242e282045d6b8953573c1")
elseif((LINUX AND NOT ANDROID) AND X86_64)
elseif(LINUX AND X86_64)
RESOLVE_DEPENDENCY(TBBBIND_2_5
ARCHIVE_LIN "tbbbind_2_5_static_lin_v2.tgz"
TARGET_PATH "${TEMP}/tbbbind_2_5"
@ -253,34 +253,28 @@ if(ENABLE_OPENCV)
if(YOCTO_AARCH64)
set(OPENCV_SUFFIX "yocto_kmb")
set(OPENCV_BUILD "${OPENCV_BUILD_YOCTO}")
elseif(ARM)
set(OPENCV_SUFFIX "debian9arm")
set(OPENCV_HASH "4274f8c40b17215f4049096b524e4a330519f3e76813c5a3639b69c48633d34e")
elseif((LINUX_OS_NAME STREQUAL "CentOS 7" OR
CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9") AND X86_64)
elseif((OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.17 AND
CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9") AND X86_64)
set(OPENCV_SUFFIX "centos7")
set(OPENCV_HASH "5fa76985c84fe7c64531682ef0b272510c51ac0d0565622514edf1c88b33404a")
elseif((LINUX_OS_NAME STREQUAL "CentOS 8" OR
LINUX_OS_NAME STREQUAL "CentOS 9") AND X86_64)
set(OPENCV_SUFFIX "centos8")
set(OPENCV_HASH "db087dfd412eedb8161636ec083ada85ff278109948d1d62a06b0f52e1f04202")
elseif(LINUX_OS_NAME STREQUAL "Ubuntu 16.04" AND X86_64)
set(OPENCV_SUFFIX "ubuntu16")
set(OPENCV_HASH "cd46831b4d8d1c0891d8d22ff5b2670d0a465a8a8285243059659a50ceeae2c3")
elseif(LINUX_OS_NAME STREQUAL "Ubuntu 18.04" AND X86_64)
set(OPENCV_SUFFIX "ubuntu18")
set(OPENCV_HASH "db087dfd412eedb8161636ec083ada85ff278109948d1d62a06b0f52e1f04202")
elseif((LINUX_OS_NAME STREQUAL "Ubuntu 20.04" OR
LINUX_OS_NAME STREQUAL "Ubuntu 20.10" OR
LINUX_OS_NAME STREQUAL "Ubuntu 21.04" OR
LINUX_OS_NAME STREQUAL "Ubuntu 21.10" OR
LINUX_OS_NAME STREQUAL "Ubuntu 22.04" OR
LINUX_OS_NAME STREQUAL "Ubuntu 22.10" OR
LINUX_OS_NAME STREQUAL "LinuxMint 20.1") AND X86_64)
elseif(OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.31 AND X86_64)
set(OPENCV_SUFFIX "ubuntu20")
set(OPENCV_HASH "2fe7bbc40e1186eb8d099822038cae2821abf617ac7a16fadf98f377c723e268")
elseif(OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.27 AND X86_64)
set(OPENCV_SUFFIX "ubuntu18")
set(OPENCV_HASH "db087dfd412eedb8161636ec083ada85ff278109948d1d62a06b0f52e1f04202")
elseif(OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.24 AND ARM)
set(OPENCV_SUFFIX "debian9arm")
set(OPENCV_HASH "4274f8c40b17215f4049096b524e4a330519f3e76813c5a3639b69c48633d34e")
elseif(OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.23 AND X86_64)
set(OPENCV_SUFFIX "ubuntu16")
set(OPENCV_HASH "cd46831b4d8d1c0891d8d22ff5b2670d0a465a8a8285243059659a50ceeae2c3")
# elseif((LINUX_OS_NAME STREQUAL "CentOS 8" OR
# LINUX_OS_NAME STREQUAL "CentOS 9") AND X86_64)
# set(OPENCV_SUFFIX "centos8")
# set(OPENCV_HASH "db087dfd412eedb8161636ec083ada85ff278109948d1d62a06b0f52e1f04202")
elseif(NOT DEFINED OpenCV_DIR AND NOT DEFINED ENV{OpenCV_DIR})
message(FATAL_ERROR "OpenCV is not available on current platform (${LINUX_OS_NAME})")
message(FATAL_ERROR "OpenCV is not available on current platform (OS = ${CMAKE_SYSTEM_NAME}, glibc ${OV_GLIBC_VERSION})")
endif()
RESOLVE_DEPENDENCY(OPENCV
ARCHIVE_LIN "opencv/opencv_${OPENCV_VERSION}-${OPENCV_BUILD}_${OPENCV_SUFFIX}.txz"

View File

@ -313,7 +313,7 @@ if(WIN32)
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
else()
if (CMAKE_COMPILE_WARNING_AS_ERROR AND CMAKE_VERSION VERSION_LESS 3.24)
if(CMAKE_COMPILE_WARNING_AS_ERROR AND CMAKE_VERSION VERSION_LESS 3.24)
# TODO: enable for C sources as well
# ie_add_compiler_flags(-Werror)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
@ -324,9 +324,9 @@ else()
ie_add_compiler_flags(-Wreturn-type)
ie_add_compiler_flags(-Wunused-variable)
if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
if(OV_COMPILER_IS_APPLECLANG)
ie_add_compiler_flags(-Wswitch)
elseif(UNIX)
else()
ie_add_compiler_flags(-Wuninitialized -Winit-self)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
ie_add_compiler_flags(-Winconsistent-missing-override
@ -353,7 +353,7 @@ else()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-dead_strip")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-dead_strip")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-dead_strip")
elseif(LINUX)
else()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--gc-sections -Wl,--exclude-libs,ALL")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--gc-sections -Wl,--exclude-libs,ALL")
if(NOT ENABLE_FUZZING)
@ -386,7 +386,7 @@ endfunction()
function(ov_try_use_gold_linker)
# gold linker on ubuntu20.04 may fail to link binaries build with sanitizer
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT ENABLE_SANITIZER AND NOT CMAKE_CROSSCOMPILING)
if(CMAKE_COMPILER_IS_GNUCXX AND NOT ENABLE_SANITIZER AND NOT CMAKE_CROSSCOMPILING)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold" PARENT_SCOPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold" PARENT_SCOPE)
endif()

View File

@ -7,7 +7,8 @@ include(target_flags)
# FIXME: there are compiler failures with LTO and Cross-Compile toolchains. Disabling for now, but
# this must be addressed in a proper way
ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF "LINUX OR (APPLE AND AARCH64);NOT CMAKE_CROSSCOMPILING;CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9" OFF)
ie_dependent_option (ENABLE_LTO "Enable Link Time Optimization" OFF
"LINUX OR (APPLE AND AARCH64);NOT CMAKE_CROSSCOMPILING;CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.9" OFF)
ie_option (OS_FOLDER "create OS dedicated folder in output" OFF)
@ -87,8 +88,8 @@ if(ENABLE_AVX512F)
if ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6))
set(ENABLE_AVX512F OFF CACHE BOOL "" FORCE)
endif()
if ((CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10))
# TBD: clarify which AppleClang version supports avx512
if (OV_COMPILER_IS_APPLECLANG AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10)
# TODO: clarify which AppleClang version supports avx512
set(ENABLE_AVX512F OFF CACHE BOOL "" FORCE)
endif()
if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9))

View File

@ -4,9 +4,9 @@
include(target_flags)
if (LINUX)
if(LINUX)
function(get_linux_name res_var)
if (EXISTS "/etc/lsb-release")
if(EXISTS "/etc/lsb-release")
# linux version detection using cat /etc/lsb-release
file(READ "/etc/lsb-release" release_data)
set(name_regex "DISTRIB_ID=([^ \n]*)\n")

View File

@ -69,7 +69,7 @@ elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^riscv64$")
set(HOST_RISCV64 ON)
endif()
if(UNIX AND NOT APPLE)
if(UNIX AND NOT (APPLE OR ANDROID))
set(LINUX ON)
endif()
@ -77,8 +77,50 @@ if(ENV{OECORE_NATIVE_SYSROOT} AND AARCH64)
set(YOCTO_AARCH64 ON)
endif()
if(EXISTS "/etc/debian_version")
set(OV_OS_DEBIAN ON)
elseif(EXISTS "/etc/redhat-release")
set(OV_OS_RHEL ON)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang$")
set(OV_COMPILER_IS_CLANG ON)
if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set(OV_COMPILER_IS_APPLECLANG ON)
endif()
endif()
get_property(OV_GENERATOR_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
function(ov_glibc_version)
if(LINUX)
function(ov_get_definition definition var)
execute_process(COMMAND echo "#include <errno.h>"
COMMAND "${CMAKE_CXX_COMPILER}" -xc - -E -dM
COMMAND grep -E "^#define ${definition} "
OUTPUT_VARIABLE glibc_version_component
ERROR_VARIABLE error_message
RESULT_VARIABLE exit_code
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT exit_code EQUAL 0)
message(FATAL_ERROR "Failed to detect glibc version: ${error_message}\n${glibc_version_component}")
endif()
if(glibc_version_component MATCHES "^#define ${definition} ([0-9]+)")
set("${var}" "${CMAKE_MATCH_1}" PARENT_SCOPE)
else()
message(FATAL_ERROR "Internal error: failed to parse ${definition} from '${glibc_version_component}'")
endif()
endfunction()
ov_get_definition("__GLIBC__" _ov_glibc_major)
ov_get_definition("__GLIBC_MINOR__" _ov_glibc_minor)
set(OV_GLIBC_VERSION "${_ov_glibc_major}.${_ov_glibc_minor}" PARENT_SCOPE)
else()
set(OV_GLIBC_VERSION "0.0" PARENT_SCOPE)
endif()
endfunction()
ov_glibc_version()

View File

@ -33,7 +33,7 @@ function(ieTargetLinkWholeArchive targetName)
"-WHOLEARCHIVE:\"$<TARGET_FILE:${staticLib}>\""
)
endif()
elseif(APPLE)
elseif(OV_COMPILER_IS_APPLECLANG)
list(APPEND libs
"-Wl,-all_load"
${staticLib}

View File

@ -138,6 +138,7 @@ else()
set(ENABLE_SYSTEM_LIBS_DEFAULT OFF)
endif()
# try to search TBB from brew by default
if(APPLE AND AARCH64)
set(ENABLE_SYSTEM_TBB_DEFAULT ON)
else()

View File

@ -320,7 +320,8 @@ macro(ov_cpack_settings)
set(samples_build_deps "cmake, g++, gcc, libc6-dev, make")
set(samples_build_deps_suggest "libopencv-core-dev, libopencv-imgproc-dev, libopencv-imgcodecs-dev")
if(LINUX_OS_NAME MATCHES "^(Ubuntu 18.04|Debian 9)$")
if(OV_GLIBC_VERSION VERSION_LESS_EQUAL 2.27)
# Ubuntu 18.04, Debian 9 cases
set(json_library "nlohmann-json-dev")
else()
set(json_library "nlohmann-json3-dev")

View File

@ -88,6 +88,7 @@ if [ "$os" == "auto" ] ; then
fi
case $os in
centos7|centos8|rhel8|rhel9.1|\
almalinux8.7|\
fedora34|fedora35|fedora36|fedora37|fedora38|\
raspbian9|debian9|ubuntu18.04|\
raspbian10|debian10|ubuntu20.04|ubuntu20.10|ubuntu21.04|\
@ -180,7 +181,8 @@ elif [ "$os" == "ubuntu20.04" ] || [ "$os" == "debian10" ] || [ "$os" == "raspbi
elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] ||
[ "$os" == "rhel8" ] || [ "$os" == "rhel9.1" ] ||
[ "$os" == "fedora34" ] || [ "$os" == "fedora35" ] || [ "$os" == "fedora36" ] ||
[ "$os" == "fedora36" ] || [ "$os" == "fedora38" ] ; then
[ "$os" == "fedora36" ] || [ "$os" == "fedora38" ] ||
[ "$os" == "almalinux8.7" ] ; then
arch=$(uname -m)
pkgs_dev=(gcc gcc-c++ make glibc libstdc++ libgcc cmake3 json-devel.$arch zlib-devel.$arch sudo)
@ -211,7 +213,7 @@ elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] ||
gstreamer1-plugins-bad-free.$arch
)
extra_repos+=(https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm)
elif [ "$os" == "centos8" ] || [ "$os" == "rhel8" ] ; then
elif [ "$os" == "centos8" ] || [ "$os" == "rhel8"] || [ "$os" == "almalinux8.7" ] ; then
pkgs_core+=(
https://vault.centos.org/centos/8/AppStream/$arch/os/Packages/tbb-2018.2-9.el8.$arch.rpm
https://download-ib01.fedoraproject.org/pub/epel/8/Everything/$arch/Packages/p/pugixml-1.13-1.el8.$arch.rpm
@ -320,7 +322,8 @@ if [ "$os" == "debian9" ] || [ "$os" == "raspbian9" ] || [ "$os" == "ubuntu18.04
elif [ "$os" == "centos7" ] || [ "$os" == "centos8" ] ||
[ "$os" == "rhel8" ] || [ "$os" == "rhel9.1" ] ||
[ "$os" == "fedora34" ] || [ "$os" == "fedora35" ] || [ "$os" == "fedora36" ] ||
[ "$os" == "fedora36" ] || [ "$os" == "fedora38" ] ; then
[ "$os" == "fedora36" ] || [ "$os" == "fedora38" ] ||
[ "$os" == "almalinux8.7" ] ; then
[ -z "$interactive" ] && iopt="--assumeyes"
[ -n "$dry" ] && iopt="--downloadonly"

View File

@ -37,7 +37,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
add_compile_options(/wd4244)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(-Wno-deprecated-register -Wno-range-loop-analysis)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
elseif(OV_COMPILER_IS_APPLECLANG)
add_link_options(-stdlib=libc++)
add_compile_options(-Wno-unused-value -Wno-range-loop-analysis)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")

View File

@ -32,7 +32,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
add_compile_options(/wd4244)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
add_compile_options(-Wno-deprecated-register -Wno-range-loop-analysis)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
elseif(OV_COMPILER_IS_APPLECLANG)
add_link_options(-stdlib=libc++)
add_compile_options(-Wno-unused-value -Wno-range-loop-analysis)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
@ -40,7 +40,7 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
add_compile_options(-Wno-error=attributes)
endif()
if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
if(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG)
# for proper fix need to update pybind to version which does not use PyEval_InitThreads()
add_compile_options(-Wno-deprecated-declarations -Wno-undef)
endif()

View File

@ -79,6 +79,10 @@ macro(_ov_platform_arch)
set(_arch "x86_64")
elseif(X86)
set(_arch "i686")
elseif(RISCV64)
set(_arch "riscv64")
else()
message(FATAL_ERROR "Unknown architecture: ${CMAKE_SYSTEM_PROCESSOR}")
endif()
endmacro()
@ -100,23 +104,12 @@ if(APPLE AND DEFINED CMAKE_OSX_DEPLOYMENT_TARGET)
elseif(LINUX)
_ov_platform_arch()
execute_process(COMMAND ldd --version
OUTPUT_VARIABLE _libc_version
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(_libc_version MATCHES ".*([0-9]+)\\.([0-9]+).*")
set(_libc_major "${CMAKE_MATCH_1}")
set(_libc_minor "${CMAKE_MATCH_2}")
endif()
# common pattern manylinux_<libc major>_<libc minor>_<arch>
if(_libc_major AND _libc_minor AND _arch)
if(CMAKE_CROSSCOMPILING)
# TODO: think which proper tag is needed for arm / aarch64
set(PLATFORM_TAG "linux_${_arch}")
else()
set(PLATFORM_TAG "manylinux_${_libc_major}_${_libc_minor}_${_arch}")
endif()
if(CMAKE_CROSSCOMPILING)
# TODO: think which proper tag is needed for arm / aarch64
set(PLATFORM_TAG "linux_${_arch}")
else()
string(REPLACE "." "_" _ov_glibc_version "${OV_GLIBC_VERSION}")
set(PLATFORM_TAG "manylinux_${_ov_glibc_version}_${_arch}")
endif()
endif()

View File

@ -92,7 +92,13 @@ if(THREADING MATCHES "^(TBB|TBB_AUTO)$" AND
set(tbb_custom ON)
endif()
if(CPACK_GENERATOR MATCHES "^(DEB|RPM|CONDA-FORGE|BREW)$" AND NOT ENABLE_SYSTEM_TBB AND NOT LINUX_OS_NAME STREQUAL "CentOS 7")
if(OV_GLIBC_VERSION VERSION_LESS_EQUAL 2.24)
set(_ov_system_tbb_is_obsolete ON)
endif()
if(CPACK_GENERATOR MATCHES "^(DEB|RPM|CONDA-FORGE|BREW)$" AND
NOT ENABLE_SYSTEM_TBB AND
NOT _ov_system_tbb_is_obsolete)
message(FATAL_ERROR "Debian | RPM | Conda-forge | Brew packages can be built only with system TBB. Use -DENABLE_SYSTEM_TBB=ON")
endif()

View File

@ -146,16 +146,17 @@ target_include_directories(ov_onnx_frontend_tests
target_compile_definitions(ov_onnx_frontend_tests PRIVATE $<TARGET_PROPERTY:onnx,INTERFACE_COMPILE_DEFINITIONS>)
target_compile_definitions(ov_onnx_frontend_tests PRIVATE ENABLE_OV_ONNX_FRONTEND)
if (OV_COMPILER_IS_CLANG)
if(OV_COMPILER_IS_CLANG)
target_compile_options(ov_onnx_frontend_tests PRIVATE -Wno-undef -Wno-reserved-id-macro)
endif()
target_include_directories(ov_onnx_frontend_tests PRIVATE
$<TARGET_PROPERTY:openvino_onnx_frontend,INCLUDE_DIRECTORIES>)
if (LINUX)
target_link_options(ov_onnx_frontend_tests PRIVATE -Wl,--exclude-libs,ALL)
elseif(APPLE)
if(OV_COMPILER_IS_APPLECLANG)
target_link_options(ov_onnx_frontend_tests PRIVATE -Wl,-dead_strip)
elseif(CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG)
target_link_options(ov_onnx_frontend_tests PRIVATE -Wl,--exclude-libs,ALL)
endif()
install(TARGETS ov_onnx_frontend_tests

View File

@ -22,10 +22,11 @@ ov_add_test_target(
)
# Test model generating
ov_check_pip_package(REQUIREMENT tensorflow
MESSAGE_MODE WARNING
WARNING_MESSAGE "TensorFlow frontend unit tests will be skipped"
RESULT_VAR tensorflow_FOUND)
ov_check_pip_packages(REQUIREMENTS_FILE "${CMAKE_CURRENT_SOURCE_DIR}/requirements.txt"
MESSAGE_MODE WARNING
WARNING_MESSAGE "TensorFlow frontend unit tests will be skipped"
RESULT_VAR tensorflow_FOUND)
set(TEST_TENSORFLOW_MODELS_DIRNAME test_model_zoo/tensorflow_test_models)
target_compile_definitions(${TARGET_NAME} PRIVATE -D TEST_TENSORFLOW_MODELS_DIRNAME=\"${TEST_TENSORFLOW_MODELS_DIRNAME}/\")

View File

@ -44,22 +44,20 @@ file (GLOB LIBRARY_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp
)
if (LINUX)
file (GLOB LIBRARY_SRC
${LIBRARY_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.cpp)
file (GLOB LIBRARY_HEADERS
${LIBRARY_HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.hpp)
endif()
if (WIN32)
if(WIN32)
file (GLOB LIBRARY_SRC
${LIBRARY_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/win/*.cpp)
file (GLOB LIBRARY_HEADERS
${LIBRARY_HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/win/*.hpp)
elseif(NOT APPLE)
file (GLOB LIBRARY_SRC
${LIBRARY_SRC}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.cpp)
file (GLOB LIBRARY_HEADERS
${LIBRARY_HEADERS}
${CMAKE_CURRENT_SOURCE_DIR}/src/os/lin/*.hpp)
endif()
if(ENABLE_SSE42)

View File

@ -115,10 +115,7 @@ endif()
# OpenCL compiler
#
if(LINUX AND NOT ARM
AND NOT AARCH64
AND LINUX_OS_NAME MATCHES "(Ubuntu|Debian)")
if(LINUX AND HOST_X86_64 AND OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.27)
if(DEFINED ENV{THIRDPARTY_SERVER_PATH})
set(IE_PATH_TO_DEPS "$ENV{THIRDPARTY_SERVER_PATH}")
elseif(DEFINED THIRDPARTY_SERVER_PATH)

View File

@ -42,7 +42,8 @@ target_link_libraries(${TARGET_NAME}
mvnc inference_engine_legacy vpu_graph_transformer)
# MyriadPlugin is not safe to unload it at runtime
if((LINUX AND LINUX_OS_NAME MATCHES "Ubuntu") OR ARM)
# see https://github.com/openvinotoolkit/openvino/pull/4807
if(LINUX AND OV_GLIBC_VERSION VERSION_GREATER_EQUAL 2.24)
set_target_properties(${TARGET_NAME} PROPERTIES LINK_OPTIONS "-Wl,-z,nodelete")
endif()

View File

@ -187,9 +187,9 @@ endif()
if(ENABLE_SAMPLES OR ENABLE_COMPILE_TOOL OR ENABLE_TESTS)
if(LINUX)
if(LINUX_OS_NAME MATCHES "(Fedora|CentOS)")
if(OV_OS_RHEL)
set(gflag_component nothreads_shared)
elseif(LINUX_OS_NAME MATCHES "(Ubuntu|Debian)")
elseif(OV_OS_DEBIAN)
set(gflag_component nothreads_static)
endif()
find_package(gflags QUIET OPTIONAL_COMPONENTS ${gflag_component})