diff --git a/CMakeLists.txt b/CMakeLists.txt index 061eac8fdc2..37f336697f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index 39ef4459fe0..565584fa750 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -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" diff --git a/cmake/developer_package/compile_flags/os_flags.cmake b/cmake/developer_package/compile_flags/os_flags.cmake index 8bf0387d766..1c3143beb87 100644 --- a/cmake/developer_package/compile_flags/os_flags.cmake +++ b/cmake/developer_package/compile_flags/os_flags.cmake @@ -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() diff --git a/cmake/developer_package/features.cmake b/cmake/developer_package/features.cmake index d3247b71599..3b4295383cc 100644 --- a/cmake/developer_package/features.cmake +++ b/cmake/developer_package/features.cmake @@ -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)) diff --git a/cmake/developer_package/linux_name.cmake b/cmake/developer_package/linux_name.cmake index 5903f9550e5..3e8c775770b 100644 --- a/cmake/developer_package/linux_name.cmake +++ b/cmake/developer_package/linux_name.cmake @@ -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") diff --git a/cmake/developer_package/target_flags.cmake b/cmake/developer_package/target_flags.cmake index 2cab5281b0e..62831fffabc 100644 --- a/cmake/developer_package/target_flags.cmake +++ b/cmake/developer_package/target_flags.cmake @@ -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 " + 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() diff --git a/cmake/developer_package/whole_archive.cmake b/cmake/developer_package/whole_archive.cmake index 2b13766983c..cefe092e150 100644 --- a/cmake/developer_package/whole_archive.cmake +++ b/cmake/developer_package/whole_archive.cmake @@ -33,7 +33,7 @@ function(ieTargetLinkWholeArchive targetName) "-WHOLEARCHIVE:\"$\"" ) endif() - elseif(APPLE) + elseif(OV_COMPILER_IS_APPLECLANG) list(APPEND libs "-Wl,-all_load" ${staticLib} diff --git a/cmake/features.cmake b/cmake/features.cmake index 230a7c0b77b..6e1af7c367b 100644 --- a/cmake/features.cmake +++ b/cmake/features.cmake @@ -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() diff --git a/cmake/packaging/debian.cmake b/cmake/packaging/debian.cmake index 8e7ad277e26..1448ef1e66e 100644 --- a/cmake/packaging/debian.cmake +++ b/cmake/packaging/debian.cmake @@ -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") diff --git a/scripts/install_dependencies/install_openvino_dependencies.sh b/scripts/install_dependencies/install_openvino_dependencies.sh index f2d056a69c5..508c68406a0 100755 --- a/scripts/install_dependencies/install_openvino_dependencies.sh +++ b/scripts/install_dependencies/install_openvino_dependencies.sh @@ -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" diff --git a/src/bindings/python/src/compatibility/pyngraph/CMakeLists.txt b/src/bindings/python/src/compatibility/pyngraph/CMakeLists.txt index a47861df7ae..595d27de11f 100644 --- a/src/bindings/python/src/compatibility/pyngraph/CMakeLists.txt +++ b/src/bindings/python/src/compatibility/pyngraph/CMakeLists.txt @@ -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") diff --git a/src/bindings/python/src/pyopenvino/CMakeLists.txt b/src/bindings/python/src/pyopenvino/CMakeLists.txt index 6001205940b..689d4d774eb 100644 --- a/src/bindings/python/src/pyopenvino/CMakeLists.txt +++ b/src/bindings/python/src/pyopenvino/CMakeLists.txt @@ -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() diff --git a/src/bindings/python/wheel/CMakeLists.txt b/src/bindings/python/wheel/CMakeLists.txt index dca9f6f0c9c..d3de1c6ae05 100644 --- a/src/bindings/python/wheel/CMakeLists.txt +++ b/src/bindings/python/wheel/CMakeLists.txt @@ -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___ - 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() diff --git a/src/cmake/install_tbb.cmake b/src/cmake/install_tbb.cmake index b8ff3113312..1f296291766 100644 --- a/src/cmake/install_tbb.cmake +++ b/src/cmake/install_tbb.cmake @@ -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() diff --git a/src/frontends/onnx/tests/CMakeLists.txt b/src/frontends/onnx/tests/CMakeLists.txt index 30ec52f5052..7517505ef3e 100644 --- a/src/frontends/onnx/tests/CMakeLists.txt +++ b/src/frontends/onnx/tests/CMakeLists.txt @@ -146,16 +146,17 @@ target_include_directories(ov_onnx_frontend_tests target_compile_definitions(ov_onnx_frontend_tests PRIVATE $) 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 $) -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 diff --git a/src/frontends/tensorflow/tests/CMakeLists.txt b/src/frontends/tensorflow/tests/CMakeLists.txt index aaab86343e1..5b5dfe10f5b 100644 --- a/src/frontends/tensorflow/tests/CMakeLists.txt +++ b/src/frontends/tensorflow/tests/CMakeLists.txt @@ -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}/\") diff --git a/src/inference/CMakeLists.txt b/src/inference/CMakeLists.txt index bcb21dc32a1..55ac03db75d 100644 --- a/src/inference/CMakeLists.txt +++ b/src/inference/CMakeLists.txt @@ -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) diff --git a/src/plugins/intel_myriad/myriad_dependencies.cmake b/src/plugins/intel_myriad/myriad_dependencies.cmake index 8eb21f39c4c..554f1c0e572 100644 --- a/src/plugins/intel_myriad/myriad_dependencies.cmake +++ b/src/plugins/intel_myriad/myriad_dependencies.cmake @@ -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) diff --git a/src/plugins/intel_myriad/myriad_plugin/CMakeLists.txt b/src/plugins/intel_myriad/myriad_plugin/CMakeLists.txt index 5fe1adf8366..aabf37212d7 100644 --- a/src/plugins/intel_myriad/myriad_plugin/CMakeLists.txt +++ b/src/plugins/intel_myriad/myriad_plugin/CMakeLists.txt @@ -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() diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 9796d67ae2a..1c9e5c89229 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -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})