[GNA] Refactor and install libGNAConfig.cmake (#9793)
* Install libGNAconfig.cmake * Refactor gnaConfig to correctly find from OV package * remove ENABLE_INTEL_GNA option from CI * Apply comments and fix CI * re-trigger CI (demos issue) * Enable GNA/samples smoke tests * rename GNA to GNA_EXT_DIR * re-trigger CI (mxnet cpu test issue) * Pick azhogov changes to check CI * try win wa * fix win build * re-trigger onnx * tests * disable win samples tests Co-authored-by: Alexander Zhogov <alexander.zhogov@intel.com>
This commit is contained in:
@@ -147,7 +147,6 @@ jobs:
|
||||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
|
||||
-DENABLE_PYTHON=ON
|
||||
-DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS)
|
||||
-DENABLE_INTEL_GNA=$(CMAKE_BUILD_SHARED_LIBS)
|
||||
-DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS)
|
||||
-DPYTHON_EXECUTABLE=/usr/bin/python3.8
|
||||
-DENABLE_WHEEL=ON
|
||||
@@ -277,7 +276,6 @@ jobs:
|
||||
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/gnaUnitTests --gtest_output=xml:TEST-gnaUnitTests.xml
|
||||
displayName: 'GNA UT'
|
||||
continueOnError: false
|
||||
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
|
||||
|
||||
- script: . $(SETUPVARS) && $(INSTALL_TEST_DIR)/vpuUnitTests --gtest_output=xml:TEST-vpuUnitTests.xml
|
||||
displayName: 'VPU UT'
|
||||
@@ -338,7 +336,6 @@ jobs:
|
||||
workingDirectory: $(INSTALL_DIR)/samples_bin
|
||||
displayName: 'Samples Smoke Tests'
|
||||
continueOnError: false
|
||||
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
|
||||
enabled: true
|
||||
|
||||
- script: |
|
||||
|
||||
@@ -133,7 +133,7 @@ jobs:
|
||||
|
||||
- script: |
|
||||
set PATH=$(WORK_DIR)\ninja-win;%PATH%
|
||||
call "$(MSVS_VARS_PATH)" && $(CMAKE_CMD) -G "Ninja Multi-Config" -DENABLE_WHEEL=ON -DENABLE_INTEL_GNA=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_INTEL_GPU=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GAPI_PREPROCESSING=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DPYTHON_INCLUDE_DIR="C:\hostedtoolcache\windows\Python\3.7.6\x64\include" -DPYTHON_LIBRARY="C:\hostedtoolcache\windows\Python\3.7.6\x64\libs\python37.lib" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
|
||||
call "$(MSVS_VARS_PATH)" && $(CMAKE_CMD) -G "Ninja Multi-Config" -DENABLE_WHEEL=ON -DENABLE_INTEL_GPU=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GAPI_PREPROCESSING=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DPYTHON_INCLUDE_DIR="C:\hostedtoolcache\windows\Python\3.7.6\x64\include" -DPYTHON_LIBRARY="C:\hostedtoolcache\windows\Python\3.7.6\x64\libs\python37.lib" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
|
||||
workingDirectory: $(BUILD_DIR)
|
||||
displayName: 'CMake'
|
||||
|
||||
@@ -235,7 +235,6 @@ jobs:
|
||||
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\gnaUnitTests --gtest_output=xml:TEST-gnaUnitTests.xml
|
||||
displayName: 'GNA UT'
|
||||
continueOnError: false
|
||||
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
|
||||
|
||||
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\vpuUnitTests --gtest_output=xml:TEST-vpuUnitTests.xml
|
||||
displayName: 'VPU UT'
|
||||
|
||||
@@ -269,7 +269,7 @@ include(${OpenVINO_SOURCE_DIR}/src/cmake/ie_parallel.cmake)
|
||||
|
||||
if(ENABLE_INTEL_GNA)
|
||||
reset_deps_cache(
|
||||
GNA
|
||||
GNA_EXT_DIR
|
||||
GNA_PLATFORM_DIR
|
||||
GNA_KERNEL_LIB_NAME
|
||||
GNA_LIBS_LIST
|
||||
@@ -286,12 +286,26 @@ if(ENABLE_INTEL_GNA)
|
||||
LIST(APPEND FILES_TO_EXTRACT_LIST gna_${GNA_VERSION}/linux)
|
||||
endif()
|
||||
|
||||
RESOLVE_DEPENDENCY(GNA
|
||||
RESOLVE_DEPENDENCY(GNA_EXT_DIR
|
||||
ARCHIVE_UNIFIED "GNA/GNA_${GNA_VERSION}.zip"
|
||||
TARGET_PATH "${TEMP}/gna_${GNA_VERSION}"
|
||||
VERSION_REGEX ".*_([0-9]+.[0-9]+.[0-9]+.[0-9]+).*"
|
||||
FILES_TO_EXTRACT FILES_TO_EXTRACT_LIST
|
||||
SHA256 ${GNA_HASH})
|
||||
update_deps_cache(GNA "${GNA}" "Path to GNA root folder")
|
||||
debug_message(STATUS "gna=" ${GNA})
|
||||
update_deps_cache(GNA_EXT_DIR "${GNA_EXT_DIR}" "Path to GNA root folder")
|
||||
debug_message(STATUS "gna=" ${GNA_EXT_DIR})
|
||||
|
||||
if (WIN32)
|
||||
set(GNA_PLATFORM_DIR win64 CACHE STRING "" FORCE)
|
||||
elseif (UNIX)
|
||||
set(GNA_PLATFORM_DIR linux CACHE STRING "" FORCE)
|
||||
else ()
|
||||
message(FATAL_ERROR "GNA not supported on this platform, only linux, and windows")
|
||||
endif ()
|
||||
set(GNA_LIB_DIR x64 CACHE STRING "" FORCE)
|
||||
set(GNA_PATH ${GNA_EXT_DIR}/${GNA_PLATFORM_DIR}/${GNA_LIB_DIR} CACHE STRING "" FORCE)
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
list(APPEND PATH_VARS "GNA_PATH")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -168,6 +168,18 @@ endif()
|
||||
|
||||
_ov_find_dependency(Threads)
|
||||
|
||||
set(ENABLE_INTEL_GNA "@ENABLE_INTEL_GNA@")
|
||||
set(ENABLE_INTEL_GNA_SHARED "@BUILD_SHARED_LIBS@")
|
||||
if(ENABLE_INTEL_GNA AND NOT ENABLE_INTEL_GNA_SHARED AND NOT libGNA_FOUND)
|
||||
set_and_check(GNA_PATH "@PACKAGE_GNA_PATH@")
|
||||
_ov_find_dependency(libGNA
|
||||
COMPONENTS KERNEL
|
||||
CONFIG
|
||||
PATHS ${CMAKE_CURRENT_LIST_DIR}
|
||||
NO_CMAKE_FIND_ROOT_PATH
|
||||
NO_DEFAULT_PATH)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ov_runtime)
|
||||
set(_ov_as_external_package ON)
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/OpenVINOTargets.cmake")
|
||||
|
||||
@@ -138,6 +138,10 @@ set(OV_CORE_DIR ".")
|
||||
set(IE_TBB_DIR "${IE_TBB_DIR_INSTALL}")
|
||||
set(IE_TBBBIND_DIR "${IE_TBBBIND_DIR_INSTALL}")
|
||||
set(IE_PARALLEL_CMAKE "cmake/ie_parallel.cmake")
|
||||
set(GNA_PATH "../${IE_CPACK_RUNTIME_PATH}")
|
||||
if(WIN32)
|
||||
set(GNA_PATH "../${IE_CPACK_LIBRARY_PATH}/../Release")
|
||||
endif()
|
||||
|
||||
configure_package_config_file("${OpenVINO_SOURCE_DIR}/cmake/templates/InferenceEngineConfig.cmake.in"
|
||||
"${CMAKE_BINARY_DIR}/share/InferenceEngineConfig.cmake"
|
||||
|
||||
@@ -75,3 +75,17 @@ file(GLOB_RECURSE source_list "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_SHARED_LIB
|
||||
install(FILES ${source_list}
|
||||
DESTINATION ${IE_CPACK_RUNTIME_PATH}
|
||||
COMPONENT gna)
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/libGNAConfig.cmake ${CMAKE_BINARY_DIR} COPYONLY)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/libGNAConfig.cmake"
|
||||
DESTINATION runtime/cmake
|
||||
COMPONENT gna)
|
||||
|
||||
if(WIN32)
|
||||
file(GLOB_RECURSE source_list "${libGNA_LIBRARIES_BASE_PATH}/*${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
install(FILES ${source_list}
|
||||
DESTINATION ${IE_CPACK_LIBRARY_PATH}
|
||||
COMPONENT gna)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -4,51 +4,58 @@
|
||||
|
||||
# module to locate GNA libraries
|
||||
|
||||
if (WIN32)
|
||||
set(GNA_PLATFORM_DIR win64 CACHE STRING "" FORCE)
|
||||
elseif (UNIX)
|
||||
set(GNA_PLATFORM_DIR linux CACHE STRING "" FORCE)
|
||||
else ()
|
||||
message(FATAL_ERROR "GNA not supported on this platform, only linux, and windows")
|
||||
endif ()
|
||||
|
||||
set(libGNA_FOUND TRUE)
|
||||
|
||||
set(GNA_KERNEL_LIB_NAME gna CACHE STRING "" FORCE)
|
||||
set(GNA_LIBS_LIST
|
||||
"libGNA::API"
|
||||
"libGNA::KERNEL")
|
||||
|
||||
set(GNA_LIB_DIR x64 CACHE STRING "" FORCE)
|
||||
set(libGNA_INCLUDE_DIRS "${GNA}/include" CACHE STRING "" FORCE)
|
||||
set(libGNA_LIBRARIES_BASE_PATH ${GNA}/${GNA_PLATFORM_DIR}/${GNA_LIB_DIR} CACHE STRING "" FORCE)
|
||||
if (NOT libGNA_FIND_COMPONENTS)
|
||||
set(libGNA_FIND_COMPONENTS "API;KERNEL")
|
||||
endif()
|
||||
|
||||
add_library(libGNA::KERNEL SHARED IMPORTED)
|
||||
find_library(GNA_KERNEL_LIBRARY
|
||||
${GNA_KERNEL_LIB_NAME}
|
||||
HINTS
|
||||
${libGNA_LIBRARIES_BASE_PATH})
|
||||
set_target_properties(libGNA::KERNEL PROPERTIES IMPORTED_LOCATION ${GNA_KERNEL_LIBRARY})
|
||||
foreach (_gna_component ${libGNA_FIND_COMPONENTS})
|
||||
set(libGNA_${_gna_component}_FOUND FALSE)
|
||||
set(libGNA_FIND_REQUIRED_${_gna_component} TRUE)
|
||||
endforeach()
|
||||
|
||||
add_library(libGNA::API INTERFACE IMPORTED)
|
||||
set_property(TARGET libGNA::API PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${libGNA_INCLUDE_DIRS})
|
||||
set(libGNA_LIBRARIES_BASE_PATH ${GNA_PATH} CACHE STRING "" FORCE)
|
||||
|
||||
if(libGNA_FIND_REQUIRED_KERNEL)
|
||||
find_library(GNA_KERNEL_LIBRARY
|
||||
${GNA_KERNEL_LIB_NAME}
|
||||
HINTS
|
||||
${libGNA_LIBRARIES_BASE_PATH})
|
||||
|
||||
if(NOT GNA_KERNEL_LIBRARY MATCHES NOTFOUND)
|
||||
add_library(libGNA::KERNEL SHARED IMPORTED)
|
||||
set_target_properties(libGNA::KERNEL PROPERTIES IMPORTED_LOCATION ${GNA_KERNEL_LIBRARY})
|
||||
set(libGNA_KERNEL_FOUND TRUE)
|
||||
else()
|
||||
message(SEND_ERROR "GNA KERNEL library was not found in ${libGNA_LIBRARIES_BASE_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(libGNA_FIND_REQUIRED_API)
|
||||
find_path(libGNA_INCLUDE_DIRS gna2-api.h PATHS "${GNA_EXT_DIR}/include")
|
||||
if(NOT libGNA_INCLUDE_DIRS MATCHES NOTFOUND)
|
||||
add_library(libGNA::API INTERFACE IMPORTED)
|
||||
set_target_properties(libGNA::API PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${libGNA_INCLUDE_DIRS})
|
||||
set(libGNA_API_FOUND TRUE)
|
||||
else()
|
||||
message(SEND_ERROR "GNA API headers was not found in ${GNA_EXT_DIR}/include")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(libGNA INTERFACE IMPORTED)
|
||||
foreach(_lib_name ${GNA_LIBS_LIST})
|
||||
set_property(TARGET libGNA APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_lib_name})
|
||||
|
||||
get_target_property(_target_type ${_lib_name} TYPE)
|
||||
if (${_target_type} STREQUAL "INTERFACE_LIBRARY")
|
||||
get_target_property(_target_location ${_lib_name} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
else()
|
||||
get_target_property(_target_location ${_lib_name} IMPORTED_LOCATION)
|
||||
endif ()
|
||||
message(STATUS "${_lib_name} ${_target_type} : ${_target_location}")
|
||||
foreach(_lib_name ${libGNA_FIND_COMPONENTS})
|
||||
set_property(TARGET libGNA APPEND PROPERTY INTERFACE_LINK_LIBRARIES libGNA::${_lib_name})
|
||||
endforeach(_lib_name)
|
||||
|
||||
if (WIN32)
|
||||
set_target_properties(libGNA::KERNEL PROPERTIES
|
||||
IMPORTED_IMPLIB ${GNA_KERNEL_LIBRARY})
|
||||
if(libGNA_FIND_REQUIRED_KERNEL)
|
||||
set_target_properties(libGNA::KERNEL PROPERTIES
|
||||
IMPORTED_IMPLIB ${GNA_KERNEL_LIBRARY})
|
||||
endif()
|
||||
else()
|
||||
set_target_properties(libGNA PROPERTIES INTERFACE_LINK_OPTIONS "-Wl,-rpath-link,${libGNA_LIBRARIES_BASE_PATH}")
|
||||
endif ()
|
||||
|
||||
Reference in New Issue
Block a user