• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# include dependency
2include(CMakePackageConfigHelpers)
3include(GNUInstallDirs)
4
5# set package information
6set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
7set(CPACK_GENERATOR "External")
8set(CPACK_CMAKE_GENERATOR "Ninja")
9set(CPACK_EXTERNAL_PACKAGE_SCRIPT ${CMAKE_SOURCE_DIR}/cmake/package_script.cmake)
10set(CPACK_EXTERNAL_ENABLE_STAGING true)
11set(CPACK_TEMPORARY_PACKAGE_FILE_NAME ${CMAKE_SOURCE_DIR}/build/package/mindspore)
12set(CPACK_TEMPORARY_INSTALL_DIRECTORY ${CMAKE_SOURCE_DIR}/build/package/mindspore)
13set(CPACK_PACK_ROOT_DIR ${BUILD_PATH}/package/)
14set(CPACK_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
15set(CPACK_PYTHON_EXE ${Python3_EXECUTABLE})
16set(CPACK_PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})
17
18if(ENABLE_GPU)
19  set(CPACK_MS_BACKEND "ms")
20elseif(ENABLE_CPU)
21  set(CPACK_MS_BACKEND "ms")
22else()
23  set(CPACK_MS_BACKEND "debug")
24endif()
25if(BUILD_DEV_MODE)
26  set(CPACK_MS_PACKAGE_NAME "mindspore_dev")
27else()
28  set(CPACK_MS_PACKAGE_NAME "mindspore")
29endif()
30include(CPack)
31
32# set install path
33set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
34set(INSTALL_PY_DIR ".")
35set(INSTALL_BASE_DIR ".")
36set(INSTALL_BIN_DIR "bin")
37set(INSTALL_CFG_DIR "config")
38set(INSTALL_PLUGIN_DIR ".")
39
40set(INSTALL_LIB_DIR ".")
41set(onednn_LIBPATH ${onednn_LIBPATH}/../bin/)
42set(glog_LIBPATH ${glog_LIBPATH}/../bin/)
43set(opencv_LIBPATH ${opencv_LIBPATH}/../bin/)
44set(jpeg_turbo_LIBPATH ${jpeg_turbo_LIBPATH}/../bin/)
45set(sqlite_LIBPATH ${sqlite_LIBPATH}/../bin/)
46set(tinyxml2_LIBPATH ${tinyxml2_LIBPATH}/../bin/)
47
48message("offline debugger does not support windows system temporarily")
49
50file(GLOB PROTO_PY_PB2_LST ${CMAKE_SOURCE_DIR}/build/mindspore/proto_py/proto/*_pb2.py)
51file(COPY ${PROTO_PY_PB2_LST} DESTINATION ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/train)
52
53# set package files
54install(
55  TARGETS _c_expression
56  DESTINATION ${INSTALL_BASE_DIR}
57  COMPONENT mindspore
58)
59
60install(
61  TARGETS mindspore_shared_lib
62  DESTINATION ${INSTALL_LIB_DIR}
63  COMPONENT mindspore
64)
65
66install(
67  TARGETS mindspore_core mindspore_common mindspore_backend mindspore_np_dtype
68  DESTINATION ${INSTALL_LIB_DIR}
69  COMPONENT mindspore
70)
71
72if(MSVC AND DEBUG_MODE)
73  install(
74    FILES  $<TARGET_PDB_FILE:_c_expression>
75    DESTINATION ${INSTALL_BASE_DIR}
76    COMPONENT mindspore
77  )
78
79  install(
80    FILES  $<TARGET_PDB_FILE:mindspore_shared_lib>
81    DESTINATION ${INSTALL_LIB_DIR}
82    COMPONENT mindspore
83  )
84
85  install(
86    FILES  $<TARGET_PDB_FILE:mindspore_core> $<TARGET_PDB_FILE:mindspore_common> $<TARGET_PDB_FILE:mindspore_backend>
87    DESTINATION ${INSTALL_LIB_DIR}
88    COMPONENT mindspore
89  )
90
91  install(
92    FILES  $<TARGET_PDB_FILE:mindspore_np_dtype>
93    DESTINATION ${INSTALL_LIB_DIR}
94    COMPONENT mindspore
95  )
96endif()
97
98if(USE_GLOG)
99  if(MSVC)
100      if(DEBUG_MODE)
101          file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/mindspore_glogd.dll)
102      else()
103          file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/mindspore_glog.dll)
104      endif()
105  else()
106    file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/libmindspore_glog.dll)
107  endif()
108  install(
109    FILES ${GLOG_LIB_LIST}
110    DESTINATION ${INSTALL_LIB_DIR}
111    COMPONENT mindspore
112  )
113endif()
114
115if(ENABLE_MINDDATA)
116  message("icu4c does not support windows system temporarily")
117  install(
118    TARGETS _c_dataengine _c_mindrecord
119    DESTINATION ${INSTALL_BASE_DIR}
120    COMPONENT mindspore
121  )
122  if(MSVC AND DEBUG_MODE)
123    install(
124      FILES $<TARGET_PDB_FILE:_c_dataengine> $<TARGET_PDB_FILE:_c_mindrecord>
125      DESTINATION ${INSTALL_BASE_DIR}
126      COMPONENT mindspore
127    )
128  endif()
129  if(MSVC)
130    file(GLOB_RECURSE OPENCV_LIB_LIST
131      ${opencv_LIBPATH}/opencv_core*
132      ${opencv_LIBPATH}/opencv_imgcodecs*
133      ${opencv_LIBPATH}/opencv_imgproc*
134      )
135  else()
136    file(GLOB_RECURSE OPENCV_LIB_LIST
137      ${opencv_LIBPATH}/libopencv_core*
138      ${opencv_LIBPATH}/libopencv_imgcodecs*
139      ${opencv_LIBPATH}/libopencv_imgproc*
140      )
141  endif()
142  install(
143    FILES ${OPENCV_LIB_LIST}
144    DESTINATION ${INSTALL_LIB_DIR}
145    COMPONENT mindspore
146  )
147
148  if(MSVC)
149    if(ENABLE_FFMPEG)
150      set(ffmpeg_LIB_PATH ${CMAKE_SOURCE_DIR}/build/mindspore/ffmpeg_lib)
151      file(GLOB FFMPEG_LIB_LIST ${ffmpeg_LIB_PATH}/bin/*.dll)
152      install(
153        FILES ${FFMPEG_LIB_LIST}
154        DESTINATION ${INSTALL_LIB_DIR}
155        COMPONENT mindspore
156      )
157    endif()
158  endif()
159
160  if(MSVC)
161      if(DEBUG_MODE)
162          file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/tinyxml2d.dll)
163      else()
164          file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/tinyxml2.dll)
165      endif()
166  else()
167    file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/libtinyxml2.dll)
168  endif()
169
170  install(
171    FILES ${TINYXML2_LIB_LIST}
172    DESTINATION ${INSTALL_LIB_DIR}
173    COMPONENT mindspore
174  )
175endif()
176
177if(ENABLE_CPU)
178  file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/dnnl.dll)
179  install(
180    FILES ${DNNL_LIB_LIST}
181    DESTINATION ${INSTALL_LIB_DIR}
182    COMPONENT mindspore
183  )
184  install(
185    TARGETS nnacl
186    DESTINATION ${INSTALL_LIB_DIR}
187    COMPONENT mindspore
188  )
189endif()
190
191if(ENABLE_MPI)
192  if(ENABLE_CPU)
193    install(
194      TARGETS mpi_adapter
195      DESTINATION ${INSTALL_LIB_DIR}
196      COMPONENT mindspore
197    )
198    install(
199      TARGETS mpi_collective
200      DESTINATION ${INSTALL_LIB_DIR}
201      COMPONENT mindspore
202    )
203  endif()
204endif()
205
206if(ENABLE_GPU)
207  if(ENABLE_MPI)
208    install(
209      TARGETS nvidia_collective
210      DESTINATION ${INSTALL_LIB_DIR}
211      COMPONENT mindspore
212    )
213  endif()
214  install(
215    TARGETS cuda_ops
216    DESTINATION ${INSTALL_LIB_DIR}
217    COMPONENT mindspore
218  )
219  install(
220    TARGETS mindspore_gpu
221    DESTINATION ${INSTALL_PLUGIN_DIR}
222    COMPONENT mindspore
223  )
224endif()
225
226get_filename_component(CXX_DIR ${CMAKE_CXX_COMPILER} PATH)
227file(GLOB CXX_LIB_LIST ${CXX_DIR}/*.dll)
228
229string(REPLACE "\\" "/" SystemRoot $ENV{SystemRoot})
230file(GLOB VC_LIB_LIST ${SystemRoot}/System32/msvcp140.dll ${SystemRoot}/System32/vcomp140.dll)
231
232file(GLOB JPEG_LIB_LIST ${jpeg_turbo_LIBPATH}/*.dll)
233
234install(
235  FILES ${CXX_LIB_LIST} ${JPEG_LIB_LIST} ${VC_LIB_LIST}
236  DESTINATION ${INSTALL_LIB_DIR}
237  COMPONENT mindspore
238)
239
240if(NOT MSVC)
241  file(GLOB SQLITE_LIB_LIST ${sqlite_LIBPATH}/*.dll)
242  install(
243    FILES ${SQLITE_LIB_LIST}
244    DESTINATION ${INSTALL_LIB_DIR}
245    COMPONENT mindspore
246  )
247endif()
248
249# set python files
250file(GLOB MS_PY_LIST ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/*.py)
251install(
252  FILES ${MS_PY_LIST}
253  DESTINATION ${INSTALL_PY_DIR}
254  COMPONENT mindspore
255)
256
257install(
258  DIRECTORY
259  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/nn
260  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/_extends
261  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/parallel
262  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mindrecord
263  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/numpy
264  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/train
265  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/boost
266  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/common
267  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops
268  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops_generate
269  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/communication
270  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/profiler
271  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/rewrite
272  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/safeguard
273  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/run_check
274  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/experimental
275  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mint
276  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/multiprocessing
277  ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/hal
278  DESTINATION ${INSTALL_PY_DIR}
279  COMPONENT mindspore
280)
281
282if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset)
283  install(
284    DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset
285    DESTINATION ${INSTALL_PY_DIR}
286    COMPONENT mindspore
287  )
288endif()
289
290## Public header files
291install(
292  DIRECTORY ${CMAKE_SOURCE_DIR}/include
293  DESTINATION ${INSTALL_BASE_DIR}
294  COMPONENT mindspore
295)
296
297## Public header files for minddata
298install(
299  FILES ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/config.h
300  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h
301  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h
302  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/text.h
303  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h
304  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision.h
305  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h
306  ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_ascend.h
307  DESTINATION ${INSTALL_BASE_DIR}/include/dataset
308  COMPONENT mindspore
309)
310
311## config files
312install(
313        FILES ${CMAKE_SOURCE_DIR}/config/op_info.config
314        DESTINATION ${INSTALL_CFG_DIR}
315        COMPONENT mindspore
316)
317