1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
5 # module to locate GNA libraries
8 set(GNA_PLATFORM_DIR win64)
10 set(GNA_PLATFORM_DIR linux)
12 message(FATAL_ERROR "GNA not supported on this platform, only linux, and windows")
15 set(libGNA_FOUND TRUE)
17 set(GNA_KERNEL_LIB_NAME gna)
22 if (GNA_LIBRARY_VERSION STREQUAL "GNA1")
23 # use old version of GNA Library from gna_20181120
27 list(APPEND GNA_LIBS_LIST
28 "libGNA::OLD_API_LIB")
30 set(GNA_KERNEL_LIB_NAME gna_kernel)
32 set(libGNA_INCLUDE_DIRS "${GNA}/${GNA_PLATFORM_DIR}/include")
34 # use current version of GNA library
36 set(libGNA_INCLUDE_DIRS "${GNA}/include")
38 set(libGNA_LIBRARIES_BASE_PATH ${GNA}/${GNA_PLATFORM_DIR}/${GNA_LIB_DIR})
40 add_library(libGNA::KERNEL SHARED IMPORTED)
41 find_library(GNA_KERNEL_LIBRARY
42 ${GNA_KERNEL_LIB_NAME}
44 ${libGNA_LIBRARIES_BASE_PATH})
45 set_target_properties(libGNA::KERNEL PROPERTIES IMPORTED_LOCATION ${GNA_KERNEL_LIBRARY})
47 if ((GNA_LIBRARY_VERSION STREQUAL "GNA1") AND (NOT WIN32))
48 add_library(libGNA::OLD_API_LIB SHARED IMPORTED)
49 find_library(GNA_API_LIBRARY
52 ${libGNA_LIBRARIES_BASE_PATH})
53 set_target_properties(libGNA::OLD_API_LIB PROPERTIES IMPORTED_LOCATION ${GNA_API_LIBRARY})
54 target_link_libraries(libGNA::OLD_API_LIB INTERFACE libGNA::KERNEL)
55 set_target_properties(libGNA::OLD_API_LIB PROPERTIES IMPORTED_NO_SONAME TRUE)
56 set_target_properties(libGNA::KERNEL PROPERTIES IMPORTED_NO_SONAME TRUE)
59 add_library(libGNA::API INTERFACE IMPORTED)
60 set_property(TARGET libGNA::API PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${libGNA_INCLUDE_DIRS})
62 add_library(libGNA INTERFACE IMPORTED)
63 foreach(_lib_name ${GNA_LIBS_LIST})
64 set_property(TARGET libGNA APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${_lib_name})
66 get_target_property(_target_type ${_lib_name} TYPE)
67 if (${_target_type} STREQUAL "INTERFACE_LIBRARY")
68 get_target_property(_target_location ${_lib_name} INTERFACE_INCLUDE_DIRECTORIES)
70 get_target_property(_target_location ${_lib_name} IMPORTED_LOCATION)
72 message(STATUS "${_lib_name} ${_target_type} : ${_target_location}")
76 set_target_properties(libGNA::KERNEL PROPERTIES
77 IMPORTED_IMPLIB ${GNA_KERNEL_LIBRARY})
78 elseif(NOT GNA_LIBRARY_VERSION STREQUAL "GNA1")
79 set_target_properties(libGNA PROPERTIES INTERFACE_LINK_OPTIONS "-Wl,-rpath-link,${libGNA_LIBRARIES_BASE_PATH}")