• 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 ${BUILD_PATH}/package/mindspore)
12set(CPACK_TEMPORARY_INSTALL_DIRECTORY ${BUILD_PATH}/package/mindspore)
13set(CPACK_PACK_ROOT_DIR ${BUILD_PATH}/package/)
14set(CPACK_CMAKE_SOURCE_DIR ${CMAKE_SOURCE_DIR})
15set(CPACK_ENABLE_SYM_FILE ${ENABLE_SYM_FILE})
16set(CPACK_CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE})
17set(CPACK_PYTHON_EXE ${Python3_EXECUTABLE})
18set(CPACK_PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})
19
20if(ENABLE_GPU)
21    set(CPACK_MS_BACKEND "ms")
22elseif(ENABLE_D)
23    set(CPACK_MS_BACKEND "ms")
24elseif(ENABLE_CPU)
25    set(CPACK_MS_BACKEND "ms")
26else()
27    set(CPACK_MS_BACKEND "debug")
28endif()
29if(BUILD_DEV_MODE)
30    # providing cuda11 version of dev package only
31    set(CPACK_MS_PACKAGE_NAME "mindspore-dev")
32else()
33    set(CPACK_MS_PACKAGE_NAME "mindspore")
34endif()
35include(CPack)
36
37# set install path
38set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
39set(INSTALL_PY_DIR ".")
40set(INSTALL_BASE_DIR ".")
41set(INSTALL_BIN_DIR "bin")
42set(INSTALL_CFG_DIR "config")
43set(INSTALL_LIB_DIR "lib")
44set(INSTALL_PLUGIN_DIR "${INSTALL_LIB_DIR}/plugin")
45set(INSTALL_ASCEND_DIR "${INSTALL_PLUGIN_DIR}/ascend")
46# set package files
47install(
48    TARGETS _c_expression
49    DESTINATION ${INSTALL_BASE_DIR}
50    COMPONENT mindspore
51)
52
53if(ENABLE_DEBUGGER)
54    install(
55        TARGETS _mindspore_offline_debug
56        DESTINATION ${INSTALL_BASE_DIR}
57        COMPONENT mindspore
58    )
59endif()
60
61install(
62    TARGETS mindspore_shared_lib
63    DESTINATION ${INSTALL_LIB_DIR}
64    COMPONENT mindspore
65)
66
67if(ENABLE_D OR ENABLE_GPU)
68    install(
69            TARGETS api_lib
70            DESTINATION ${INSTALL_LIB_DIR}
71            COMPONENT mindspore
72    )
73endif()
74
75install(
76    TARGETS mindspore_core mindspore_common mindspore_backend mindspore_np_dtype
77    DESTINATION ${INSTALL_LIB_DIR}
78    COMPONENT mindspore
79)
80
81if(ENABLE_D)
82    install(
83        TARGETS mindspore_ascend LIBRARY
84        DESTINATION ${INSTALL_PLUGIN_DIR}
85        COMPONENT mindspore
86        NAMELINK_SKIP
87    )
88endif()
89
90if(ENABLE_GPU)
91    install(
92            TARGETS mindspore_gpu LIBRARY
93            DESTINATION ${INSTALL_PLUGIN_DIR}
94            COMPONENT mindspore
95            NAMELINK_SKIP
96    )
97endif()
98
99if(USE_GLOG)
100    install(FILES ${glog_LIBPATH}/libmindspore_glog.so.0.4.0
101      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_glog.so.0 COMPONENT mindspore)
102endif()
103
104if(ENABLE_MINDDATA)
105    install(
106        TARGETS _c_dataengine _c_mindrecord
107        DESTINATION ${INSTALL_BASE_DIR}
108        COMPONENT mindspore
109    )
110    if(CMAKE_SYSTEM_NAME MATCHES "Linux")
111        install(
112            TARGETS cache_admin cache_server
113            OPTIONAL
114            DESTINATION ${INSTALL_BIN_DIR}
115            COMPONENT mindspore
116        )
117    endif()
118
119    if(ENABLE_FFMPEG)
120        install(FILES ${ffmpeg_LIBPATH}/libavcodec.so.59.37.100
121          DESTINATION ${INSTALL_LIB_DIR} RENAME libavcodec.so.59 COMPONENT mindspore)
122        install(FILES ${ffmpeg_LIBPATH}/libavdevice.so.59.7.100
123          DESTINATION ${INSTALL_LIB_DIR} RENAME libavdevice.so.59 COMPONENT mindspore)
124        install(FILES ${ffmpeg_LIBPATH}/libavfilter.so.8.44.100
125          DESTINATION ${INSTALL_LIB_DIR} RENAME libavfilter.so.8 COMPONENT mindspore)
126        install(FILES ${ffmpeg_LIBPATH}/libavformat.so.59.27.100
127          DESTINATION ${INSTALL_LIB_DIR} RENAME libavformat.so.59 COMPONENT mindspore)
128        install(FILES ${ffmpeg_LIBPATH}/libavutil.so.57.28.100
129          DESTINATION ${INSTALL_LIB_DIR} RENAME libavutil.so.57 COMPONENT mindspore)
130        install(FILES ${ffmpeg_LIBPATH}/libswresample.so.4.7.100
131          DESTINATION ${INSTALL_LIB_DIR} RENAME libswresample.so.4 COMPONENT mindspore)
132        install(FILES ${ffmpeg_LIBPATH}/libswscale.so.6.7.100
133          DESTINATION ${INSTALL_LIB_DIR} RENAME libswscale.so.6 COMPONENT mindspore)
134    endif()
135
136    install(FILES ${opencv_LIBPATH}/libopencv_core.so.4.5.2
137      DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_core.so.4.5 COMPONENT mindspore)
138    install(FILES ${opencv_LIBPATH}/libopencv_imgcodecs.so.4.5.2
139      DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgcodecs.so.4.5 COMPONENT mindspore)
140    install(FILES ${opencv_LIBPATH}/libopencv_imgproc.so.4.5.2
141      DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgproc.so.4.5 COMPONENT mindspore)
142    install(FILES ${tinyxml2_LIBPATH}/libtinyxml2.so.8.0.0
143      DESTINATION ${INSTALL_LIB_DIR} RENAME libtinyxml2.so.8 COMPONENT mindspore)
144
145    install(FILES ${icu4c_LIBPATH}/libicuuc.so.69.1
146      DESTINATION ${INSTALL_LIB_DIR} RENAME libicuuc.so.69 COMPONENT mindspore)
147    install(FILES ${icu4c_LIBPATH}/libicudata.so.69.1
148      DESTINATION ${INSTALL_LIB_DIR} RENAME libicudata.so.69 COMPONENT mindspore)
149    install(FILES ${icu4c_LIBPATH}/libicui18n.so.69.1
150      DESTINATION ${INSTALL_LIB_DIR} RENAME libicui18n.so.69 COMPONENT mindspore)
151    install(FILES ${jemalloc_LIBPATH}/libjemalloc.so.2 DESTINATION ${INSTALL_LIB_DIR} COMPONENT mindspore)
152endif()
153
154if(ENABLE_CPU)
155    if(CMAKE_SYSTEM_NAME MATCHES "Linux")
156        install(FILES ${onednn_LIBPATH}/libdnnl.so.2.2
157          DESTINATION ${INSTALL_LIB_DIR} RENAME libdnnl.so.2 COMPONENT mindspore)
158    elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
159        file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/libdnnl*${CMAKE_SHARED_LIBRARY_SUFFIX}*)
160        install(
161            FILES ${DNNL_LIB_LIST}
162            DESTINATION ${INSTALL_LIB_DIR}
163            COMPONENT mindspore
164        )
165    endif()
166    install(
167        TARGETS nnacl
168        DESTINATION ${INSTALL_LIB_DIR}
169        COMPONENT mindspore
170    )
171endif()
172
173if(ENABLE_MPI)
174    if(ENABLE_CPU)
175        install(
176            TARGETS mpi_adapter
177            DESTINATION ${INSTALL_LIB_DIR}
178            COMPONENT mindspore
179        )
180        install(
181          TARGETS mpi_collective
182          DESTINATION ${INSTALL_LIB_DIR}
183          COMPONENT mindspore
184        )
185    endif()
186    if(ENABLE_D)
187        install(
188                TARGETS _ascend_mpi
189                DESTINATION ${INSTALL_BASE_DIR}
190                COMPONENT mindspore
191        )
192    endif()
193endif()
194
195if(ENABLE_GPU)
196    if(ENABLE_MPI)
197        install(
198          TARGETS nvidia_collective
199          DESTINATION ${INSTALL_PLUGIN_DIR}/gpu${CUDA_VERSION}
200          COMPONENT mindspore
201        )
202        if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND GPU_BACKEND_CUDA)
203            install(FILES ${nccl_LIBPATH}/libnccl.so.2.16.5 DESTINATION ${INSTALL_PLUGIN_DIR}/gpu${CUDA_VERSION}
204                    RENAME libnccl.so.2 COMPONENT mindspore)
205        endif()
206    endif()
207    install(
208            TARGETS cuda_ops LIBRARY
209            DESTINATION ${INSTALL_PLUGIN_DIR}/gpu${CUDA_VERSION}
210            COMPONENT mindspore
211            NAMELINK_SKIP
212    )
213endif()
214
215if(ENABLE_D)
216    if(ENABLE_MPI)
217        install(
218                TARGETS ascend_collective
219                DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
220                COMPONENT mindspore
221        )
222        if(DEFINED ENV{MS_INTERNAL_KERNEL_HOME})
223            install(
224                    TARGETS lowlatency_collective
225                    DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
226                    COMPONENT mindspore
227            )
228        endif()
229    endif()
230endif()
231
232if(ENABLE_CPU AND NOT WIN32)
233    install(
234        TARGETS ps_cache
235        DESTINATION ${INSTALL_LIB_DIR}
236        COMPONENT mindspore
237    )
238endif()
239
240if(ENABLE_D OR ENABLE_ACL)
241    if(DEFINED ENV{ASCEND_CUSTOM_PATH})
242        set(ASCEND_PATH $ENV{ASCEND_CUSTOM_PATH})
243    else()
244        set(ASCEND_PATH /usr/local/Ascend)
245    endif()
246    set(ASCEND_DRIVER_PATH ${ASCEND_PATH}/driver/lib64/common)
247
248    if(ENABLE_D)
249        install(
250          TARGETS hccl_plugin
251          DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
252          COMPONENT mindspore
253        )
254    endif()
255    if(ENABLE_ACL)
256        install(
257                TARGETS dvpp_utils
258                DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
259                COMPONENT mindspore
260        )
261    endif()
262endif()
263
264if(MS_BUILD_GRPC)
265    install(FILES ${grpc_LIBPATH}/libmindspore_grpc++.so.1.36.1
266      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc++.so.1 COMPONENT mindspore)
267    install(FILES ${grpc_LIBPATH}/libmindspore_grpc.so.15.0.0
268      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc.so.15 COMPONENT mindspore)
269    install(FILES ${grpc_LIBPATH}/libmindspore_gpr.so.15.0.0
270      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_gpr.so.15 COMPONENT mindspore)
271    install(FILES ${grpc_LIBPATH}/libmindspore_upb.so.15.0.0
272      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_upb.so.15 COMPONENT mindspore)
273    install(FILES ${grpc_LIBPATH}/libmindspore_address_sorting.so.15.0.0
274      DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_address_sorting.so.15 COMPONENT mindspore)
275endif()
276
277if(CMAKE_SYSTEM_NAME MATCHES "Windows")
278    get_filename_component(CXX_DIR ${CMAKE_CXX_COMPILER} PATH)
279    file(GLOB CXX_LIB_LIST ${CXX_DIR}/*.dll)
280
281    string(REPLACE "\\" "/" SystemRoot $ENV{SystemRoot})
282    file(GLOB VC_LIB_LIST ${SystemRoot}/System32/msvcp140.dll ${SystemRoot}/System32/vcomp140.dll)
283
284    file(GLOB JPEG_LIB_LIST ${jpeg_turbo_LIBPATH}/*.dll)
285    file(GLOB SQLITE_LIB_LIST ${sqlite_LIBPATH}/*.dll)
286    install(
287        FILES ${CXX_LIB_LIST} ${JPEG_LIB_LIST} ${SQLITE_LIB_LIST} ${VC_LIB_LIST}
288        DESTINATION ${INSTALL_LIB_DIR}
289        COMPONENT mindspore
290    )
291endif()
292
293# set python files
294file(GLOB MS_PY_LIST ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/*.py)
295install(
296    FILES ${MS_PY_LIST}
297    DESTINATION ${INSTALL_PY_DIR}
298    COMPONENT mindspore
299)
300
301file(GLOB NOTICE ${CMAKE_SOURCE_DIR}/Third_Party_Open_Source_Software_Notice)
302install(
303    FILES ${NOTICE}
304    DESTINATION ${INSTALL_PY_DIR}
305    COMPONENT mindspore
306)
307install(
308    DIRECTORY
309        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/nn
310        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/_extends
311        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/parallel
312        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mindrecord
313        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/numpy
314        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/scipy
315        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/train
316        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/boost
317        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/common
318        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops
319        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops_generate
320        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/communication
321        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/profiler
322        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/rewrite
323        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/safeguard
324        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/run_check
325        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/experimental
326        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mint
327        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/multiprocessing
328        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/hal
329    DESTINATION ${INSTALL_PY_DIR}
330    COMPONENT mindspore
331)
332
333if(ENABLE_AKG AND CMAKE_SYSTEM_NAME MATCHES "Linux")
334    set (AKG_PATH ${BUILD_PATH}/mindspore/akg)
335    file(REMOVE_RECURSE ${AKG_PATH}/_akg)
336    file(MAKE_DIRECTORY ${AKG_PATH}/_akg)
337    file(TOUCH ${AKG_PATH}/_akg/__init__.py)
338    install(DIRECTORY "${AKG_PATH}/akg" DESTINATION "${AKG_PATH}/_akg")
339    install(
340        DIRECTORY
341            ${AKG_PATH}/_akg
342        DESTINATION ${INSTALL_PY_DIR}/
343        COMPONENT mindspore
344    )
345    if(ENABLE_CPU AND NOT ENABLE_GPU AND NOT ENABLE_D)
346        install(
347                TARGETS akg
348                DESTINATION ${INSTALL_PLUGIN_DIR}/cpu
349                COMPONENT mindspore
350        )
351    endif()
352
353    if(ENABLE_GPU)
354        install(
355                TARGETS akg
356                DESTINATION ${INSTALL_PLUGIN_DIR}/gpu${CUDA_VERSION}
357                COMPONENT mindspore
358        )
359    endif()
360
361    if(ENABLE_D)
362        install(
363                TARGETS akg
364                DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
365                COMPONENT mindspore
366        )
367    endif()
368endif()
369
370if(ENABLE_D)
371    if(DEFINED ENV{MS_INTERNAL_KERNEL_HOME})
372        set(_MS_INTERNAL_KERNEL_HOME $ENV{MS_INTERNAL_KERNEL_HOME})
373        install(
374            DIRECTORY ${_MS_INTERNAL_KERNEL_HOME}
375            DESTINATION ${INSTALL_PLUGIN_DIR}/ascend
376            COMPONENT mindspore
377        )
378    endif()
379endif()
380
381if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset)
382    install(
383        DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset
384        DESTINATION ${INSTALL_PY_DIR}
385        COMPONENT mindspore
386    )
387endif()
388
389if(CMAKE_SYSTEM_NAME MATCHES "Windows")
390    message("offline debugger does not support windows system temporarily")
391else()
392    if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/offline_debug)
393        install(
394            DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/offline_debug
395            DESTINATION ${INSTALL_PY_DIR}
396            COMPONENT mindspore
397        )
398    endif()
399endif()
400
401## Public header files
402install(
403    DIRECTORY ${CMAKE_SOURCE_DIR}/include
404    DESTINATION ${INSTALL_BASE_DIR}
405    COMPONENT mindspore
406)
407
408## Public header files for minddata
409install(
410    FILES ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/config.h
411          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h
412          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h
413          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/text.h
414          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h
415          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision.h
416          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h
417          ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_ascend.h
418    DESTINATION ${INSTALL_BASE_DIR}/include/dataset
419    COMPONENT mindspore
420)
421
422install(
423    FILES
424        ${CMAKE_SOURCE_DIR}/mindspore/core/mindapi/base/format.h
425        ${CMAKE_SOURCE_DIR}/mindspore/core/mindapi/base/type_id.h
426        ${CMAKE_SOURCE_DIR}/mindspore/core/mindapi/base/types.h
427    DESTINATION ${INSTALL_BASE_DIR}/include/mindapi/base
428    COMPONENT mindspore)
429
430## config files
431install(
432    FILES ${CMAKE_SOURCE_DIR}/config/op_info.config
433    DESTINATION ${INSTALL_CFG_DIR}
434    COMPONENT mindspore
435)
436
437if(ENABLE_AIO)
438    install(
439        TARGETS aio_plugin
440        DESTINATION ${INSTALL_LIB_DIR}
441        COMPONENT mindspore
442    )
443endif()
444
445if(ENABLE_D)
446    install(
447        DIRECTORY
448        ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/custom_compiler
449        DESTINATION ${INSTALL_ASCEND_DIR}
450        COMPONENT mindspore
451    )
452endif()
453
454
455