From e1fbb7d76837d1c06edd73549144a0a4350ef27d Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Sun, 5 Mar 2023 10:46:53 +0400 Subject: [PATCH] Fixes for multi-config generators (#16097) --- CMakeLists.txt | 31 +++++++++++++------ .../IEDevScriptsConfig.cmake | 13 +++++--- cmake/developer_package/native_compile.cmake | 10 +++++- .../packaging/packaging.cmake | 3 +- ...renceEngineDeveloperPackageConfig.cmake.in | 3 +- .../OpenVINODeveloperPackageConfig.cmake.in | 3 +- samples/cpp/CMakeLists.txt | 15 +++++++-- scripts/CMakeLists.txt | 18 +++++------ src/bindings/python/CMakeLists.txt | 2 +- .../python/src/pyopenvino/CMakeLists.txt | 23 ++++++++++++-- src/cmake/ie_parallel.cmake | 2 ++ .../intel_gna/src/backend/gna_limitations.cpp | 24 +++++++------- .../intel_gpu/thirdparty/CMakeLists.txt | 10 +++++- thirdparty/CMakeLists.txt | 1 + thirdparty/ocl/CMakeLists.txt | 15 +++------ 15 files changed, 115 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e031ba34aa6..de4f80b8cf9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,10 +19,6 @@ endif() project(OpenVINO DESCRIPTION "OpenVINO toolkit") -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type" FORCE) -endif() - find_package(IEDevScripts REQUIRED PATHS "${OpenVINO_SOURCE_DIR}/cmake/developer_package" NO_CMAKE_FIND_ROOT_PATH @@ -39,7 +35,6 @@ if(ENABLE_COVERAGE) endif() # resolving dependencies for the project -message (STATUS "PROJECT ............................... " ${PROJECT_NAME}) message (STATUS "CMAKE_VERSION ......................... " ${CMAKE_VERSION}) message (STATUS "CMAKE_BINARY_DIR ...................... " ${CMAKE_BINARY_DIR}) message (STATUS "CMAKE_SOURCE_DIR ...................... " ${CMAKE_SOURCE_DIR}) @@ -48,10 +43,28 @@ message (STATUS "OpenVINO_BINARY_DIR ................... " ${OpenVINO_BINARY_DIR message (STATUS "CMAKE_GENERATOR ....................... " ${CMAKE_GENERATOR}) 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}) - +if(OV_GENERATOR_MULTI_CONFIG) + string(REPLACE ";" " " config_types "${CMAKE_CONFIGURATION_TYPES}") + message (STATUS "CMAKE_CONFIGURATION_TYPES ............. " ${config_types}) + unset(config_types) + if(CMAKE_GENERATOR MATCHES "^Ninja Multi-Config$") + message (STATUS "CMAKE_DEFAULT_BUILD_TYPE .............. " ${CMAKE_DEFAULT_BUILD_TYPE}) + endif() +else() + message (STATUS "CMAKE_BUILD_TYPE ...................... " ${CMAKE_BUILD_TYPE}) +endif() +if(CMAKE_GENERATOR_PLATFORM) + message (STATUS "CMAKE_GENERATOR_PLATFORM .............. " ${CMAKE_GENERATOR_PLATFORM}) +endif() +if(CMAKE_GENERATOR_TOOLSET) + message (STATUS "CMAKE_GENERATOR_TOOLSET ............... " ${CMAKE_GENERATOR_TOOLSET}) +endif() +if(CMAKE_TOOLCHAIN_FILE) + message (STATUS "CMAKE_TOOLCHAIN_FILE .................. " ${CMAKE_TOOLCHAIN_FILE}) +endif() +if(OV_GLIBC_VERSION) + message (STATUS "GLIBC_VERSION ......................... " ${OV_GLIBC_VERSION}) +endif() # remove file with exported developer targets to force its regeneration file(REMOVE "${CMAKE_BINARY_DIR}/ngraphTargets.cmake") diff --git a/cmake/developer_package/IEDevScriptsConfig.cmake b/cmake/developer_package/IEDevScriptsConfig.cmake index 10a53477941..a607e36bb29 100644 --- a/cmake/developer_package/IEDevScriptsConfig.cmake +++ b/cmake/developer_package/IEDevScriptsConfig.cmake @@ -111,10 +111,13 @@ else() set(BIN_FOLDER "bin/${ARCH_FOLDER}") endif() -set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type") -set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release;Debug;RelWithDebInfo;MinSizeRel") if(CMAKE_GENERATOR MATCHES "^Ninja Multi-Config$") + # Ninja-Multi specific, see: + # https://cmake.org/cmake/help/latest/variable/CMAKE_DEFAULT_BUILD_TYPE.html set(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "CMake default build type") +elseif(NOT OV_GENERATOR_MULTI_CONFIG) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release;Debug;RelWithDebInfo;MinSizeRel") endif() if(USE_BUILD_TYPE_SUBFOLDER) @@ -152,10 +155,10 @@ set(CMAKE_DEBUG_POSTFIX ${IE_DEBUG_POSTFIX}) set(CMAKE_RELEASE_POSTFIX ${IE_RELEASE_POSTFIX}) # Support CMake multi-configuration for Visual Studio / Ninja or Xcode build -if (OV_GENERATOR_MULTI_CONFIG) +if(OV_GENERATOR_MULTI_CONFIG) set(IE_BUILD_POSTFIX $<$:${IE_DEBUG_POSTFIX}>$<$:${IE_RELEASE_POSTFIX}>) -else () - if (CMAKE_BUILD_TYPE STREQUAL "Debug") +else() + if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(IE_BUILD_POSTFIX ${IE_DEBUG_POSTFIX}) else() set(IE_BUILD_POSTFIX ${IE_RELEASE_POSTFIX}) diff --git a/cmake/developer_package/native_compile.cmake b/cmake/developer_package/native_compile.cmake index 5024eed1146..7b23986ddb8 100644 --- a/cmake/developer_package/native_compile.cmake +++ b/cmake/developer_package/native_compile.cmake @@ -63,6 +63,15 @@ function(ov_native_compile_external_project) set(ARG_NATIVE_SOURCE_SUBDIR SOURCE_SUBDIR ${ARG_NATIVE_SOURCE_SUBDIR}) endif() + if(OV_GENERATOR_MULTI_CONFIG) + if(CMAKE_GENERATOR MATCHES "^Ninja Multi-Config$") + list(APPEND ARG_CMAKE_ARGS "-DCMAKE_CONFIGURATION_TYPES=${CMAKE_DEFAULT_BUILD_TYPE}") + list(APPEND ARG_CMAKE_ARGS "-DCMAKE_DEFAULT_BUILD_TYPE=${CMAKE_DEFAULT_BUILD_TYPE}") + endif() + else() + list(APPEND ARG_CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") + endif() + ExternalProject_Add(${ARG_TARGET_NAME} # Directory Options SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" @@ -81,7 +90,6 @@ function(ov_native_compile_external_project) "-DCMAKE_C_FLAGS=${compile_flags}" "-DCMAKE_POLICY_DEFAULT_CMP0069=NEW" "-DCMAKE_INSTALL_PREFIX=${ARG_NATIVE_INSTALL_DIR}" - "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" ${ARG_CMAKE_ARGS} CMAKE_GENERATOR "${CMAKE_GENERATOR}" ${ARG_NATIVE_SOURCE_SUBDIR} diff --git a/cmake/developer_package/packaging/packaging.cmake b/cmake/developer_package/packaging/packaging.cmake index 8781bb332d7..25c9cdb29d0 100644 --- a/cmake/developer_package/packaging/packaging.cmake +++ b/cmake/developer_package/packaging/packaging.cmake @@ -194,7 +194,7 @@ macro(ie_cpack) set(CPACK_STRIP_FILES ON) endif() - # TODO: replace with openvino + # TODO: replace with openvino and handle multi-config generators case if(WIN32) set(CPACK_PACKAGE_NAME inference-engine_${CMAKE_BUILD_TYPE}) else() @@ -202,6 +202,7 @@ macro(ie_cpack) endif() set(CPACK_PACKAGE_VERSION "${OpenVINO_VERSION}") + # build version can be empty in case we are running cmake out of git repository if(NOT OpenVINO_VERSION_BUILD STREQUAL "000") set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${OpenVINO_VERSION_BUILD}") endif() diff --git a/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in b/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in index 3391ac3cf0f..8708f9164be 100644 --- a/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in +++ b/cmake/templates/InferenceEngineDeveloperPackageConfig.cmake.in @@ -16,7 +16,8 @@ set(ie_options "@IE_OPTIONS@") list(APPEND ie_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_LINKER_LAUNCHER CMAKE_C_LINKER_LAUNCHER CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX - CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET) + CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET + CMAKE_CONFIGURATION_TYPES CMAKE_DEFAULT_BUILD_TYPE) file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path) message(STATUS "The following CMake options are exported from Inference Engine Developer package") diff --git a/cmake/templates/OpenVINODeveloperPackageConfig.cmake.in b/cmake/templates/OpenVINODeveloperPackageConfig.cmake.in index 696d51c7bb4..24238be0604 100644 --- a/cmake/templates/OpenVINODeveloperPackageConfig.cmake.in +++ b/cmake/templates/OpenVINODeveloperPackageConfig.cmake.in @@ -14,7 +14,8 @@ set(ov_options "@IE_OPTIONS@") list(APPEND ov_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER CMAKE_CXX_LINKER_LAUNCHER CMAKE_C_LINKER_LAUNCHER CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX - CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET) + CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET + CMAKE_CONFIGURATION_TYPES CMAKE_DEFAULT_BUILD_TYPE) file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path) message(STATUS "The following CMake options are exported from OpenVINO Developer package") diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index 693c9b2df5e..f321955cbe0 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -5,12 +5,21 @@ cmake_minimum_required (VERSION 3.10) # Enable CMAKE__COMPILER_ID AppleClang -cmake_policy(SET CMP0025 NEW) +if(POLICY CMP0025) + cmake_policy(SET CMP0025 NEW) +endif() project(Samples) -set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type") -set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release" "Debug" "RelWithDebInfo" "MinSizeRel") +get_property(OV_GENERATOR_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(CMAKE_GENERATOR MATCHES "^Ninja Multi-Config$") + # Ninja-Multi specific, see: + # https://cmake.org/cmake/help/latest/variable/CMAKE_DEFAULT_BUILD_TYPE.html + set(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "CMake default build type") +elseif(NOT OV_GENERATOR_MULTI_CONFIG) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "CMake build type") + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release;Debug;RelWithDebInfo;MinSizeRel") +endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 925275afe1d..e7fbd02398b 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -27,16 +27,16 @@ ie_shellcheck_process(DIRECTORY "${OpenVINO_SOURCE_DIR}" ie_cpack_add_component(${OV_CPACK_COMP_SETUPVARS} HIDDEN) if(UNIX) - set(_setupvars_file setupvars/setupvars.sh) + set(_setupvars_file "${CMAKE_CURRENT_SOURCE_DIR}/setupvars/setupvars.sh") elseif(WIN32) - set(_setupvars_file setupvars/setupvars.bat) - if (USE_BUILD_TYPE_SUBFOLDER AND CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + set(_setupvars_file "${CMAKE_CURRENT_SOURCE_DIR}/setupvars/setupvars.bat") + if(USE_BUILD_TYPE_SUBFOLDER AND CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|Release)$") # Patch primary configuration in setupvars.bat which is "Release" by default. # Note setupvars secondary configuration is always "Debug". message(STATUS "Patching content of ${_setupvars_file} for CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") file(READ "${_setupvars_file}" _setupvars_content) string(REPLACE "Release" ${CMAKE_BUILD_TYPE} _setupvars_content "${_setupvars_content}") - set(_setupvars_file "${CMAKE_BINARY_DIR}/${_setupvars_file}") + set(_setupvars_file "${OpenVINO_BINARY_DIR}/${_setupvars_file}") message(STATUS "Writing patched content to ${_setupvars_file}") file(WRITE "${_setupvars_file}" "${_setupvars_content}") endif() @@ -51,11 +51,7 @@ install(PROGRAMS "${_setupvars_file}" if(LINUX) ie_cpack_add_component(${OV_CPACK_COMP_INSTALL_DEPENDENCIES} HIDDEN) - set(install_dependencies_files install_openvino_dependencies.sh) - - foreach(install_dependencies_file IN LISTS install_dependencies_files) - install(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/install_dependencies/${install_dependencies_file}" - DESTINATION install_dependencies/ - COMPONENT ${OV_CPACK_COMP_INSTALL_DEPENDENCIES}) - endforeach() + install(PROGRAMS "${CMAKE_CURRENT_SOURCE_DIR}/install_dependencies/install_openvino_dependencies.sh" + DESTINATION install_dependencies/ + COMPONENT ${OV_CPACK_COMP_INSTALL_DEPENDENCIES}) endif() diff --git a/src/bindings/python/CMakeLists.txt b/src/bindings/python/CMakeLists.txt index c6e6344a089..ec51b237e35 100644 --- a/src/bindings/python/CMakeLists.txt +++ b/src/bindings/python/CMakeLists.txt @@ -91,7 +91,7 @@ function(ov_check_python_build_conditions) endif() endif() - if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_DEBUG_POSTFIX) + if(NOT OV_GENERATOR_MULTI_CONFIG AND CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_DEBUG_POSTFIX) set(python_debug ON) message(${message_mode} "Building python bindings in debug configuration is not supported on your platform (ENABLE_PYTHON is OFF)") else() diff --git a/src/bindings/python/src/pyopenvino/CMakeLists.txt b/src/bindings/python/src/pyopenvino/CMakeLists.txt index f3432b088d1..c23c84edcf0 100644 --- a/src/bindings/python/src/pyopenvino/CMakeLists.txt +++ b/src/bindings/python/src/pyopenvino/CMakeLists.txt @@ -79,11 +79,30 @@ else() endif() target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/..") -target_link_libraries(${PROJECT_NAME} PRIVATE openvino::runtime::dev openvino::runtime ${OFFLINE_TRANSFORMATIONS_LIB}) -set_target_properties(${PROJECT_NAME} PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO} OUTPUT_NAME "_pyopenvino") +target_link_libraries(${PROJECT_NAME} PRIVATE + openvino::runtime::dev openvino::runtime ${OFFLINE_TRANSFORMATIONS_LIB}) +set_target_properties(${PROJECT_NAME} PROPERTIES + INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO} + OUTPUT_NAME "_pyopenvino") addVersionDefines(pyopenvino.cpp CI_BUILD_NUMBER) +if(OV_GENERATOR_MULTI_CONFIG) + string(APPEND _cmd_echo + "$<$:" + "${CMAKE_COMMAND};-E;cmake_echo_color;--red;\"OpenVINO;Python;API;cannot;be;built;for;'Debug'\"" + ">") + string(APPEND cmd_error + "$<$:" + "${CMAKE_COMMAND};-E;false" + ">") + + add_custom_command(TARGET ${PROJECT_NAME} PRE_BUILD + COMMAND "${_cmd_echo}" + COMMAND "${cmd_error}" + COMMAND_EXPAND_LISTS) +endif() + # perform copy if(OpenVINO_SOURCE_DIR) add_custom_command(TARGET ${PROJECT_NAME} diff --git a/src/cmake/ie_parallel.cmake b/src/cmake/ie_parallel.cmake index a2f15636d8a..1e6b942f887 100644 --- a/src/cmake/ie_parallel.cmake +++ b/src/cmake/ie_parallel.cmake @@ -262,6 +262,7 @@ function(set_ie_threading_interface_for TARGET_NAME) endif () if (NOT OpenVINO_SOURCE_DIR) + # TODO: dead code since ie_parallel.cmake is not used outside of OpenVINO build if (WIN32) set(lib_rel_path ${IE_LIB_REL_DIR}) set(lib_dbg_path ${IE_LIB_DBG_DIR}) @@ -307,6 +308,7 @@ function(set_ie_threading_interface_for TARGET_NAME) if (WIN32) ie_target_link_libraries(${TARGET_NAME} ${LINK_TYPE} "$<$:${OMP_LIBRARIES_DEBUG}>;$<$>:${OMP_LIBRARIES_RELEASE}>") else() + # TODO: handle multi-config generators case if (CMAKE_BUILD_TYPE STREQUAL "Debug") ie_target_link_libraries(${TARGET_NAME} ${LINK_TYPE} ${OMP_LIBRARIES_DEBUG}) else() diff --git a/src/plugins/intel_gna/src/backend/gna_limitations.cpp b/src/plugins/intel_gna/src/backend/gna_limitations.cpp index 004fcdba370..a497d5a3bdd 100644 --- a/src/plugins/intel_gna/src/backend/gna_limitations.cpp +++ b/src/plugins/intel_gna/src/backend/gna_limitations.cpp @@ -19,12 +19,8 @@ #include "log/log.hpp" #include "ops/util/util.hpp" -namespace ov { -namespace intel_gna { -using namespace common; -namespace limitations { -namespace { -std::ostream& operator<<(std::ostream& os, const std::set& t) { +namespace std { +inline std::ostream& operator<<(std::ostream& os, const std::set& t) { for (auto it = t.begin(); it != t.end(); ++it) { if (it != t.begin()) { os << ", " << *it; @@ -34,7 +30,11 @@ std::ostream& operator<<(std::ostream& os, const std::set& t) } return os; } -} // namespace +} // namespace std + +namespace ov { +namespace intel_gna { +namespace limitations { const std::set SupportedElementTypes::supported_parameter_types = {ov::element::u8, ov::element::i16, @@ -629,11 +629,11 @@ bool Validator_35::ShouldUseOnlyConv2DGnaIface() const { std::unique_ptr AbstractValidator::Create(const common::DeviceVersion& target) { switch (target) { - case DeviceVersion::GNA3_0: - case DeviceVersion::GNAEmbedded3_1: + case common::DeviceVersion::GNA3_0: + case common::DeviceVersion::GNAEmbedded3_1: return tools::make_unique(); - case DeviceVersion::GNA3_5: - case DeviceVersion::GNAEmbedded3_5: + case common::DeviceVersion::GNA3_5: + case common::DeviceVersion::GNAEmbedded3_5: return tools::make_unique(); default: return nullptr; @@ -658,7 +658,7 @@ bool AbstractValidator::ValidationSuccesful(const bool throwOnError, return error.empty(); } -bool UseOnly16BitConvolutionWeights(const DeviceVersion& compile_target) { +bool UseOnly16BitConvolutionWeights(const common::DeviceVersion& compile_target) { return (compile_target == common::DeviceVersion::GNA2_0 || compile_target == common::DeviceVersion::GNA3_0) || compile_target == common::DeviceVersion::GNAEmbedded3_1; } diff --git a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt index 99385be19ce..60883cbac6b 100644 --- a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt +++ b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt @@ -43,6 +43,15 @@ if(ENABLE_ONEDNN_FOR_GPU) list(APPEND cmake_extra_args "-D${cmake_var}=${${cmake_var}}") endforeach() + if(OV_GENERATOR_MULTI_CONFIG) + if(CMAKE_GENERATOR MATCHES "^Ninja Multi-Config$") + list(APPEND cmake_extra_args "-DCMAKE_CONFIGURATION_TYPES=${CMAKE_DEFAULT_BUILD_TYPE}") + list(APPEND cmake_extra_args "-DCMAKE_DEFAULT_BUILD_TYPE=${CMAKE_DEFAULT_BUILD_TYPE}") + endif() + else() + list(APPEND cmake_extra_args "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}") + endif() + ExternalProject_Add(onednn_gpu_build SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/onednn_gpu" BINARY_DIR "${ONEDNN_BUILD_DIR}" @@ -73,7 +82,6 @@ if(ENABLE_ONEDNN_FOR_GPU) "-DDNNL_LIBRARY_NAME=onednn_gpu" "-DCMAKE_INSTALL_PREFIX=${ONEDNN_INSTALL_DIR}" "-DCMAKE_INSTALL_LIBDIR=lib/$" - "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DDNNL_ENABLE_CONCURRENT_EXEC=ON" "-DDNNL_ENABLE_PRIMITIVE_CACHE=ON" "-DDNNL_ENABLE_WORKLOAD=INFERENCE" diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index f67d76b51da..ab703af265d 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -94,6 +94,7 @@ if(ENABLE_INTEL_GPU) set(OpenCL_INCLUDE_DIR "${OpenCL_INCLUDE_DIR}" PARENT_SCOPE) set(OpenCL_LIBRARY "${OpenCL_LIBRARY}" PARENT_SCOPE) + set(opencl_root_hints "${opencl_root_hints}" PARENT_SCOPE) endif() # cmake cannot set properties for imported targets diff --git a/thirdparty/ocl/CMakeLists.txt b/thirdparty/ocl/CMakeLists.txt index 2086a509c02..f31519467f3 100644 --- a/thirdparty/ocl/CMakeLists.txt +++ b/thirdparty/ocl/CMakeLists.txt @@ -3,16 +3,10 @@ # function(get_lib_name TARGET_NAME LIBRARY_NAME) - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(BUILD_SUFFIX ${IE_DEBUG_POSTFIX}) - else() - set(BUILD_SUFFIX ${IE_RELEASE_POSTFIX}) - endif() - if(WIN32) - set(LIB_SUFFIX "${BUILD_SUFFIX}${CMAKE_LINK_LIBRARY_SUFFIX}") + set(LIB_SUFFIX "${IE_BUILD_POSTFIX}${CMAKE_LINK_LIBRARY_SUFFIX}") else() - set(LIB_SUFFIX "${BUILD_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}") + set(LIB_SUFFIX "${IE_BUILD_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() set("${LIBRARY_NAME}" "${CMAKE_SHARED_MODULE_PREFIX}${TARGET_NAME}${LIB_SUFFIX}" PARENT_SCOPE) @@ -20,7 +14,7 @@ endfunction() function(get_lib_path OUTPUT_DIR FINAL_OUTPUT_DIR) if(OV_GENERATOR_MULTI_CONFIG) - set(OUTPUT_DIR "${OUTPUT_DIR}/${CMAKE_BUILD_TYPE}") + set(OUTPUT_DIR "${OUTPUT_DIR}/$") endif() set("${FINAL_OUTPUT_DIR}" "${OUTPUT_DIR}" PARENT_SCOPE) @@ -55,11 +49,12 @@ target_include_directories(OpenCL INTERFACE # The following variables are needed to make find_package(OpenCL) work -get_lib_path("${OUTPUT_ROOT}/${BIN_FOLDER}" OPENCL_LIB_DIR) +get_lib_path("${CMAKE_RUNTIME_OUTPUT_DIRECTORY}" OPENCL_LIB_DIR) get_lib_name("OpenCL" OPENCL_LIB_NAME) set(OpenCL_INCLUDE_DIR "${OPENCL_ICD_LOADER_HEADERS_DIR}" PARENT_SCOPE) set(OpenCL_LIBRARY "${OPENCL_LIB_DIR}/${OPENCL_LIB_NAME}" PARENT_SCOPE) +set(opencl_root_hints "${OpenCL_INCLUDE_DIR}" PARENT_SCOPE) # installation