Unified cmake find_host_package and other host commands (#17662)
* Unified cmake find_host_package and other host commands * should work * Moved files
This commit is contained in:
parent
e09b1a9fa2
commit
02b848d0b8
|
@ -9,67 +9,3 @@ set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
|
|||
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
|
||||
set(CMAKE_STRIP arm-linux-gnueabihf-strip)
|
||||
set(PKG_CONFIG_EXECUTABLE arm-linux-gnueabihf-pkg-config CACHE PATH "Path to ARM pkg-config")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
macro(__cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__save_${v}})
|
||||
unset(__save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
|
||||
# macro to find programs on the host OS
|
||||
macro(find_host_program)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_program(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
macro(find_host_package)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
|
|
@ -9,67 +9,3 @@ set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
|
|||
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
|
||||
set(CMAKE_STRIP aarch64-linux-gnu-strip)
|
||||
set(PKG_CONFIG_EXECUTABLE aarch64-linux-gnu-pkg-config CACHE PATH "Path to ARM64 pkg-config")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
macro(__cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__save_${v}})
|
||||
unset(__save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
|
||||
# macro to find programs on the host OS
|
||||
macro(find_host_program)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_program(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
macro(find_host_package)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
|
|
@ -8,6 +8,12 @@ if(NOT DEFINED IEDevScripts_DIR)
|
|||
message(FATAL_ERROR "IEDevScripts_DIR is not defined")
|
||||
endif()
|
||||
|
||||
macro(ov_set_if_not_defined var value)
|
||||
if(NOT DEFINED ${var})
|
||||
set(${var} ${value})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
set(CMAKE_MODULE_PATH "${IEDevScripts_DIR}")
|
||||
|
||||
|
@ -71,23 +77,8 @@ endfunction()
|
|||
# For cross-compilation
|
||||
#
|
||||
|
||||
# Search packages for the host system instead of packages for the target system
|
||||
# in case of cross compilation these macros should be defined by the toolchain file
|
||||
if(NOT COMMAND find_host_package)
|
||||
macro(find_host_package)
|
||||
find_package(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_library)
|
||||
macro(find_host_library)
|
||||
find_library(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_program)
|
||||
macro(find_host_program)
|
||||
find_program(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
include(cross_compile/find_commands)
|
||||
include(cross_compile/native_compile)
|
||||
|
||||
#
|
||||
# Common scripts
|
||||
|
@ -166,12 +157,6 @@ else()
|
|||
endif()
|
||||
add_definitions(-DIE_BUILD_POSTFIX=\"${IE_BUILD_POSTFIX}\")
|
||||
|
||||
macro(ov_set_if_not_defined var value)
|
||||
if(NOT DEFINED ${var})
|
||||
set(${var} ${value})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
|
||||
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
|
||||
ov_set_if_not_defined(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
|
||||
|
@ -312,7 +297,6 @@ function(ov_mark_target_as_cc)
|
|||
endfunction()
|
||||
|
||||
include(python_requirements)
|
||||
include(native_compile)
|
||||
|
||||
# Code style utils
|
||||
|
||||
|
|
160
cmake/developer_package/cross_compile/find_commands.cmake
Normal file
160
cmake/developer_package/cross_compile/find_commands.cmake
Normal file
|
@ -0,0 +1,160 @@
|
|||
# Copyright (C) 2018-2023 Intel Corporation
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Search packages for the host system instead of packages for the target system
|
||||
# in case of cross compilation these macros should be defined by the toolchain file
|
||||
|
||||
if(CMAKE_CROSSCOMPILING AND NOT (OV_ARCH STREQUAL OV_HOST_ARCH AND
|
||||
CMAKE_SYSTEM_NAME STREQUAL CMAKE_HOST_SYSTEM_NAME))
|
||||
# don't look at directories which are part of PATH (with removed bin / sbin at the end)
|
||||
# like /opt/homebrew on macOS where we cannot use system env path, because brew's
|
||||
# dependencies will be found, but at the same time we need to find flatbufffers and
|
||||
# other build system dependencies
|
||||
# ov_set_if_not_defined(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF)
|
||||
ov_set_if_not_defined(CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY OFF)
|
||||
# it contains /usr and if we set this var to OFF, then CMAKE_FIND_ROOT_PATH is ignored
|
||||
# ov_set_if_not_defined(CMAKE_FIND_USE_CMAKE_SYSTEM_PATH OFF)
|
||||
if(LINUX)
|
||||
# set root paths (overridden to /usr/lib/<CMAKE_LIBRARY_ARCHITECTURE>/cmake)
|
||||
# CMAKE_LIBRARY_ARCHITECTURE is defined automatically by cmake after trying the compilers
|
||||
# ov_set_if_not_defined(CMAKE_FIND_ROOT_PATH "/usr")
|
||||
endif()
|
||||
|
||||
# controling CMAKE_FIND_ROOT_PATH usage
|
||||
ov_set_if_not_defined(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
ov_set_if_not_defined(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
ov_set_if_not_defined(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
ov_set_if_not_defined(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
endif()
|
||||
|
||||
macro(__ov_cmake_find_system_path_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
|
||||
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY
|
||||
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
|
||||
)
|
||||
if(DEFINED ${v})
|
||||
set(__ov_save_${v} ${${v}})
|
||||
else()
|
||||
set(__ov_save_${v} ON)
|
||||
endif()
|
||||
set(${v} ON)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__ov_cmake_find_system_path_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
|
||||
CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY
|
||||
CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
|
||||
)
|
||||
set(${v} ${__ov_save_${v}})
|
||||
unset(__ov_save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__ov_cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__ov_save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__ov_cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__ov_save_${v}})
|
||||
unset(__ov_save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__ov_cmake_target_flags_save_and_reset)
|
||||
foreach(v WIN32 UNIX LINUX APPLE ANDROID BSD)
|
||||
set(__ov_target_save_${v} ${${v}})
|
||||
unset(${v})
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(WIN32 1)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
set(APPLE 1)
|
||||
set(UNIX 1)
|
||||
elseif(CMAKE_HOST_LINUX)
|
||||
set(LINUX 1)
|
||||
set(UNIX 1)
|
||||
elseif(CMAKE_HOST_UNIX)
|
||||
set(UNIX 1)
|
||||
elseif(CMAKE_HOST_BSD)
|
||||
set(BSD 1)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(__ov_cmake_target_flags_restore)
|
||||
foreach(v WIN32 UNIX LINUX APPLE ANDROID BSD)
|
||||
set(${v} ${__ov_target_save_${v}})
|
||||
unset(__ov_target_save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
# macro to find programs on the host OS
|
||||
if(NOT COMMAND find_host_package)
|
||||
macro(find_host_package)
|
||||
__ov_cmake_find_root_save_and_reset()
|
||||
__ov_cmake_target_flags_save_and_reset()
|
||||
__ov_cmake_find_system_path_save_and_reset()
|
||||
find_package(${ARGN})
|
||||
__ov_cmake_find_system_path_restore()
|
||||
__ov_cmake_target_flags_restore()
|
||||
__ov_cmake_find_root_restore()
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_program)
|
||||
macro(find_host_program)
|
||||
__ov_cmake_find_root_save_and_reset()
|
||||
__ov_cmake_target_flags_save_and_reset()
|
||||
__ov_cmake_find_system_path_save_and_reset()
|
||||
find_program(${ARGN})
|
||||
__ov_cmake_find_system_path_restore()
|
||||
__ov_cmake_target_flags_restore()
|
||||
__ov_cmake_find_root_restore()
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_library)
|
||||
macro(find_host_library)
|
||||
__ov_cmake_find_root_save_and_reset()
|
||||
__ov_cmake_target_flags_save_and_reset()
|
||||
__ov_cmake_find_system_path_save_and_reset()
|
||||
find_library(${ARGN})
|
||||
__ov_cmake_find_system_path_restore()
|
||||
__ov_cmake_target_flags_restore()
|
||||
__ov_cmake_find_root_restore()
|
||||
endmacro()
|
||||
endif()
|
||||
else()
|
||||
if(NOT COMMAND find_host_package)
|
||||
macro(find_host_package)
|
||||
find_package(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_program)
|
||||
macro(find_host_program)
|
||||
find_program(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
if(NOT COMMAND find_host_library)
|
||||
macro(find_host_library)
|
||||
find_library(${ARGN})
|
||||
endmacro()
|
||||
endif()
|
||||
endif()
|
|
@ -58,16 +58,22 @@ endif()
|
|||
# Since we were able to find_package(Clang) in a separate process
|
||||
# let's try to find in current process
|
||||
if(ENABLE_NCC_STYLE)
|
||||
if(WIN32)
|
||||
set(CLANG_LIB_NAME libclang.dll)
|
||||
find_host_program(CLANG NAMES ${CLANG_LIB_NAME} PATHS ENV PATH)
|
||||
if(CLANG)
|
||||
set(libclang_location ${CLANG})
|
||||
endif()
|
||||
elseif(APPLE)
|
||||
if(CMAKE_HOST_WIN32)
|
||||
find_host_program(libclang_location NAMES libclang.dll
|
||||
PATHS $ENV{PATH}
|
||||
NO_CMAKE_FIND_ROOT_PATH)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
set(_old_CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES})
|
||||
set(_old_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib")
|
||||
find_host_library(libclang_location NAMES clang
|
||||
PATHS /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
|
||||
DOC "Path to clang library")
|
||||
DOC "Path to clang library"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CMAKE_FIND_ROOT_PATH)
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES ${_old_CMAKE_FIND_LIBRARY_PREFIXES})
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_old_CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
else()
|
||||
find_host_package(Clang QUIET)
|
||||
endif()
|
||||
|
|
|
@ -98,9 +98,7 @@ macro(ov_rpm_specific_settings)
|
|||
# use rpmlint to check packages in post-build step
|
||||
set(CPACK_POST_BUILD_SCRIPTS "${IEDevScripts_DIR}/packaging/rpm/post_build.cmake")
|
||||
# enable for debug cpack run
|
||||
if(NOT DEFINED CPACK_RPM_PACKAGE_DEBUG)
|
||||
set(CPACK_RPM_PACKAGE_DEBUG OFF)
|
||||
endif()
|
||||
ov_set_if_not_defined(CPACK_RPM_PACKAGE_DEBUG OFF)
|
||||
|
||||
# naming convention for rpm package files
|
||||
set(CPACK_RPM_FILE_NAME "RPM-DEFAULT")
|
||||
|
|
|
@ -17,59 +17,56 @@ if(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|||
endif()
|
||||
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
set(host_arch_flag X86_64)
|
||||
set(OV_HOST_ARCH X86_64)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*")
|
||||
set(host_arch_flag X86)
|
||||
set(OV_HOST_ARCH X86)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm64.*|aarch64.*|AARCH64.*|ARM64.*)")
|
||||
set(host_arch_flag AARCH64)
|
||||
set(OV_HOST_ARCH AARCH64)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
|
||||
set(host_arch_flag ARM)
|
||||
set(OV_HOST_ARCH ARM)
|
||||
elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^riscv64$")
|
||||
set(host_arch_flag RISCV64)
|
||||
set(OV_HOST_ARCH RISCV64)
|
||||
endif()
|
||||
|
||||
set(HOST_${host_arch_flag} ON)
|
||||
|
||||
macro(_ov_detect_arch_by_processor_type)
|
||||
if(CMAKE_OSX_ARCHITECTURES AND APPLE)
|
||||
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||
set(AARCH64 ON)
|
||||
set(OV_ARCH AARCH64)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
|
||||
set(X86_64 ON)
|
||||
set(OV_ARCH X86_64)
|
||||
elseif(CMAKE_OSX_ARCHITECTURES MATCHES ".*x86_64.*" AND CMAKE_OSX_ARCHITECTURES MATCHES ".*arm64.*")
|
||||
set(UNIVERSAL2 ON)
|
||||
set(OV_ARCH UNIVERSAL2)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported value: CMAKE_OSX_ARCHITECTURES = ${CMAKE_OSX_ARCHITECTURES}")
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
|
||||
set(X86_64 ON)
|
||||
set(OV_ARCH X86_64)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|AMD64.*|wasm")
|
||||
set(X86 ON)
|
||||
set(OV_ARCH X86)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64.*|aarch64.*|AARCH64.*|ARM64.*|armv8)")
|
||||
set(AARCH64 ON)
|
||||
set(OV_ARCH AARCH64)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)")
|
||||
set(ARM ON)
|
||||
set(OV_ARCH ARM)
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64$")
|
||||
set(RISCV64 ON)
|
||||
set(OV_ARCH RISCV64)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(_ov_process_msvc_generator_platform)
|
||||
# if cmake -A <ARM|ARM64|x64|Win32> is passed
|
||||
if(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
|
||||
set(AARCH64 ON)
|
||||
set(OV_ARCH AARCH64)
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM")
|
||||
set(ARM ON)
|
||||
set(OV_ARCH ARM)
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
|
||||
set(X86_64 ON)
|
||||
set(OV_ARCH X86_64)
|
||||
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "Win32")
|
||||
set(X86 ON)
|
||||
set(OV_ARCH X86)
|
||||
else()
|
||||
_ov_detect_arch_by_processor_type()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# TODO: why OpenCV is found by cmake
|
||||
if(MSVC64 OR MINGW64)
|
||||
_ov_process_msvc_generator_platform()
|
||||
elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
|
||||
|
@ -78,6 +75,9 @@ else()
|
|||
_ov_detect_arch_by_processor_type()
|
||||
endif()
|
||||
|
||||
set(HOST_${OV_HOST_ARCH} ON)
|
||||
set(${OV_ARCH} ON)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
||||
set(EMSCRIPTEN ON)
|
||||
endif()
|
||||
|
@ -115,7 +115,7 @@ get_property(OV_GENERATOR_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG
|
|||
|
||||
function(ov_glibc_version)
|
||||
# cmake needs to look at glibc version only when we build for Linux on Linux
|
||||
if(CMAKE_HOST_LINUX AND LINUX)
|
||||
if(LINUX)
|
||||
function(ov_get_definition definition var)
|
||||
execute_process(COMMAND echo "#include <errno.h>"
|
||||
COMMAND "${CMAKE_CXX_COMPILER}" -xc - -E -dM
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR i386)
|
||||
|
||||
set(CMAKE_STRIP i686-linux-gnu-strip)
|
||||
set(PKG_CONFIG_EXECUTABLE i686-linux-gnu-pkg-config CACHE PATH "Path to 32-bits pkg-config")
|
||||
|
||||
set(CMAKE_CXX_FLAGS_INIT "-m32")
|
||||
|
|
|
@ -14,82 +14,6 @@
|
|||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
|
||||
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc-posix)
|
||||
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++-posix)
|
||||
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
|
||||
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
|
||||
set(PKG_CONFIG_EXECUTABLE x86_64-w64-mingw32-pkg-config CACHE PATH "Path to Windows x86_64 pkg-config")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
macro(__cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__save_${v}})
|
||||
unset(__save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
|
||||
# macro to find programs on the host OS
|
||||
macro(find_host_program)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
SET(APPLE)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
SET(WIN32)
|
||||
elseif(CMAKE_HOST_UNIX)
|
||||
SET(UNIX 1)
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
endif()
|
||||
find_program(${ARGN})
|
||||
SET(WIN32 1)
|
||||
SET(APPLE)
|
||||
SET(UNIX)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
macro(find_host_package)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
SET(APPLE)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(WIN32)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_UNIX)
|
||||
SET(UNIX 1)
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
SET(WIN32 1)
|
||||
SET(APPLE)
|
||||
SET(UNIX)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
|
|
@ -35,66 +35,3 @@ set(CMAKE_MODULE_LINKER_FLAGS_INIT "-L${CMAKE_SYSROOT}/lib")
|
|||
|
||||
set(CMAKE_C_STANDARD_LIBRARIES_INIT "-latomic" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "-latomic" CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
macro(__cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__save_${v}})
|
||||
unset(__save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
# macro to find programs on the host OS
|
||||
macro(find_host_program)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_program(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
macro(find_host_package)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
|
|
@ -2,74 +2,13 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Install compiler on debian using:
|
||||
# apt-get install -y gcc-x86-64-linux-gnu g++-x86-64-linux-gnu binutils-x86-64-linux-gnu pkg-config-x86-64-linux-gnu
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR amd64)
|
||||
|
||||
set(CMAKE_C_COMPILER x86_64-linux-gnu-gcc)
|
||||
set(CMAKE_CXX_COMPILER x86_64-linux-gnu-g++)
|
||||
set(CMAKE_STRIP x86_64-linux-gnu-strip)
|
||||
set(PKG_CONFIG_EXECUTABLE "NOT-FOUND" CACHE PATH "Path to amd64 pkg-config")
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
|
||||
macro(__cmake_find_root_save_and_reset)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(__save_${v} ${${v}})
|
||||
set(${v} NEVER)
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
macro(__cmake_find_root_restore)
|
||||
foreach(v
|
||||
CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
)
|
||||
set(${v} ${__save_${v}})
|
||||
unset(__save_${v})
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
|
||||
# macro to find programs on the host OS
|
||||
macro(find_host_program)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_program(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
|
||||
# macro to find packages on the host OS
|
||||
macro(find_host_package)
|
||||
__cmake_find_root_save_and_reset()
|
||||
if(CMAKE_HOST_WIN32)
|
||||
SET(WIN32 1)
|
||||
SET(UNIX)
|
||||
elseif(CMAKE_HOST_APPLE)
|
||||
SET(APPLE 1)
|
||||
SET(UNIX)
|
||||
endif()
|
||||
find_package(${ARGN})
|
||||
SET(WIN32)
|
||||
SET(APPLE)
|
||||
SET(UNIX 1)
|
||||
__cmake_find_root_restore()
|
||||
endmacro()
|
||||
set(PKG_CONFIG_EXECUTABLE x86_64-linux-gnu-pkg-config CACHE PATH "Path to amd64 pkg-config")
|
||||
|
|
|
@ -43,6 +43,12 @@ function(ov_check_python_build_conditions)
|
|||
endif()
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
# since this version pybind11 has PYBIND11_PYTHONLIBS_OVERWRITE option
|
||||
# to properly cross-compile, users need to set:
|
||||
# -DPYTHON_EXECUTABLE=<python interpreter of our choice version 3.X>
|
||||
# -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libc-2.31.so
|
||||
# -DPYTHON_INCLUDE_DIR=<path to includes for python 3.X>
|
||||
# -DPYBIND11_PYTHONLIBS_OVERWRITE=OFF
|
||||
# -DPYTHON_MODULE_EXTENSION=$(aarch64-linux-gnu-python3-config --extension-suffix)
|
||||
set(pybind11_min_version 2.10.1)
|
||||
endif()
|
||||
|
||||
|
@ -51,12 +57,15 @@ function(ov_check_python_build_conditions)
|
|||
if(EXISTS ${pybind11_tools_dir})
|
||||
list(APPEND CMAKE_MODULE_PATH ${pybind11_tools_dir})
|
||||
else()
|
||||
find_package(pybind11 ${pybind11_min_version} QUIET)
|
||||
list(APPEND CMAKE_MODULE_PATH "${pybind11_DIR}")
|
||||
find_host_package(pybind11 ${pybind11_min_version} QUIET)
|
||||
if(pybind11_FOUND)
|
||||
list(APPEND CMAKE_MODULE_PATH "${pybind11_DIR}")
|
||||
endif()
|
||||
endif()
|
||||
# use libraries with the same version as python itself
|
||||
set(PYBIND11_PYTHON_VERSION ${PYTHON_VERSION_STRING})
|
||||
find_package(PythonLibsNew ${PYBIND11_PYTHON_VERSION} EXACT ${find_package_mode})
|
||||
find_host_package(PythonLibsNew ${PYBIND11_PYTHON_VERSION} EXACT
|
||||
${find_package_mode})
|
||||
set(PYTHONLIBSNEW_FOUND ${PYTHONLIBS_FOUND} PARENT_SCOPE)
|
||||
endfunction()
|
||||
# try to find python libraries
|
||||
|
@ -64,7 +73,7 @@ function(ov_check_python_build_conditions)
|
|||
if(PYTHONLIBSNEW_FOUND)
|
||||
# clear Python_ADDITIONAL_VERSIONS to find only python library matching PYTHON_EXECUTABLE
|
||||
unset(Python_ADDITIONAL_VERSIONS CACHE)
|
||||
find_package(PythonLibs ${PYTHON_VERSION_STRING} EXACT ${find_package_mode})
|
||||
find_host_package(PythonLibs ${PYTHON_VERSION_STRING} EXACT ${find_package_mode})
|
||||
endif()
|
||||
if(NOT PYTHONLIBS_FOUND)
|
||||
message(${message_mode} "Python development libraries are not found. OpenVINO Python API will be turned off (ENABLE_PYTHON is OFF)")
|
||||
|
|
|
@ -23,7 +23,7 @@ function(_ov_detect_dynamic_tbbbind_2_5 var)
|
|||
find_file(_ov_tbbbind_2_5
|
||||
NAMES "${CMAKE_SHARED_LIBRARY_PREFIX}tbbbind_2_5${CMAKE_SHARED_LIBRARY_SUFFIX}"
|
||||
HINTS "${_tbb_libs_dir}"
|
||||
"Path to TBBBind 2.5+ library"
|
||||
DOC "Path to TBBBind 2.5+ library"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CMAKE_FIND_ROOT_PATH)
|
||||
|
||||
|
|
|
@ -26,11 +26,10 @@ if(DEFINED INTEL_VTUNE_DIR)
|
|||
message(STATUS "INTEL_VTUNE_DIR = ${INTEL_VTUNE_DIR}")
|
||||
|
||||
find_path(ITT_INCLUDE_DIR ittnotify.h
|
||||
PATHS "${INTEL_VTUNE_DIR}/include/")
|
||||
PATHS "${INTEL_VTUNE_DIR}/include/")
|
||||
|
||||
find_library(ITT_LIB
|
||||
"libittnotify${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
PATHS ${INTEL_VTUNE_DIR}/lib64)
|
||||
find_library(ITT_LIB "${CMAKE_STATIC_LIBRARY_PREFIX}ittnotify${CMAKE_STATIC_LIBRARY_SUFFIX}"
|
||||
PATHS "${INTEL_VTUNE_DIR}/lib64")
|
||||
|
||||
set(Located_ITT_LIBS ${ITT_LIB})
|
||||
set(Located_ITT_INCLUDE_DIRS ${ITT_INCLUDE_DIR})
|
||||
|
|
|
@ -35,7 +35,6 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|||
ie_add_compiler_flags(/wd4297)
|
||||
endif()
|
||||
|
||||
|
||||
file(GLOB_RECURSE SOURCES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
|
||||
|
||||
|
@ -44,9 +43,10 @@ file(GLOB_RECURSE HEADERS
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp)
|
||||
|
||||
find_package(libGNA REQUIRED
|
||||
NO_MODULE
|
||||
CONFIG
|
||||
PATHS "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
|
||||
NO_DEFAULT_PATH)
|
||||
NO_DEFAULT_PATH
|
||||
NO_CMAKE_FIND_ROOT_PATH)
|
||||
|
||||
#
|
||||
# Shared plugin library
|
||||
|
|
4
thirdparty/CMakeLists.txt
vendored
4
thirdparty/CMakeLists.txt
vendored
|
@ -172,7 +172,7 @@ endif()
|
|||
#
|
||||
|
||||
if(ENABLE_SAMPLES OR ENABLE_TESTS)
|
||||
find_package(ZLIB QUIET NO_MODULE)
|
||||
find_package(ZLIB QUIET CONFIG)
|
||||
if(ZLIB_FOUND)
|
||||
# need to make it global to use outside of the current sub-directory
|
||||
set_target_properties(ZLIB::ZLIB PROPERTIES IMPORTED_GLOBAL ON)
|
||||
|
@ -466,7 +466,7 @@ endif()
|
|||
|
||||
if(ENABLE_OV_TF_LITE_FRONTEND)
|
||||
if(ENABLE_SYSTEM_FLATBUFFERS)
|
||||
if(CMAKE_HOST_LINUX AND EMSCRIPTEN)
|
||||
if(CMAKE_HOST_LINUX)
|
||||
set(_old_flat_CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE})
|
||||
# without this WA cmake does not search in <triplet> subfolder
|
||||
# see https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure
|
||||
|
|
Loading…
Reference in New Issue
Block a user