1 # Copyright (C) 2018-2019 Intel Corporation
2 # SPDX-License-Identifier: Apache-2.0
5 set (TARGET_NAME "inference_engine")
8 ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
9 ${CMAKE_CURRENT_SOURCE_DIR}/transform/*.cpp
10 ${CMAKE_CURRENT_SOURCE_DIR}/transform/transformations/*.cpp
11 ${CMAKE_CURRENT_SOURCE_DIR}/builders/*.cpp
12 ${CMAKE_CURRENT_SOURCE_DIR}/cpp_interfaces/*.cpp
13 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/*.cpp
14 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/built-in/*.cpp
15 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/const_infer/*.cpp
18 file (GLOB LIBRARY_HEADERS
19 ${CMAKE_CURRENT_SOURCE_DIR}/*.h
20 ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp
21 ${CMAKE_CURRENT_SOURCE_DIR}/cpp_interfaces/*.hpp
22 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/*.hpp
23 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/built-in/*.hpp
24 ${CMAKE_CURRENT_SOURCE_DIR}/shape_infer/const_infer/*.hpp
25 ${CMAKE_CURRENT_SOURCE_DIR}/cpp_interfaces/base/*.hpp
26 ${CMAKE_CURRENT_SOURCE_DIR}/cpp_interfaces/impl/*.hpp
27 ${CMAKE_CURRENT_SOURCE_DIR}/cpp_interfaces/interface/*.hpp
30 if( (NOT DEFINED ENABLE_SSE42) OR ENABLE_SSE42)
31 file (GLOB LIBRARY_SRC
33 ${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/*.cpp
35 file (GLOB LIBRARY_HEADERS
37 ${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/*.hpp
39 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42)
41 set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/blob_transform_sse42.cpp"
42 "${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/ie_preprocess_data_sse42.cpp"
43 "${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/ie_preprocess_gapi_kernels_sse42.cpp" PROPERTIES COMPILE_FLAGS /arch:SSE2)
45 set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/blob_transform_sse42.cpp"
46 "${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/ie_preprocess_data_sse42.cpp"
47 "${CMAKE_CURRENT_SOURCE_DIR}/cpu_x86_sse42/ie_preprocess_gapi_kernels_sse42.cpp" PROPERTIES COMPILE_FLAGS -msse4.2)
49 add_definitions(-DHAVE_SSE=1)
52 addVersionDefines(ie_version.cpp CI_BUILD_NUMBER)
54 set (PUBLIC_HEADERS_DIR "${IE_MAIN_SOURCE_DIR}/include")
56 file (GLOB PUBLIC_HEADERS
57 ${PUBLIC_HEADERS_DIR}/*.h
58 ${PUBLIC_HEADERS_DIR}/*.hpp
61 add_definitions(-DIMPLEMENT_INFERENCE_ENGINE_API)
63 # Create named folders for the sources within the .vcproj
64 # Empty name lists them directly under the .vcproj
66 source_group("src" FILES ${LIBRARY_SRC})
67 source_group("include" FILES ${LIBRARY_HEADERS} ${PUBLIC_HEADERS})
69 # Create shared library file from sources
71 add_library(${TARGET_NAME} SHARED
75 set_ie_threading_interface_for(${TARGET_NAME})
77 target_link_libraries(${TARGET_NAME} PRIVATE fluid ade ${INTEL_ITT_LIBS} PUBLIC pugixml ${CMAKE_DL_LIBS})
79 # Properties->C/C++->General->Additional Include Directories
80 target_include_directories(${TARGET_NAME} PUBLIC ${PUBLIC_HEADERS_DIR}
81 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
82 "${IE_MAIN_SOURCE_DIR}/src/dumper")
84 target_include_directories(${TARGET_NAME} SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/pugixml/src")
85 target_include_directories(${TARGET_NAME} SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/ocv")
88 target_include_directories(${TARGET_NAME} SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/src/cpu/xbyak")
91 set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
93 # Static library used for unit tests which are always built
95 add_library(${TARGET_NAME}_s STATIC
99 set_ie_threading_interface_for(${TARGET_NAME}_s)
101 # Properties->C/C++->General->Additional Include Directories
102 target_include_directories(${TARGET_NAME}_s PUBLIC ${PUBLIC_HEADERS_DIR}
103 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}"
104 "${IE_MAIN_SOURCE_DIR}/src/dumper")
106 target_include_directories(${TARGET_NAME}_s SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/pugixml/src")
107 target_include_directories(${TARGET_NAME}_s SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/ocv")
110 target_include_directories(${TARGET_NAME}_s SYSTEM PRIVATE "${IE_MAIN_SOURCE_DIR}/thirdparty/mkl-dnn/src/cpu/xbyak")
113 target_compile_definitions(${TARGET_NAME}_s PUBLIC -DUSE_STATIC_IE)
115 set_target_properties(${TARGET_NAME}_s PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME}_s)
117 target_link_libraries(${TARGET_NAME}_s PRIVATE fluid
119 PRIVATE ${INTEL_ITT_LIBS})
122 export(TARGETS ${TARGET_NAME} NAMESPACE IE:: FILE "${CMAKE_BINARY_DIR}/targets.cmake")
125 "${CMAKE_SOURCE_DIR}/cmake/config.cmake.in"
126 "${CMAKE_BINARY_DIR}/InferenceEngineConfig.cmake"
130 "${CMAKE_SOURCE_DIR}/cmake/share/InferenceEngineConfig-version.cmake.in"
131 "${CMAKE_BINARY_DIR}/InferenceEngineConfig-version.cmake"
134 add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME})