Publishing R3
[platform/upstream/dldt.git] / inference-engine / src / cldnn_engine / CMakeLists.txt
1 # Copyright (C) 2018 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
3 #
4 set (TARGET_NAME "clDNNPlugin")
5
6 file (GLOB MAIN_SRC
7         ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
8         )
9
10 file (GLOB LIBRARY_HEADERS
11         ${CMAKE_CURRENT_SOURCE_DIR}/*.h
12         ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
13         )
14
15 addVersionDefines(cldnn_engine.cpp CI_BUILD_NUMBER CLDNN_VERSION)
16
17 if(WIN32)
18     add_definitions(-DIMPLEMENT_INFERENCE_ENGINE_PLUGIN)
19 endif()
20
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})
25
26
27 #TODO: clDNN for non windows...
28 if (APPLE)
29 elseif  (UNIX)
30     set(CLDNN_BUILD_PLATFORM Centos7/)
31     set(CLDNN_PLATFORM Linux64/)
32     set(CLDNN_LIB_FOLDER bin)
33     set(CLDNN_LIB_NAME clDNN64)
34 else ()
35     #32 bits platform
36     if (NOT "${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
37         set(CLDNN_PLATFORM Windows32/)
38         set(CLDNN_LIB_NAME clDNN32)
39     else()
40         set(CLDNN_PLATFORM Windows64/)
41         set(CLDNN_LIB_NAME clDNN64)
42     endif()
43     set(CLDNN_LIB_FOLDER lib)
44 endif ()
45
46 if (NOT IE_SUBMODULE_IN_CLDNN)
47     #cldnn deliveries always changed path
48     set (CLDNN_TOP_FOLDER ${IE_MAIN_SOURCE_DIR}/thirdparty/clDNN)
49
50     if (NOT ENABLE_CLDNN_BUILD)
51         set (CLDNN_TOP_FOLDER ${CLDNN}/build/out)
52     endif()
53
54     # Properties->C/C++->General->Additional Include Directories
55     include_directories (
56             ${CMAKE_CURRENT_SOURCE_DIR}
57             ${IE_MAIN_SOURCE_DIR}/include
58             ${CLDNN_TOP_FOLDER}/api
59             ${CLDNN_TOP_FOLDER}/include
60             #${OCL_DIST}/include
61             ${IE_MAIN_SOURCE_DIR}/src/inference_engine
62             ${IE_MAIN_SOURCE_DIR}/thirdparty/pugixml/src)
63
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})
67     else()
68         set (Configuration Release)
69     endif()
70
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}" )
76
77         find_library(CLDNN_LIBRARY
78             ${CLDNN_LIB_NAME}
79             NO_DEFAULT_PATH
80             PATHS ${CLDNN_SEARCH_PATH}
81             PATH_SUFFIXES ${Configuration} ${CLDNN_BUILD_PLATFORM}/${Configuration})
82
83         debug_message(STATUS "CLDNN_LIBRARY ......................... " ${CLDNN_LIBRARY})
84
85         #saving rpath to be used by CI
86         log_rpath_remove_top(CLDNN FALSE ${CLDNN_LIBRARY} TRUE)
87     else()
88         set(CLDNN_LIBRARY clDNN_shlib)
89     endif()
90 else()
91     # Properties->C/C++->General->Additional Include Directories
92     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)
98 endif()
99
100 # Create library file from sources.
101 add_library(${TARGET_NAME} SHARED
102     ${MAIN_SRC}
103     ${LIBRARY_HEADERS})
104 target_link_libraries(${TARGET_NAME} pugixml ${INTEL_ITT_LIBS} inference_engine ${CLDNN_LIBRARY})
105
106 set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
107
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)