diff --git a/CMakeLists.txt b/CMakeLists.txt index d341c39c848..0b61c1987f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,7 +95,9 @@ if(ENABLE_TESTCASES OR ENABLE_CPP_ST) endif() if(MODE_ASCEND_ACL) - include(cmake/package_acl.cmake) + include(cmake/package_tar.cmake) +elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") + include(cmake/package_win.cmake) else() include(cmake/package.cmake) endif() diff --git a/cmake/package.cmake b/cmake/package.cmake index 1dea798cce4..1d7487abad0 100644 --- a/cmake/package.cmake +++ b/cmake/package.cmake @@ -43,19 +43,7 @@ set(INSTALL_PY_DIR ".") set(INSTALL_BASE_DIR ".") set(INSTALL_BIN_DIR "bin") set(INSTALL_CFG_DIR "config") - -if(CMAKE_SYSTEM_NAME MATCHES "Windows") - set(INSTALL_LIB_DIR ".") - set(onednn_LIBPATH ${onednn_LIBPATH}/../bin/) - set(glog_LIBPATH ${glog_LIBPATH}/../bin/) - set(opencv_LIBPATH ${opencv_LIBPATH}/../bin/) - set(jpeg_turbo_LIBPATH ${jpeg_turbo_LIBPATH}/../bin/) - set(sqlite_LIBPATH ${sqlite_LIBPATH}/../bin/) - set(tinyxml2_LIBPATH ${tinyxml2_LIBPATH}/../bin/) -else() - set(INSTALL_LIB_DIR "lib") -endif() - +set(INSTALL_LIB_DIR "lib") # set package files install( TARGETS _c_expression @@ -63,15 +51,11 @@ install( COMPONENT mindspore ) -if(CMAKE_SYSTEM_NAME MATCHES "Windows") - message("offline debugger does not support windows system temporarily") -else() - install( - TARGETS _mindspore_offline_debug - DESTINATION ${INSTALL_BASE_DIR} - COMPONENT mindspore - ) -endif() +install( + TARGETS _mindspore_offline_debug + DESTINATION ${INSTALL_BASE_DIR} + COMPONENT mindspore +) install( TARGETS mindspore_shared_lib @@ -86,24 +70,20 @@ install( ) if(USE_GLOG) - file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/libmindspore_glog*) - install( - FILES ${GLOG_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore - ) + install(FILES ${glog_LIBPATH}/libmindspore_glog.so.0.4.0 + DESTINATION ${INSTALL_LIB_DIR} RENAME libmindspore_glog.so.0 COMPONENT mindspore) endif() -file(GLOB_RECURSE LIBEVENT_LIB_LIST - ${libevent_LIBPATH}/libevent*${CMAKE_SHARED_LIBRARY_SUFFIX}* - ${libevent_LIBPATH}/libevent_pthreads*${CMAKE_SHARED_LIBRARY_SUFFIX}* - ) - -install( - FILES ${LIBEVENT_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore -) +install(FILES ${libevent_LIBPATH}/libevent-2.1.so.7.0.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libevent-2.1.so.7 COMPONENT mindspore) +install(FILES ${libevent_LIBPATH}/libevent_core-2.1.so.7.0.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libevent_core-2.1.so.7 COMPONENT mindspore) +install(FILES ${libevent_LIBPATH}/libevent_extra-2.1.so.7.0.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libevent_extra-2.1.so.7 COMPONENT mindspore) +install(FILES ${libevent_LIBPATH}/libevent_openssl-2.1.so.7.0.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libevent_openssl-2.1.so.7 COMPONENT mindspore) +install(FILES ${libevent_LIBPATH}/libevent_pthreads-2.1.so.7.0.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libevent_pthreads-2.1.so.7 COMPONENT mindspore) if(ENABLE_MINDDATA) install( @@ -119,51 +99,36 @@ if(ENABLE_MINDDATA) COMPONENT mindspore ) endif() - file(GLOB_RECURSE OPENCV_LIB_LIST - ${opencv_LIBPATH}/libopencv_core* - ${opencv_LIBPATH}/libopencv_imgcodecs* - ${opencv_LIBPATH}/libopencv_imgproc* - ) - install( - FILES ${OPENCV_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore - ) - file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/libtinyxml2*) - install( - FILES ${TINYXML2_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore - ) - if(CMAKE_SYSTEM_NAME MATCHES "Windows") - message("icu4c does not support windows system temporarily") - else() - file(GLOB_RECURSE ICU4C_LIB_LIST - ${icu4c_LIBPATH}/libicuuc* - ${icu4c_LIBPATH}/libicudata* - ${icu4c_LIBPATH}/libicui18n* - ) - install( - FILES ${ICU4C_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore - ) - endif() + install(FILES ${opencv_LIBPATH}/libopencv_core.so.4.2.0 + DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_core.so.4.2 COMPONENT mindspore) + install(FILES ${opencv_LIBPATH}/libopencv_imgcodecs.so.4.2.0 + DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgcodecs.so.4.2 COMPONENT mindspore) + install(FILES ${opencv_LIBPATH}/libopencv_imgproc.so.4.2.0 + DESTINATION ${INSTALL_LIB_DIR} RENAME libopencv_imgproc.so.4.2 COMPONENT mindspore) + + install(FILES ${tinyxml2_LIBPATH}/libtinyxml2.so.8.0.0 + DESTINATION ${INSTALL_LIB_DIR} RENAME libtinyxml2.so.8 COMPONENT mindspore) + + install(FILES ${icu4c_LIBPATH}/libicuuc.so.67.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libicuuc.so.67 COMPONENT mindspore) + install(FILES ${icu4c_LIBPATH}/libicudata.so.67.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libicudata.so.67 COMPONENT mindspore) + install(FILES ${icu4c_LIBPATH}/libicui18n.so.67.1 + DESTINATION ${INSTALL_LIB_DIR} RENAME libicui18n.so.67 COMPONENT mindspore) endif() if(ENABLE_CPU) if(CMAKE_SYSTEM_NAME MATCHES "Linux") - file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/libdnnl${CMAKE_SHARED_LIBRARY_SUFFIX}*) + install(FILES ${onednn_LIBPATH}/libdnnl.so.2.2 + DESTINATION ${INSTALL_LIB_DIR} RENAME libdnnl.so.2 COMPONENT mindspore) elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/libdnnl*${CMAKE_SHARED_LIBRARY_SUFFIX}*) - elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") - file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/dnnl.dll) + install( + FILES ${DNNL_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) endif() - install( - FILES ${DNNL_LIB_LIST} - DESTINATION ${INSTALL_LIB_DIR} - COMPONENT mindspore - ) install( TARGETS nnacl DESTINATION ${INSTALL_LIB_DIR} @@ -211,13 +176,6 @@ if(ENABLE_CPU AND NOT WIN32) ) endif() -if(ENABLE_TESTCASES) - file(GLOB_RECURSE LIBEVENT_LIB_LIST - ${libevent_LIBPATH}/libevent* - ${libevent_LIBPATH}/libevent_pthreads* - ) -endif() - if(NOT ENABLE_GE) if(ENABLE_D OR ENABLE_ACL) if(DEFINED ENV{ASCEND_CUSTOM_PATH}) @@ -245,7 +203,6 @@ if(NOT ENABLE_GE) FILES ${CMAKE_BINARY_DIR}/graphengine/metadef/graph/libgraph.so ${CMAKE_SOURCE_DIR}/build/graphengine/c_sec/lib/libc_sec.so - ${LIBEVENT_LIB_LIST} DESTINATION ${INSTALL_LIB_DIR} COMPONENT mindspore ) diff --git a/cmake/package_acl.cmake b/cmake/package_tar.cmake similarity index 100% rename from cmake/package_acl.cmake rename to cmake/package_tar.cmake diff --git a/cmake/package_win.cmake b/cmake/package_win.cmake new file mode 100644 index 00000000000..038fcf7f391 --- /dev/null +++ b/cmake/package_win.cmake @@ -0,0 +1,235 @@ +# include dependency +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) + +# set package information +set(CPACK_PACKAGE_NAME ${PROJECT_NAME}) +set(CPACK_GENERATOR "External") +set(CPACK_CMAKE_GENERATOR "Ninja") +set(CPACK_EXTERNAL_PACKAGE_SCRIPT ${CMAKE_SOURCE_DIR}/cmake/package_script.cmake) +set(CPACK_EXTERNAL_ENABLE_STAGING true) +set(CPACK_TEMPORARY_PACKAGE_FILE_NAME ${CMAKE_SOURCE_DIR}/build/package/mindspore) +set(CPACK_TEMPORARY_INSTALL_DIRECTORY ${CMAKE_SOURCE_DIR}/build/package/mindspore) + +if(ENABLE_GPU) + set(CPACK_MS_BACKEND "ms") + set(CPACK_MS_TARGET "gpu or cpu") + set(CPACK_MS_PACKAGE_NAME "mindspore-gpu") +elseif(ENABLE_CPU) + set(CPACK_MS_BACKEND "ms") + set(CPACK_MS_TARGET "cpu") + set(CPACK_MS_PACKAGE_NAME "mindspore") +else() + set(CPACK_MS_BACKEND "debug") + set(CPACK_MS_TARGET "ascend or gpu or cpu") + set(CPACK_MS_PACKAGE_NAME "mindspore") +endif() +include(CPack) + +# set install path +set(INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries") +set(INSTALL_PY_DIR ".") +set(INSTALL_BASE_DIR ".") +set(INSTALL_BIN_DIR "bin") +set(INSTALL_CFG_DIR "config") + +set(INSTALL_LIB_DIR ".") +set(onednn_LIBPATH ${onednn_LIBPATH}/../bin/) +set(glog_LIBPATH ${glog_LIBPATH}/../bin/) +set(opencv_LIBPATH ${opencv_LIBPATH}/../bin/) +set(jpeg_turbo_LIBPATH ${jpeg_turbo_LIBPATH}/../bin/) +set(sqlite_LIBPATH ${sqlite_LIBPATH}/../bin/) +set(tinyxml2_LIBPATH ${tinyxml2_LIBPATH}/../bin/) + +message("offline debugger does not support windows system temporarily") + +# set package files +install( + TARGETS _c_expression + DESTINATION ${INSTALL_BASE_DIR} + COMPONENT mindspore +) + +install( + TARGETS mindspore_shared_lib + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore +) + +install( + TARGETS mindspore_gvar + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore +) + +if(USE_GLOG) + file(GLOB_RECURSE GLOG_LIB_LIST ${glog_LIBPATH}/libmindspore_glog.dll) + install( + FILES ${GLOG_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) +endif() + +if(ENABLE_MINDDATA) + message("icu4c does not support windows system temporarily") + install( + TARGETS _c_dataengine _c_mindrecord + DESTINATION ${INSTALL_BASE_DIR} + COMPONENT mindspore + ) + + file(GLOB_RECURSE OPENCV_LIB_LIST + ${opencv_LIBPATH}/libopencv_core* + ${opencv_LIBPATH}/libopencv_imgcodecs* + ${opencv_LIBPATH}/libopencv_imgproc* + ) + install( + FILES ${OPENCV_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) + file(GLOB_RECURSE TINYXML2_LIB_LIST ${tinyxml2_LIBPATH}/libtinyxml2.dll) + install( + FILES ${TINYXML2_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) +endif() + +if(ENABLE_CPU) + file(GLOB_RECURSE DNNL_LIB_LIST ${onednn_LIBPATH}/dnnl.dll) + install( + FILES ${DNNL_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) + install( + TARGETS nnacl + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) +endif() + +if(ENABLE_MPI) + if(ENABLE_GPU) + install( + TARGETS _ms_mpi + DESTINATION ${INSTALL_BASE_DIR} + COMPONENT mindspore + ) + endif() + if(ENABLE_CPU) + install( + TARGETS mpi_adapter + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) + endif() +endif() + +if(ENABLE_GPU) + if(ENABLE_MPI) + install( + TARGETS gpu_collective + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) + endif() + install( + TARGETS gpu_queue + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore + ) +endif() + +get_filename_component(CXX_DIR ${CMAKE_CXX_COMPILER} PATH) +file(GLOB CXX_LIB_LIST ${CXX_DIR}/*.dll) + +string(REPLACE "\\" "/" SystemRoot $ENV{SystemRoot}) +file(GLOB VC_LIB_LIST ${SystemRoot}/System32/msvcp140.dll ${SystemRoot}/System32/vcomp140.dll) + +file(GLOB JPEG_LIB_LIST ${jpeg_turbo_LIBPATH}/*.dll) +file(GLOB SQLITE_LIB_LIST ${sqlite_LIBPATH}/*.dll) +install( + FILES ${CXX_LIB_LIST} ${JPEG_LIB_LIST} ${SQLITE_LIB_LIST} ${VC_LIB_LIST} + DESTINATION ${INSTALL_LIB_DIR} + COMPONENT mindspore +) + +# set python files +file(GLOB MS_PY_LIST ${CMAKE_SOURCE_DIR}/mindspore/*.py) +install( + FILES ${MS_PY_LIST} + DESTINATION ${INSTALL_PY_DIR} + COMPONENT mindspore +) + +install( + DIRECTORY + ${CMAKE_SOURCE_DIR}/mindspore/nn + ${CMAKE_SOURCE_DIR}/mindspore/_extends + ${CMAKE_SOURCE_DIR}/mindspore/parallel + ${CMAKE_SOURCE_DIR}/mindspore/mindrecord + ${CMAKE_SOURCE_DIR}/mindspore/numpy + ${CMAKE_SOURCE_DIR}/mindspore/train + ${CMAKE_SOURCE_DIR}/mindspore/common + ${CMAKE_SOURCE_DIR}/mindspore/ops + ${CMAKE_SOURCE_DIR}/mindspore/communication + ${CMAKE_SOURCE_DIR}/mindspore/profiler + ${CMAKE_SOURCE_DIR}/mindspore/explainer + ${CMAKE_SOURCE_DIR}/mindspore/compression + ${CMAKE_SOURCE_DIR}/mindspore/run_check + DESTINATION ${INSTALL_PY_DIR} + COMPONENT mindspore +) + +if((ENABLE_D OR ENABLE_GPU) AND ENABLE_AKG) + set (AKG_PATH ${CMAKE_SOURCE_DIR}/build/mindspore/akg) + file(REMOVE_RECURSE ${AKG_PATH}/_akg) + file(MAKE_DIRECTORY ${AKG_PATH}/_akg) + file(TOUCH ${AKG_PATH}/_akg/__init__.py) + install(DIRECTORY "${AKG_PATH}/akg" DESTINATION "${AKG_PATH}/_akg") + install( + DIRECTORY + ${AKG_PATH}/_akg + DESTINATION ${INSTALL_PY_DIR}/ + COMPONENT mindspore + ) +endif() + +if(EXISTS ${CMAKE_SOURCE_DIR}/mindspore/dataset) + install( + DIRECTORY ${CMAKE_SOURCE_DIR}/mindspore/dataset + DESTINATION ${INSTALL_PY_DIR} + COMPONENT mindspore + ) +endif() + +## Public header files +install( + DIRECTORY ${CMAKE_SOURCE_DIR}/include + DESTINATION ${INSTALL_BASE_DIR} + COMPONENT mindspore +) + +## Public header files for minddata +install( + FILES ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/config.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/constants.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/execute.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/text.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/transforms.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_lite.h + ${CMAKE_SOURCE_DIR}/mindspore/ccsrc/minddata/dataset/include/dataset/vision_ascend.h + DESTINATION ${INSTALL_BASE_DIR}/include/dataset + COMPONENT mindspore +) + +## config files +install( + FILES ${CMAKE_SOURCE_DIR}/config/op_info.config + DESTINATION ${INSTALL_CFG_DIR} + COMPONENT mindspore +)