1 # Copyright (C) 2018 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
4 set (TARGET_NAME "clDNNPlugin")
7 ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
10 file (GLOB LIBRARY_HEADERS
11 ${CMAKE_CURRENT_SOURCE_DIR}/*.h
12 ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
15 addVersionDefines(cldnn_engine.cpp CI_BUILD_NUMBER CLDNN_VERSION)
18 add_definitions(-DIMPLEMENT_INFERENCE_ENGINE_PLUGIN)
21 # Create named folders for the sources within the .vcproj
22 # Empty name lists them directly under the .vcproj
23 source_group("src" FILES ${LIBRARY_SRC})
24 source_group("include" FILES ${LIBRARY_HEADERS})
27 #TODO: clDNN for non windows...
30 set(CLDNN_BUILD_PLATFORM Centos7/)
31 set(CLDNN_PLATFORM Linux64/)
32 set(CLDNN_LIB_FOLDER bin)
33 set(CLDNN_LIB_NAME clDNN64)
36 if (NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
37 set(CLDNN_PLATFORM Windows32/)
38 set(CLDNN_LIB_NAME clDNN32)
40 set(CLDNN_PLATFORM Windows64/)
41 set(CLDNN_LIB_NAME clDNN64)
43 set(CLDNN_LIB_FOLDER lib)
46 if (NOT IE_SUBMODULE_IN_CLDNN)
47 #cldnn deliveries always changed path
48 set (CLDNN_TOP_FOLDER ${IE_MAIN_SOURCE_DIR}/thirdparty/clDNN)
50 if (NOT ENABLE_CLDNN_BUILD)
51 set (CLDNN_TOP_FOLDER ${CLDNN}/build/out)
54 # Properties->C/C++->General->Additional Include Directories
56 ${CMAKE_CURRENT_SOURCE_DIR}
57 ${IE_MAIN_SOURCE_DIR}/include
58 ${CLDNN_TOP_FOLDER}/api
59 ${CLDNN_TOP_FOLDER}/include
61 ${IE_MAIN_SOURCE_DIR}/src/inference_engine
62 ${IE_MAIN_SOURCE_DIR}/thirdparty/pugixml/src)
64 # clDnn build configuration, change that if you'd like to debug
65 if (${CMAKE_BUILD_TYPE} STREQUAL "Debug" )
66 set (Configuration ${CMAKE_BUILD_TYPE})
68 set (Configuration Release)
71 if (NOT ENABLE_CLDNN_BUILD)
72 set (CLDNN_TOP_FOLDER ${CLDNN}/build/out)
73 set (CLDNN_SEARCH_PATH ${CLDNN_TOP_FOLDER}/${CLDNN_PLATFORM})
74 debug_message (STATUS "clDNN search path ${CLDNN_SEARCH_PATH}" )
75 debug_message (STATUS "clDNN paths_sufixes: ${Configuration} ${CLDNN_BUILD_PLATFORM}${Configuration}" )
77 find_library(CLDNN_LIBRARY
80 PATHS ${CLDNN_SEARCH_PATH}
81 PATH_SUFFIXES ${Configuration} ${CLDNN_BUILD_PLATFORM}/${Configuration})
83 debug_message(STATUS "CLDNN_LIBRARY ......................... " ${CLDNN_LIBRARY})
85 #saving rpath to be used by CI
86 log_rpath_remove_top(CLDNN FALSE ${CLDNN_LIBRARY} TRUE)
88 set(CLDNN_LIBRARY clDNN_shlib)
91 # Properties->C/C++->General->Additional Include Directories
93 ${CMAKE_CURRENT_SOURCE_DIR}
94 ${IE_MAIN_SOURCE_DIR}/include
95 ${IE_MAIN_SOURCE_DIR}/../../api
96 ${IE_MAIN_SOURCE_DIR}/src/inference_engine
97 ${IE_MAIN_SOURCE_DIR}/thirdparty/pugixml/src)
100 # Create library file from sources.
101 add_library(${TARGET_NAME} SHARED
104 target_link_libraries(${TARGET_NAME} pugixml ${INTEL_ITT_LIBS} inference_engine ${CLDNN_LIBRARY})
106 set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
108 #copy default global xml file describing the custom kernels and the *.cl files
109 add_custom_command(TARGET ${TARGET_NAME} POST_BUILD
110 COMMAND "${CMAKE_COMMAND}" -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/cldnn_global_custom_kernels $<TARGET_FILE_DIR:${TARGET_NAME}>/cldnn_global_custom_kernels)