|
2 | 2 | # SPDX-License-Identifier: Apache-2.0 |
3 | 3 | # |
4 | 4 |
|
5 | | -cmake_minimum_required(VERSION 3.5 FATAL_ERROR) |
6 | | - |
7 | | -project(InferenceEngine) |
8 | | - |
9 | | -set(DEV_BUILD TRUE) |
10 | | - |
11 | | -include(CTest) |
12 | | - |
13 | | -## WA for problem with gtest submodule. It cannot detect uint32 type. |
14 | | -## remove Gtest submodule and this two lines together |
15 | | -include (CheckTypeSize) |
16 | | -check_type_size (uint32_t uint32_t LANGUAGE CXX) |
17 | | - |
18 | | -if (UNIX AND NOT APPLE) |
19 | | -set(LINUX TRUE) |
20 | | -endif() |
21 | | - |
22 | | -option (OS_FOLDER "create OS dedicated folder in output" OFF) |
23 | | - |
24 | | -if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") |
25 | | - set (ARCH_FOLDER armv7l) |
26 | | -elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") |
27 | | - set (ARCH_FOLDER intel64) |
28 | | -else() |
29 | | - set (ARCH_FOLDER ia32) |
30 | | -endif() |
31 | | - |
32 | | -if (OS_FOLDER) |
33 | | - message ("**** OS FOLDER IS: [${OS_FOLDER}]") |
34 | | - if ("${OS_FOLDER}" STREQUAL "ON") |
35 | | - message ("**** USING OS FOLDER: [${CMAKE_SYSTEM_NAME}]") |
36 | | - set (BIN_FOLDER bin/${CMAKE_SYSTEM_NAME}/${ARCH_FOLDER}) |
37 | | - else() |
38 | | - set (BIN_FOLDER bin/${OS_FOLDER}/${ARCH_FOLDER}) |
39 | | - endif() |
| 5 | +if (APPLE) |
| 6 | + # due to https://cmake.org/cmake/help/v3.12/policy/CMP0068.html |
| 7 | + cmake_minimum_required(VERSION 3.9 FATAL_ERROR) |
40 | 8 | else() |
41 | | - set (BIN_FOLDER bin/${ARCH_FOLDER}) |
42 | | -endif() |
43 | | - |
44 | | -set (IE_MAIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
45 | | -set (CMAKE_MODULE_PATH "${IE_MAIN_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) |
46 | | - |
47 | | -#printing debug messages |
48 | | -include (debug) |
49 | | - |
50 | | -if("${CMAKE_BUILD_TYPE}" STREQUAL "") |
51 | | - debug_message(STATUS "CMAKE_BUILD_TYPE not defined, 'Release' will be used") |
52 | | - set(CMAKE_BUILD_TYPE "Release") |
53 | | -endif() |
54 | | -message(STATUS "BUILD_CONFIGURATION: ${CMAKE_BUILD_TYPE}") |
55 | | - |
56 | | -if(COVERAGE) |
57 | | - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage -O0") |
| 9 | + cmake_minimum_required(VERSION 3.7.2 FATAL_ERROR) |
58 | 10 | endif() |
59 | 11 |
|
60 | | -if (UNIX) |
61 | | - SET(LIB_DL ${CMAKE_DL_LIBS}) |
62 | | -endif() |
63 | | - |
64 | | -set (OUTPUT_ROOT ${IE_MAIN_SOURCE_DIR}) |
65 | | - |
66 | | -include(os_flags) |
67 | | - |
68 | | -#resolving dependencies for the project |
69 | | -include (dependencies) |
| 12 | +project(InferenceEngine) |
70 | 13 |
|
71 | | -set(CMAKE_DEBUG_POSTFIX ${IE_DEBUG_POSTFIX}) |
72 | | -set(CMAKE_RELEASE_POSTFIX ${IE_RELEASE_POSTFIX}) |
| 14 | +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) |
| 15 | +set(IE_MAIN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
73 | 16 |
|
74 | | -if (WIN32) |
75 | | - # Support CMake multiconfiguration for Visual Studio build |
76 | | - set(IE_BUILD_POSTFIX $<$<CONFIG:Debug>:${IE_DEBUG_POSTFIX}>$<$<CONFIG:Release>:${IE_RELEASE_POSTFIX}>) |
77 | | - set(IE_BUILD_CONFIGURATION $<CONFIG>) |
78 | | -else () |
79 | | - if (${CMAKE_BUILD_TYPE} STREQUAL "Debug" ) |
80 | | - set(IE_BUILD_POSTFIX ${IE_DEBUG_POSTFIX}) |
81 | | - else() |
82 | | - set(IE_BUILD_POSTFIX ${IE_RELEASE_POSTFIX}) |
83 | | - endif() |
84 | | - set(IE_BUILD_CONFIGURATION ${CMAKE_BUILD_TYPE}) |
85 | | -endif() |
| 17 | +include(CTest) |
| 18 | +include(features) |
86 | 19 |
|
87 | | -add_definitions(-DIE_BUILD_POSTFIX=\"${IE_BUILD_POSTFIX}\") |
88 | | - |
89 | | -if(NOT(UNIX)) |
90 | | - if (WIN32) |
91 | | - #set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") |
92 | | - #set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") |
93 | | - endif() |
94 | | - set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
95 | | - set (CMAKE_LIBRARY_PATH ${OUTPUT_ROOT}/${BIN_FOLDER}) |
96 | | - set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
97 | | - set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
98 | | - set (CMAKE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
99 | | - set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
100 | | - set (LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}) |
101 | | - set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}) # compatibility issue: linux uses LIBRARY_OUTPUT_PATH, windows uses LIBRARY_OUTPUT_DIRECTORY |
102 | | -else () |
103 | | - set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}/lib) |
104 | | - set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}/lib) |
105 | | - set (CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}) |
106 | | - set (CMAKE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}) |
107 | | - set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}) |
108 | | - set (LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}/lib) |
109 | | - set (LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_DIRECTORY}/lib) |
110 | | -endif() |
| 20 | +# include developer package |
| 21 | +include(developer_package) |
111 | 22 |
|
112 | | -if (APPLE) |
113 | | - set(CMAKE_MACOSX_RPATH 1) |
114 | | -endif(APPLE) |
| 23 | +# These options are shared with 3rdparty plugins |
| 24 | +# by means of developer package |
| 25 | +include(check_features) |
115 | 26 |
|
116 | | -#rpath fully disabled |
117 | | -if (NOT ENABLE_PLUGIN_RPATH) |
118 | | - SET (CMAKE_SKIP_RPATH TRUE) |
119 | | -endif() |
120 | | - |
121 | | -#Use solution folders. |
122 | | -set_property(GLOBAL PROPERTY USE_FOLDERS ON) |
123 | | -#message("=====================> ${CMAKE_BUILD_TYPE} <=====================") |
| 27 | +# resolving dependencies for the project |
| 28 | +include(dependencies) |
124 | 29 |
|
125 | 30 | message (STATUS "PROJECT ............................... " ${PROJECT_NAME}) |
126 | 31 | message (STATUS "CMAKE_BINARY_DIR ...................... " ${CMAKE_BINARY_DIR}) |
127 | 32 | message (STATUS "IE_MAIN_SOURCE_DIR .................... " ${IE_MAIN_SOURCE_DIR}) |
128 | 33 | message (STATUS "CMAKE_GENERATOR ....................... " ${CMAKE_GENERATOR}) |
129 | 34 | message (STATUS "CMAKE_C_COMPILER_ID ................... " ${CMAKE_C_COMPILER_ID}) |
| 35 | +message (STATUS "CMAKE_BUILD_TYPE ...................... " ${CMAKE_BUILD_TYPE}) |
130 | 36 |
|
131 | | -include(sdl) |
132 | | - |
133 | | -set (CMAKE_POSITION_INDEPENDENT_CODE ON) |
134 | | - |
135 | | -include (sanitizer) |
136 | | - |
137 | | -include(CheckCXXCompilerFlag) |
| 37 | +add_subdirectory(src) |
138 | 38 |
|
139 | | -include(cpplint) |
| 39 | +if(ENABLE_TESTS) |
| 40 | + add_subdirectory(tests) |
| 41 | +endif() |
140 | 42 |
|
141 | | -add_subdirectory(src) |
142 | | -add_subdirectory(tests) |
143 | 43 | add_subdirectory(thirdparty) |
144 | | -set(InferenceEngine_DIR "${CMAKE_BINARY_DIR}") |
145 | 44 |
|
146 | | -#to be able to link |
147 | | -set (LIB_FOLDER ${IE_MAIN_SOURCE_DIR}/${BIN_FOLDER}/${IE_BUILD_CONFIGURATION}/lib) |
| 45 | +add_subdirectory(tools) |
| 46 | + |
| 47 | +if (ENABLE_SAMPLES) |
| 48 | + # hint for find_package(InferenceEngine in the samples folder) |
| 49 | + set(InferenceEngine_DIR "${CMAKE_BINARY_DIR}") |
| 50 | +endif() |
148 | 51 |
|
149 | 52 | # gflags and format_reader targets are kept inside of samples directory and |
150 | 53 | # they must be built even if samples build is disabled (required for tests and tools). |
|
0 commit comments