@@ -110,33 +110,107 @@ endif()
110
110
if (BUILD_PD)
111
111
add_definitions (-DPADDLE_WITH_CUDA)
112
112
113
- execute_process (COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import paddle; print(paddle.sysconfig.get_include())"
114
- RESULT_VARIABLE _INC_PYTHON_SUCCESS
115
- OUTPUT_VARIABLE _INC_PYTHON_VALUES)
116
- if (NOT _INC_PYTHON_SUCCESS MATCHES 0)
117
- message (FATAL_ERROR "Python config Error." )
118
- endif ()
119
- string (REGEX REPLACE ";" "\\\\ ;" _INC_PYTHON_VALUES ${_INC_PYTHON_VALUES} )
120
- string (REGEX REPLACE "\n " ";" _INC_PYTHON_VALUES ${_INC_PYTHON_VALUES} )
121
- list (GET _INC_PYTHON_VALUES 0 PY_INCLUDE_DIR)
122
-
123
- list (APPEND COMMON_HEADER_DIRS ${PY_INCLUDE_DIR} )
124
- list (APPEND COMMON_HEADER_DIRS ${PY_INCLUDE_DIR} /third_party)
125
-
126
- execute_process (COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import paddle; print(paddle.sysconfig.get_lib())"
127
- RESULT_VARIABLE _LIB_PYTHON_SUCCESS
128
- OUTPUT_VARIABLE _LIB_PYTHON_VALUES)
129
- if (NOT _LIB_PYTHON_SUCCESS MATCHES 0)
130
- message (FATAL_ERROR "Python config Error." )
131
- endif ()
132
- string (REGEX REPLACE ";" "\\\\ ;" _LIB_PYTHON_VALUES ${_LIB_PYTHON_VALUES} )
133
- string (REGEX REPLACE "\n " ";" _LIB_PYTHON_VALUES ${_LIB_PYTHON_VALUES} )
134
- list (GET _LIB_PYTHON_VALUES 0 PY_LIB_DIR)
135
- list (APPEND COMMON_LIB_DIRS ${PY_LIB_DIR} )
136
-
137
- include_directories (${PY_INCLUDE_DIR} )
138
- include_directories (${PY_INCLUDE_DIR} \third_party)
113
+ if (ON_INFER)
114
+ add_definitions (-DPADDLE_ON_INFERENCE)
115
+
116
+ link_directories (${COMMON_LIB_DIRS} )
117
+
118
+ if (NOT WITH_STATIC_LIB)
119
+ add_definitions ("-DPADDLE_WITH_SHARED_LIB" )
120
+ else ()
121
+ # PD_INFER_DECL is mainly used to set the dllimport/dllexport attribute in dynamic library mode.
122
+ # Set it to empty in static library mode to avoid compilation issues.
123
+ add_definitions ("/DPD_INFER_DECL=" )
124
+ endif ()
125
+
126
+ macro (safe_set_static_flag)
127
+ foreach (flag_var
128
+ CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
129
+ CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO )
130
+ if (${flag_var} MATCHES "/MD" )
131
+ string (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var} }" )
132
+ endif (${flag_var} MATCHES "/MD" )
133
+ endforeach (flag_var)
134
+ endmacro ()
135
+
136
+ if (NOT DEFINED PADDLE_LIB)
137
+ message (FATAL_ERROR "please set PADDLE_LIB with -DPADDLE_LIB=/path/paddle/lib" )
138
+ endif ()
139
+
140
+ include_directories ("${PADDLE_LIB} /" )
141
+ set (PADDLE_LIB_THIRD_PARTY_PATH "${PADDLE_LIB} /third_party/install/" )
142
+ include_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} protobuf/include" )
143
+ include_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} glog/include" )
144
+ include_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} gflags/include" )
145
+ include_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} xxhash/include" )
146
+
147
+ link_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} protobuf/lib" )
148
+ link_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} glog/lib" )
149
+ link_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} gflags/lib" )
150
+ link_directories ("${PADDLE_LIB_THIRD_PARTY_PATH} xxhash/lib" )
151
+ link_directories ("${PADDLE_LIB} /paddle/lib" )
152
+
153
+ if (WITH_MKL)
154
+ set (FLAG_OPENMP "-fopenmp" )
155
+ endif ()
156
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 ${FLAG_OPENMP} " )
157
+
158
+ if (USE_TENSORRT AND WITH_GPU)
159
+ set (TENSORRT_ROOT "" CACHE STRING "The root directory of TensorRT library" )
160
+ if ("${TENSORRT_ROOT} " STREQUAL "" )
161
+ message (FATAL_ERROR "The TENSORRT_ROOT is empty, you must assign it a value with CMake command. Such as: -DTENSORRT_ROOT=TENSORRT_ROOT_PATH " )
162
+ endif ()
163
+ set (TENSORRT_INCLUDE_DIR ${TENSORRT_ROOT} /include )
164
+ set (TENSORRT_LIB_DIR ${TENSORRT_ROOT} /lib)
165
+ endif ()
166
+
167
+ if (USE_TENSORRT AND WITH_GPU)
168
+ include_directories ("${TENSORRT_INCLUDE_DIR} " )
169
+ link_directories ("${TENSORRT_LIB_DIR} " )
170
+ endif ()
171
+
172
+ if (WITH_MKL)
173
+ set (MATH_LIB_PATH "${PADDLE_LIB_THIRD_PARTY_PATH} mklml" )
174
+ include_directories ("${MATH_LIB_PATH} /include" )
175
+ set (MKLDNN_PATH "${PADDLE_LIB_THIRD_PARTY_PATH} mkldnn" )
176
+ if (EXISTS ${MKLDNN_PATH} )
177
+ include_directories ("${MKLDNN_PATH} /include" )
178
+ set (MKLDNN_LIB ${MKLDNN_PATH} /lib/libmkldnn.so.0)
179
+ endif ()
180
+ else ()
181
+ set (OPENBLAS_LIB_PATH "${PADDLE_LIB_THIRD_PARTY_PATH} openblas" )
182
+ include_directories ("${OPENBLAS_LIB_PATH} /include/openblas" )
183
+ endif ()
184
+
185
+ else ()
186
+ execute_process (COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import paddle; print(paddle.sysconfig.get_include())"
187
+ RESULT_VARIABLE _INC_PYTHON_SUCCESS
188
+ OUTPUT_VARIABLE _INC_PYTHON_VALUES)
189
+ if (NOT _INC_PYTHON_SUCCESS MATCHES 0)
190
+ message (FATAL_ERROR "Python config Error." )
191
+ endif ()
192
+ string (REGEX REPLACE ";" "\\\\ ;" _INC_PYTHON_VALUES ${_INC_PYTHON_VALUES} )
193
+ string (REGEX REPLACE "\n " ";" _INC_PYTHON_VALUES ${_INC_PYTHON_VALUES} )
194
+ list (GET _INC_PYTHON_VALUES 0 PY_INCLUDE_DIR)
195
+
196
+ list (APPEND COMMON_HEADER_DIRS ${PY_INCLUDE_DIR} )
197
+ list (APPEND COMMON_HEADER_DIRS ${PY_INCLUDE_DIR} /third_party)
198
+
199
+ execute_process (COMMAND ${PYTHON_PATH} "-c" "from __future__ import print_function; import paddle; print(paddle.sysconfig.get_lib())"
200
+ RESULT_VARIABLE _LIB_PYTHON_SUCCESS
201
+ OUTPUT_VARIABLE _LIB_PYTHON_VALUES)
202
+ if (NOT _LIB_PYTHON_SUCCESS MATCHES 0)
203
+ message (FATAL_ERROR "Python config Error." )
204
+ endif ()
205
+ string (REGEX REPLACE ";" "\\\\ ;" _LIB_PYTHON_VALUES ${_LIB_PYTHON_VALUES} )
206
+ string (REGEX REPLACE "\n " ";" _LIB_PYTHON_VALUES ${_LIB_PYTHON_VALUES} )
207
+ list (GET _LIB_PYTHON_VALUES 0 PY_LIB_DIR)
208
+ list (APPEND COMMON_LIB_DIRS ${PY_LIB_DIR} )
209
+
210
+ include_directories (${PY_INCLUDE_DIR} )
211
+ include_directories (${PY_INCLUDE_DIR} \third_party)
139
212
213
+ endif ()
140
214
endif ()
141
215
142
216
include_directories (
0 commit comments