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 2.9 kB

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