• 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})
19set(CPACK_OSX_DEPLOYMENT_TARGET ${CMAKE_OSX_DEPLOYMENT_TARGET})
20
21if(ENABLE_CPU)
22    set(CPACK_MS_BACKEND "ms")
23else()
24    set(CPACK_MS_BACKEND "debug")
25endif()
26if(BUILD_DEV_MODE)
27    set(CPACK_MS_PACKAGE_NAME "mindspore-dev")
28else()
29    set(CPACK_MS_PACKAGE_NAME "mindspore")
30endif()
31include(CPack)
32
33# set install path
34set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")
35set(INSTALL_PY_DIR ".")
36set(INSTALL_BASE_DIR ".")
37set(INSTALL_BIN_DIR "bin")
38set(INSTALL_CFG_DIR "config")
39set(INSTALL_LIB_DIR "lib")
40# set package files
41install(
42    TARGETS _c_expression
43    DESTINATION ${INSTALL_BASE_DIR}
44    COMPONENT mindspore
45)
46
47if(ENABLE_DEBUGGER)
48    install(
49        TARGETS _mindspore_offline_debug
50        DESTINATION ${INSTALL_BASE_DIR}
51        COMPONENT mindspore
52    )
53endif()
54
55install(
56    TARGETS mindspore_shared_lib
57    DESTINATION ${INSTALL_LIB_DIR}
58    COMPONENT mindspore
59)
60
61install(
62    TARGETS mindspore_core mindspore_common mindspore_backend mindspore_np_dtype
63    DESTINATION ${INSTALL_LIB_DIR}
64    COMPONENT mindspore
65)
66
67if(USE_GLOG)
68    install(FILES ${glog_LIBPATH}/libmindspore_glog.0.4.0.dylib
69        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_glog.0.dylib COMPONENT mindspore)
70endif()
71
72if(ENABLE_CPU AND NOT WIN32)
73    install(
74        TARGETS ps_cache
75        DESTINATION ${INSTALL_LIB_DIR}
76        COMPONENT mindspore
77    )
78endif()
79
80if(MS_BUILD_GRPC)
81    install(FILES ${grpc_LIBPATH}/libmindspore_grpc++.1.36.1.dylib
82        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc++.1.dylib COMPONENT mindspore)
83    install(FILES ${grpc_LIBPATH}/libmindspore_grpc.15.0.0.dylib
84        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_grpc.15.dylib COMPONENT mindspore)
85    install(FILES ${grpc_LIBPATH}/libmindspore_gpr.15.0.0.dylib
86        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_gpr.15.dylib COMPONENT mindspore)
87    install(FILES ${grpc_LIBPATH}/libmindspore_upb.15.0.0.dylib
88        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_upb.15.dylib COMPONENT mindspore)
89    install(FILES ${grpc_LIBPATH}/libmindspore_address_sorting.15.0.0.dylib
90        DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_address_sorting.15.dylib COMPONENT mindspore)
91endif()
92
93if(ENABLE_MINDDATA)
94    install(
95        TARGETS _c_dataengine _c_mindrecord
96        DESTINATION ${INSTALL_BASE_DIR}
97        COMPONENT mindspore
98    )
99
100    install(FILES ${opencv_LIBPATH}/libopencv_core.4.5.2.dylib
101        DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_core.4.5.dylib COMPONENT mindspore)
102    install(FILES ${opencv_LIBPATH}/libopencv_imgcodecs.4.5.2.dylib
103        DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgcodecs.4.5.dylib COMPONENT mindspore)
104    install(FILES ${opencv_LIBPATH}/libopencv_imgproc.4.5.2.dylib
105        DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgproc.4.5.dylib COMPONENT mindspore)
106    install(FILES ${tinyxml2_LIBPATH}/libtinyxml2.8.0.0.dylib
107        DESTINATION ${INSTALL_LIB_DIR} RENAME libtinyxml2.8.dylib COMPONENT mindspore)
108
109    install(FILES ${icu4c_LIBPATH}/libicuuc.69.1.dylib
110        DESTINATION ${INSTALL_LIB_DIR} RENAME libicuuc.69.dylib COMPONENT mindspore)
111    install(FILES ${icu4c_LIBPATH}/libicudata.69.1.dylib
112        DESTINATION ${INSTALL_LIB_DIR} RENAME libicudata.69.dylib COMPONENT mindspore)
113    install(FILES ${icu4c_LIBPATH}/libicui18n.69.1.dylib
114        DESTINATION ${INSTALL_LIB_DIR} RENAME libicui18n.69.dylib COMPONENT mindspore)
115
116    install(FILES ${ffmpeg_LIBPATH}/libavcodec.59.37.100.dylib
117        DESTINATION ${INSTALL_LIB_DIR} RENAME libavcodec.59.dylib COMPONENT mindspore)
118    install(FILES ${ffmpeg_LIBPATH}/libavdevice.59.7.100.dylib
119        DESTINATION ${INSTALL_LIB_DIR} RENAME libavdevice.59.dylib COMPONENT mindspore)
120    install(FILES ${ffmpeg_LIBPATH}/libavfilter.8.44.100.dylib
121        DESTINATION ${INSTALL_LIB_DIR} RENAME libavfilter.8.dylib COMPONENT mindspore)
122    install(FILES ${ffmpeg_LIBPATH}/libavformat.59.27.100.dylib
123        DESTINATION ${INSTALL_LIB_DIR} RENAME libavformat.59.dylib COMPONENT mindspore)
124    install(FILES ${ffmpeg_LIBPATH}/libavutil.57.28.100.dylib
125        DESTINATION ${INSTALL_LIB_DIR} RENAME libavutil.57.dylib COMPONENT mindspore)
126    install(FILES ${ffmpeg_LIBPATH}/libswresample.4.7.100.dylib
127        DESTINATION ${INSTALL_LIB_DIR} RENAME libswresample.4.dylib COMPONENT mindspore)
128    install(FILES ${ffmpeg_LIBPATH}/libswscale.6.7.100.dylib
129        DESTINATION ${INSTALL_LIB_DIR} RENAME libswscale.6.dylib COMPONENT mindspore)
130
131endif()
132
133if(ENABLE_CPU)
134    install(FILES ${onednn_LIBPATH}/libdnnl.2.2.dylib
135        DESTINATION ${INSTALL_LIB_DIR} RENAME libdnnl.2.dylib COMPONENT mindspore)
136    install(
137        TARGETS nnacl
138        DESTINATION ${INSTALL_LIB_DIR}
139        COMPONENT mindspore
140    )
141endif()
142
143if(ENABLE_MPI)
144    if(ENABLE_CPU)
145        install(
146            TARGETS mpi_adapter
147            DESTINATION ${INSTALL_LIB_DIR}
148            COMPONENT mindspore
149        )
150    endif()
151endif()
152
153if(ENABLE_GPU)
154    install(
155        TARGETS gpu_queue
156        DESTINATION ${INSTALL_LIB_DIR}
157        COMPONENT mindspore
158    )
159endif()
160
161# set python files
162file(GLOB MS_PY_LIST ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/*.py)
163install(
164    FILES ${MS_PY_LIST}
165    DESTINATION ${INSTALL_PY_DIR}
166    COMPONENT mindspore
167)
168
169install(
170    DIRECTORY
171    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/nn
172    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/_extends
173    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/parallel
174    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mindrecord
175    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/numpy
176    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/scipy
177    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/train
178    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/boost
179    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/common
180    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops
181    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/ops_generate
182    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/communication
183    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/profiler
184    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/rewrite
185    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/safeguard
186    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/run_check
187    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/experimental
188    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/mint
189    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/multiprocessing
190    ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/hal
191    DESTINATION ${INSTALL_PY_DIR}
192    COMPONENT mindspore
193)
194
195if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset)
196    install(
197        DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/dataset
198        DESTINATION ${INSTALL_PY_DIR}
199        COMPONENT mindspore
200    )
201endif()
202
203if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/offline_debug)
204    install(
205        DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/python/mindspore/offline_debug
206        DESTINATION ${INSTALL_PY_DIR}
207        COMPONENT mindspore
208    )
209endif()
210
211## Public header files
212install(
213    DIRECTORY ${CMAKE_SOURCE_DIR}/include
214    DESTINATION ${INSTALL_BASE_DIR}
215    COMPONENT mindspore
216)
217
218## Public header files for minddata
219install(
220    FILES ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/config.h
221    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h
222    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h
223    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/text.h
224    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h
225    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision.h
226    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h
227    ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_ascend.h
228    DESTINATION ${INSTALL_BASE_DIR}/include/dataset
229    COMPONENT mindspore
230)
231
232## config files
233install(
234        FILES ${CMAKE_SOURCE_DIR}/config/op_info.config
235        DESTINATION ${INSTALL_CFG_DIR}
236        COMPONENT mindspore
237)
238