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