1
1
CMAKE_MINIMUM_REQUIRED (VERSION 3.0.0)
2
2
PROJECT (RedisAI)
3
+ list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /opt/cmake/modules)
4
+
5
+ # Set a default build type if none was specified
6
+ set (default_build_type "Release" )
7
+
8
+ SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
9
+ SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" )
10
+
11
+ set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-cast-function-type -Werror -O3" )
12
+ # Add -fno-omit-frame-pointer to avoid seeing incomplete stack traces
13
+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer" )
14
+
15
+ option (BUILD_TF "Build the TensorFlow backend" ON )
16
+ option (BUILD_ORT "Build the ONNXRuntime backend" ON )
17
+ option (BUILD_TORCH "Build the PyTorch backend" ON )
3
18
4
19
#----------------------------------------------------------------------------------------------
5
20
@@ -43,31 +58,48 @@ GET_FILENAME_COMPONENT(installAbs
43
58
#----------------------------------------------------------------------------------------------
44
59
45
60
INCLUDE_DIRECTORIES (${depsAbs} /dlpack/include )
46
- INCLUDE_DIRECTORIES (${depsAbs} /libtensorflow/include )
47
- INCLUDE_DIRECTORIES (${depsAbs} /libtorch/include )
48
- INCLUDE_DIRECTORIES (${depsAbs} /onnxruntime/include )
61
+ if (BUILD_TF)
62
+ INCLUDE_DIRECTORIES (${depsAbs} /libtensorflow/include )
63
+ endif (BUILD_TF)
64
+ if (BUILD_TORCH)
65
+ INCLUDE_DIRECTORIES (${depsAbs} /libtorch/include )
66
+ endif (BUILD_TORCH)
67
+ if (BUILD_ORT)
68
+ INCLUDE_DIRECTORIES (${depsAbs} /onnxruntime/include )
69
+ endif (BUILD_ORT)
49
70
50
- SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
51
- SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" )
52
71
SET (CMAKE_C_STANDARD 11)
72
+ ADD_DEFINITIONS (-DREDISMODULE_EXPERIMENTAL_API)
53
73
54
74
# SET(CUDA_TOOLKIT_ROOT_DIR /usr/local/cuda-10.0)
55
75
56
76
#----------------------------------------------------------------------------------------------
57
77
58
- FIND_LIBRARY (TF_LIBRARIES NAMES tensorflow
59
- PATHS ${depsAbs} /libtensorflow/lib)
60
- IF (NOT TF_LIBRARIES)
61
- MESSAGE (FATAL_ERROR "Could not find tensorflow" )
62
- ENDIF ()
78
+ if (BUILD_TF)
79
+ FIND_LIBRARY (TF_LIBRARIES NAMES tensorflow
80
+ PATHS ${depsAbs} /libtensorflow/lib)
81
+ message (STATUS "Found TensorFlow Libraries: \" ${TF_LIBRARIES} \" )" )
82
+ IF (NOT TF_LIBRARIES)
83
+ message (STATUS "TensorFlow Libraries are not in ${depsAbs} /libtensorflow/lib. Trying find_package method" )
84
+ find_package (TensorFlow REQUIRED)
85
+ set (TF_LIBRARIES ${TensorFlow_LIBRARY} )
86
+ IF (NOT TF_LIBRARIES)
87
+ MESSAGE (FATAL_ERROR "Could not find tensorflow" )
88
+ else ()
89
+ message (STATUS "Found TensorFlow Libraries: \" ${TF_LIBRARIES} \" )" )
90
+ endif ()
91
+ ENDIF ()
92
+ endif (BUILD_TF)
63
93
64
94
#----------------------------------------------------------------------------------------------
65
95
66
- FIND_LIBRARY (ORT_LIBRARIES NAMES onnxruntime
67
- PATHS ${depsAbs} /onnxruntime/lib)
68
- IF (NOT ORT_LIBRARIES)
69
- MESSAGE (FATAL_ERROR "Could not find ONNXRuntime" )
70
- ENDIF ()
96
+ if (BUILD_ORT)
97
+ FIND_LIBRARY (ORT_LIBRARIES NAMES onnxruntime
98
+ PATHS ${depsAbs} /onnxruntime/lib)
99
+ IF (NOT ORT_LIBRARIES)
100
+ MESSAGE (FATAL_ERROR "Could not find ONNXRuntime" )
101
+ ENDIF ()
102
+ endif (BUILD_ORT)
71
103
72
104
#----------------------------------------------------------------------------------------------
73
105
@@ -82,14 +114,15 @@ ENDIF()
82
114
83
115
#----------------------------------------------------------------------------------------------
84
116
85
- # Find Torch stuff and build our wrapper
86
- SET (Torch_DIR ${depsAbs} /libtorch/share/cmake/Torch)
87
- FIND_PACKAGE (Torch REQUIRED)
117
+ if (BUILD_TORCH)
118
+ # Find Torch stuff and build our wrapper
119
+ SET (Torch_DIR ${depsAbs} /libtorch/share/cmake/Torch)
120
+ FIND_PACKAGE (Torch REQUIRED)
88
121
89
- INCLUDE_DIRECTORIES (util/libtorch_c)
90
- ADD_DEFINITIONS (-DREDISMODULE_EXPERIMENTAL_API)
122
+ INCLUDE_DIRECTORIES (util/libtorch_c)
91
123
92
- ADD_SUBDIRECTORY (src/libtorch_c)
124
+ ADD_SUBDIRECTORY (src/libtorch_c)
125
+ endif (BUILD_TORCH)
93
126
94
127
#----------------------------------------------------------------------------------------------
95
128
@@ -125,55 +158,61 @@ ENDIF()
125
158
126
159
#----------------------------------------------------------------------------------------------
127
160
128
- ADD_LIBRARY (redisai_tensorflow SHARED $<TARGET_OBJECTS:redisai_tensorflow_obj>)
129
- TARGET_LINK_LIBRARIES (redisai_tensorflow ${TF_LIBRARIES} )
130
- SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES PREFIX "" )
131
- SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES SUFFIX ".so" )
132
- IF (APPLE )
133
- SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES INSTALL_RPATH "@loader_path/lib" )
134
- ELSE ()
135
- ADD_LDFLAGS(redisai_tensorflow "-Wl,--enable-new-dtags" )
136
- SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
137
- ENDIF ()
138
- INSTALL (TARGETS redisai_tensorflow LIBRARY DESTINATION backends/redisai_tensorflow)
139
- INSTALL (DIRECTORY ${depsAbs} /libtensorflow/lib DESTINATION ${installAbs} /backends/redisai_tensorflow
140
- FILES_MATCHING PATTERN ${LIB_PATTERN} )
161
+ if (BUILD_TF)
162
+ ADD_LIBRARY (redisai_tensorflow SHARED $<TARGET_OBJECTS:redisai_tensorflow_obj>)
163
+ TARGET_LINK_LIBRARIES (redisai_tensorflow ${TF_LIBRARIES} )
164
+ SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES PREFIX "" )
165
+ SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES SUFFIX ".so" )
166
+ IF (APPLE )
167
+ SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES INSTALL_RPATH "@loader_path/lib" )
168
+ ELSE ()
169
+ ADD_LDFLAGS(redisai_tensorflow "-Wl,--enable-new-dtags" )
170
+ SET_TARGET_PROPERTIES (redisai_tensorflow PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
171
+ ENDIF ()
172
+ INSTALL (TARGETS redisai_tensorflow LIBRARY DESTINATION backends/redisai_tensorflow)
173
+ INSTALL (DIRECTORY ${depsAbs} /libtensorflow/lib DESTINATION ${installAbs} /backends/redisai_tensorflow
174
+ FILES_MATCHING PATTERN ${LIB_PATTERN} )
175
+ ENDIF (BUILD_TF)
141
176
142
177
#----------------------------------------------------------------------------------------------
143
178
144
- ADD_LIBRARY (redisai_torch SHARED $<TARGET_OBJECTS:redisai_torch_obj>)
145
- TARGET_LINK_LIBRARIES (redisai_torch torch_c ${TORCH_LIBRARIES} )
146
- SET_TARGET_PROPERTIES (redisai_torch PROPERTIES PREFIX "" )
147
- SET_TARGET_PROPERTIES (redisai_torch PROPERTIES SUFFIX ".so" )
148
- IF (APPLE )
149
- SET_TARGET_PROPERTIES (redisai_torch PROPERTIES INSTALL_RPATH "@loader_path/lib" )
150
- ELSE ()
151
- ADD_LDFLAGS(redisai_torch "-Wl,--enable-new-dtags" )
152
- SET_TARGET_PROPERTIES (redisai_torch PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
153
- ENDIF ()
154
- INSTALL (TARGETS redisai_torch LIBRARY DESTINATION backends/redisai_torch)
155
- INSTALL (DIRECTORY ${depsAbs} /libtorch/lib DESTINATION ${installAbs} /backends/redisai_torch
156
- FILES_MATCHING PATTERN ${LIB_PATTERN} )
179
+ if (BUILD_TORCH)
180
+ ADD_LIBRARY (redisai_torch SHARED $<TARGET_OBJECTS:redisai_torch_obj>)
181
+ TARGET_LINK_LIBRARIES (redisai_torch torch_c ${TORCH_LIBRARIES} )
182
+ SET_TARGET_PROPERTIES (redisai_torch PROPERTIES PREFIX "" )
183
+ SET_TARGET_PROPERTIES (redisai_torch PROPERTIES SUFFIX ".so" )
184
+ IF (APPLE )
185
+ SET_TARGET_PROPERTIES (redisai_torch PROPERTIES INSTALL_RPATH "@loader_path/lib" )
186
+ ELSE ()
187
+ ADD_LDFLAGS(redisai_torch "-Wl,--enable-new-dtags" )
188
+ SET_TARGET_PROPERTIES (redisai_torch PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
189
+ ENDIF ()
190
+ INSTALL (TARGETS redisai_torch LIBRARY DESTINATION backends/redisai_torch)
191
+ INSTALL (DIRECTORY ${depsAbs} /libtorch/lib DESTINATION ${installAbs} /backends/redisai_torch
192
+ FILES_MATCHING PATTERN ${LIB_PATTERN} )
193
+ ENDIF (BUILD_TORCH)
157
194
158
195
#----------------------------------------------------------------------------------------------
159
196
160
- IF (${DEVICE} STREQUAL "gpu" )
161
- ADD_DEFINITIONS (-DRAI_ONNXRUNTIME_USE_CUDA)
162
- ENDIF ()
163
-
164
- ADD_LIBRARY (redisai_onnxruntime SHARED $<TARGET_OBJECTS:redisai_onnxruntime_obj>)
165
- TARGET_LINK_LIBRARIES (redisai_onnxruntime ${ORT_LIBRARIES} )
166
- SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES PREFIX "" )
167
- SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES SUFFIX ".so" )
168
- IF (APPLE )
169
- SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES INSTALL_RPATH "@loader_path/lib" )
170
- ELSE ()
171
- ADD_LDFLAGS(redisai_onnxruntime "-Wl,--enable-new-dtags" )
172
- SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
173
- ENDIF ()
174
- INSTALL (TARGETS redisai_onnxruntime LIBRARY DESTINATION backends/redisai_onnxruntime)
175
- INSTALL (DIRECTORY ${depsAbs} /onnxruntime/lib DESTINATION ${installAbs} /backends/redisai_onnxruntime
176
- FILES_MATCHING PATTERN ${LIB_PATTERN} )
197
+ if (BUILD_ORT)
198
+ IF (${DEVICE} STREQUAL "gpu" )
199
+ ADD_DEFINITIONS (-DRAI_ONNXRUNTIME_USE_CUDA)
200
+ ENDIF ()
201
+
202
+ ADD_LIBRARY (redisai_onnxruntime SHARED $<TARGET_OBJECTS:redisai_onnxruntime_obj>)
203
+ TARGET_LINK_LIBRARIES (redisai_onnxruntime ${ORT_LIBRARIES} )
204
+ SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES PREFIX "" )
205
+ SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES SUFFIX ".so" )
206
+ IF (APPLE )
207
+ SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES INSTALL_RPATH "@loader_path/lib" )
208
+ ELSE ()
209
+ ADD_LDFLAGS(redisai_onnxruntime "-Wl,--enable-new-dtags" )
210
+ SET_TARGET_PROPERTIES (redisai_onnxruntime PROPERTIES INSTALL_RPATH "\$ ORIGIN/lib" )
211
+ ENDIF ()
212
+ INSTALL (TARGETS redisai_onnxruntime LIBRARY DESTINATION backends/redisai_onnxruntime)
213
+ INSTALL (DIRECTORY ${depsAbs} /onnxruntime/lib DESTINATION ${installAbs} /backends/redisai_onnxruntime
214
+ FILES_MATCHING PATTERN ${LIB_PATTERN} )
215
+ ENDIF (BUILD_ORT)
177
216
178
217
#----------------------------------------------------------------------------------------------
179
218
0 commit comments