You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

package_script.cmake 3.6 kB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # find exec
  2. find_package(Python3 COMPONENTS Interpreter)
  3. if(NOT Python3_FOUND)
  4. message(FATAL_ERROR "No python3 found.")
  5. endif()
  6. set(PYTHON ${Python3_EXECUTABLE})
  7. set(PYTHON_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})
  8. if(NOT (PYTHON_VERSION MATCHES "3.9" OR PYTHON_VERSION MATCHES "3.8" OR PYTHON_VERSION MATCHES "3.7"))
  9. message(FATAL_ERROR "FIND PYTHON VERSION ${PYTHON_VERSION} BUT CAN NOT MATCH PYTHON VERSION 3.9 OR 3.8 OR 3.7")
  10. endif()
  11. find_package(Git)
  12. if(NOT GIT_FOUND)
  13. message("No git found.")
  14. return()
  15. endif()
  16. set(GIT ${GIT_EXECUTABLE})
  17. # set path
  18. set(MS_ROOT_DIR ${CPACK_PACKAGE_DIRECTORY}/../../)
  19. set(MS_PACK_ROOT_DIR ${MS_ROOT_DIR}/build/package)
  20. # set package file name
  21. if(CMAKE_SYSTEM_NAME MATCHES "Linux")
  22. if(PYTHON_VERSION MATCHES "3.9")
  23. set(PY_TAGS "cp39-cp39")
  24. elseif(PYTHON_VERSION MATCHES "3.8")
  25. set(PY_TAGS "cp38-cp38")
  26. elseif(PYTHON_VERSION MATCHES "3.7")
  27. set(PY_TAGS "cp37-cp37m")
  28. else()
  29. message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'")
  30. return()
  31. endif()
  32. string(TOLOWER linux_${CMAKE_HOST_SYSTEM_PROCESSOR} PLATFORM_TAG)
  33. elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
  34. if(PYTHON_VERSION MATCHES "3.9")
  35. set(PY_TAGS "py39-none")
  36. elseif(PYTHON_VERSION MATCHES "3.8")
  37. set(PY_TAGS "py38-none")
  38. elseif(PYTHON_VERSION MATCHES "3.7")
  39. set(PY_TAGS "py37-none")
  40. else()
  41. message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'")
  42. return()
  43. endif()
  44. set(PLATFORM_TAG "any")
  45. elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
  46. if(PYTHON_VERSION MATCHES "3.9")
  47. set(PY_TAGS "cp39-cp39")
  48. elseif(PYTHON_VERSION MATCHES "3.8")
  49. set(PY_TAGS "cp38-cp38")
  50. elseif(PYTHON_VERSION MATCHES "3.7")
  51. set(PY_TAGS "cp37-cp37m")
  52. else()
  53. message("Could not find 'Python 3.9' OR 'Python 3.8' or 'Python 3.7'")
  54. return()
  55. endif()
  56. set(PLATFORM_TAG "win_amd64")
  57. else()
  58. message(FATAL_ERROR "other platform: ${CMAKE_SYSTEM_NAME}")
  59. endif()
  60. # get git commit id
  61. set(GIT_COMMIT_ID "")
  62. execute_process(
  63. COMMAND ${GIT} log --format='[sha1]:%h,[branch]:%d' --abbrev=8 -1
  64. OUTPUT_VARIABLE GIT_COMMIT_ID
  65. WORKING_DIRECTORY ${MS_ROOT_DIR}
  66. ERROR_QUIET)
  67. string(REPLACE " " "" GIT_COMMIT_ID ${GIT_COMMIT_ID})
  68. set(ENV{BACKEND_POLICY} ${CPACK_MS_BACKEND})
  69. set(ENV{BACKEND_TARGET} ${CPACK_MS_TARGET})
  70. set(ENV{MS_PACKAGE_NAME} ${CPACK_MS_PACKAGE_NAME})
  71. set(ENV{COMMIT_ID} ${GIT_COMMIT_ID})
  72. execute_process(
  73. COMMAND ${PYTHON} ${MS_ROOT_DIR}/setup.py "bdist_wheel"
  74. WORKING_DIRECTORY ${MS_PACK_ROOT_DIR}
  75. )
  76. # finally
  77. set(PACKAGE_NAME ${CPACK_MS_PACKAGE_NAME})
  78. if(NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
  79. string(REPLACE "-" "_" PACKAGE_NAME ${PACKAGE_NAME})
  80. execute_process(
  81. COMMAND chmod -R 700 ${MS_PACK_ROOT_DIR}/mindspore/
  82. COMMAND chmod -R 700 ${MS_PACK_ROOT_DIR}/${PACKAGE_NAME}.egg-info/
  83. )
  84. endif()
  85. file(GLOB WHL_FILE ${MS_PACK_ROOT_DIR}/dist/*.whl)
  86. get_filename_component(ORIGIN_FILE_NAME ${WHL_FILE} NAME)
  87. string(REPLACE "-" ";" ORIGIN_FILE_NAME ${ORIGIN_FILE_NAME})
  88. list(GET ORIGIN_FILE_NAME 1 VERSION)
  89. set(NEW_FILE_NAME ${PACKAGE_NAME}-${VERSION}-${PY_TAGS}-${PLATFORM_TAG}.whl)
  90. file(RENAME ${WHL_FILE} ${MS_PACK_ROOT_DIR}/${NEW_FILE_NAME})
  91. file(REMOVE_RECURSE ${MS_ROOT_DIR}/output)
  92. file(MAKE_DIRECTORY ${MS_ROOT_DIR}/output)
  93. file(COPY ${MS_PACK_ROOT_DIR}/${NEW_FILE_NAME} DESTINATION ${MS_ROOT_DIR}/output/)
  94. file(SHA256 ${MS_ROOT_DIR}/output/${NEW_FILE_NAME} SHA256_VAR)
  95. file(WRITE ${MS_ROOT_DIR}/output/${NEW_FILE_NAME}.sha256 ${SHA256_VAR} " " ${NEW_FILE_NAME})