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.

build.sh 17 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554
  1. #!/bin/bash
  2. # Copyright 2019-2021 Huawei Technologies Co., Ltd
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. # ============================================================================
  16. set -e
  17. BASEPATH=$(cd "$(dirname $0)"; pwd)
  18. CUDA_PATH=""
  19. export BUILD_PATH="${BASEPATH}/build/"
  20. # print usage message
  21. usage()
  22. {
  23. echo "Usage:"
  24. echo "bash build.sh [-d] [-r] [-v] [-c on|off] [-t ut|st] [-g on|off] [-h] [-b ge] [-m infer|train] \\"
  25. echo " [-a on|off] [-p on|off] [-i] [-R] [-D on|off] [-j[n]] [-e gpu|ascend|cpu] \\"
  26. echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 10.1|11.1|310|910] [-I arm64|arm32|x86_64] [-K] \\"
  27. echo " [-B on|off] [-E] [-l on|off] [-n full|lite|off] [-H on|off] \\"
  28. echo " [-A on|off] [-S on|off] [-k on|off] [-W sse|neon|avx|avx512|off] \\"
  29. echo " [-L Tensor-RT path] [-y on|off] \\"
  30. echo ""
  31. echo "Options:"
  32. echo " -d Debug mode"
  33. echo " -r Release mode, default mode"
  34. echo " -v Display build command"
  35. echo " -c Enable code coverage, default off"
  36. echo " -t Run testcases, default off"
  37. echo " -g Use glog to output log, default on"
  38. echo " -h Print usage"
  39. echo " -b Select other backend, available: \\"
  40. echo " ge:graph engine"
  41. echo " -m Select graph engine backend mode, available: infer, train, default is infer"
  42. echo " -a Enable ASAN, default off"
  43. echo " -p Enable pipeline profile, print to stdout, default off"
  44. echo " -R Enable pipeline profile, record to json, default off"
  45. echo " -i Enable increment building, default off"
  46. echo " -j[n] Set the threads when building (Default: -j8)"
  47. echo " -e Use cpu, gpu or ascend"
  48. echo " -s Enable security, default off"
  49. echo " -P Enable dump anf graph to file in ProtoBuffer format, default on"
  50. echo " -D Enable dumping of function graph ir, default on"
  51. echo " -z Compile dataset & mindrecord, default on"
  52. echo " -n Compile minddata with mindspore lite, available: off, lite, full, lite_cv, full mode in lite train and lite_cv, wrapper mode in lite predict"
  53. echo " -M Enable MPI and NCCL for GPU training, gpu default on"
  54. echo " -V Specify the device version, if -e gpu, default CUDA 10.1, if -e ascend, default Ascend 910"
  55. echo " -I Enable compiling mindspore lite for arm64, arm32 or x86_64, default disable mindspore lite compilation"
  56. echo " -A Enable compiling mindspore lite aar package, option: on/off, default: off"
  57. echo " -K Compile with AKG, default on"
  58. echo " -B Enable debugger, default on"
  59. echo " -E Enable IBVERBS for parameter server, default off"
  60. echo " -l Compile with python dependency, default on"
  61. echo " -S Enable enable download cmake compile dependency from gitee , default off"
  62. echo " -k Enable make clean, clean up compilation generated cache "
  63. echo " -W Enable x86_64 SSE or AVX instruction set, use [sse|neon|avx|avx512|off], default off for lite and avx for CPU"
  64. echo " -H Enable hidden"
  65. echo " -L Link and specify Tensor-RT library path, default disable Tensor-RT lib linking"
  66. echo " -y Compile the symbol table switch and save the symbol table to the directory output"
  67. }
  68. # check value of input is 'on' or 'off'
  69. # usage: check_on_off arg_value arg_name
  70. check_on_off()
  71. {
  72. if [[ "X$1" != "Xon" && "X$1" != "Xoff" ]]; then
  73. echo "Invalid value $1 for option -$2"
  74. usage
  75. exit 1
  76. fi
  77. }
  78. # check and set options
  79. checkopts()
  80. {
  81. # Init default values of build options
  82. THREAD_NUM=8
  83. DEBUG_MODE="off"
  84. VERBOSE=""
  85. ENABLE_SECURITY="off"
  86. ENABLE_COVERAGE="off"
  87. RUN_TESTCASES="off"
  88. RUN_CPP_ST_TESTS="off"
  89. ENABLE_BACKEND=""
  90. TRAIN_MODE="INFER"
  91. ENABLE_ASAN="off"
  92. ENABLE_PROFILE="off"
  93. INC_BUILD="off"
  94. ENABLE_TIMELINE="off"
  95. ENABLE_DUMP2PROTO="on"
  96. ENABLE_DUMP_IR="on"
  97. COMPILE_MINDDATA="on"
  98. COMPILE_MINDDATA_LITE="lite_cv"
  99. ENABLE_MPI="off"
  100. CUDA_VERSION="10.1"
  101. COMPILE_LITE="off"
  102. LITE_PLATFORM=""
  103. LITE_ENABLE_AAR="off"
  104. USE_GLOG="on"
  105. ENABLE_AKG="on"
  106. ENABLE_ACL="off"
  107. ENABLE_D="off"
  108. ENABLE_DEBUGGER="on"
  109. ENABLE_IBVERBS="off"
  110. ENABLE_PYTHON="on"
  111. ENABLE_GPU="off"
  112. ENABLE_VERBOSE="off"
  113. ENABLE_GITEE="off"
  114. ENABLE_MAKE_CLEAN="off"
  115. X86_64_SIMD="off"
  116. ARM_SIMD="off"
  117. DEVICE_VERSION=""
  118. DEVICE=""
  119. ENABLE_HIDDEN="on"
  120. TENSORRT_HOME=""
  121. USER_ENABLE_DUMP_IR=false
  122. USER_ENABLE_DEBUGGER=false
  123. ENABLE_SYM_FILE="off"
  124. # Process the options
  125. while getopts 'drvj:c:t:hb:s:a:g:p:ie:m:l:I:RP:D:zM:V:K:B:En:A:S:k:W:H:L:y' opt
  126. do
  127. CASE_SENSIVE_ARG=${OPTARG}
  128. OPTARG=$(echo ${OPTARG} | tr '[A-Z]' '[a-z]')
  129. case "${opt}" in
  130. d)
  131. DEBUG_MODE="on"
  132. ;;
  133. n)
  134. if [[ "X$OPTARG" == "Xoff" || "X$OPTARG" == "Xlite" || "X$OPTARG" == "Xfull" || "X$OPTARG" == "Xlite_cv" || "X$OPTARG" == "Xwrapper" ]]; then
  135. COMPILE_MINDDATA_LITE="$OPTARG"
  136. else
  137. echo "Invalid value ${OPTARG} for option -n"
  138. usage
  139. exit 1
  140. fi
  141. ;;
  142. y)
  143. ENABLE_SYM_FILE="on"
  144. ;;
  145. r)
  146. DEBUG_MODE="off"
  147. ;;
  148. v)
  149. ENABLE_VERBOSE="on"
  150. VERBOSE="VERBOSE=1"
  151. ;;
  152. j)
  153. THREAD_NUM=$OPTARG
  154. ;;
  155. c)
  156. check_on_off $OPTARG c
  157. ENABLE_COVERAGE="$OPTARG"
  158. ;;
  159. t)
  160. if [[ "X$OPTARG" == "Xon" || "X$OPTARG" == "Xut" ]]; then
  161. RUN_TESTCASES="on"
  162. elif [[ "X$OPTARG" == "Xoff" ]]; then
  163. RUN_TESTCASES="off"
  164. elif [[ "X$OPTARG" == "Xst" ]]; then
  165. RUN_CPP_ST_TESTS="on"
  166. else
  167. echo "Invalid value ${OPTARG} for option -t"
  168. usage
  169. exit 1
  170. fi
  171. ;;
  172. g)
  173. check_on_off $OPTARG g
  174. USE_GLOG="$OPTARG"
  175. ;;
  176. h)
  177. usage
  178. exit 0
  179. ;;
  180. b)
  181. if [[ "X$OPTARG" != "Xge" && "X$OPTARG" != "Xcpu" ]]; then
  182. echo "Invalid value ${OPTARG} for option -b"
  183. usage
  184. exit 1
  185. fi
  186. ENABLE_BACKEND=$(echo "$OPTARG" | tr '[a-z]' '[A-Z]')
  187. if [[ "X$ENABLE_BACKEND" != "XCPU" ]]; then
  188. ENABLE_CPU="on"
  189. fi
  190. ;;
  191. a)
  192. check_on_off $OPTARG a
  193. ENABLE_ASAN="$OPTARG"
  194. ;;
  195. p)
  196. check_on_off $OPTARG p
  197. ENABLE_PROFILE="$OPTARG"
  198. ;;
  199. l)
  200. check_on_off $OPTARG l
  201. ENABLE_PYTHON="$OPTARG"
  202. ;;
  203. i)
  204. INC_BUILD="on"
  205. ;;
  206. m)
  207. if [[ "X$OPTARG" != "Xinfer" && "X$OPTARG" != "Xtrain" ]]; then
  208. echo "Invalid value ${OPTARG} for option -m"
  209. usage
  210. exit 1
  211. fi
  212. TRAIN_MODE=$(echo "$OPTARG" | tr '[a-z]' '[A-Z]')
  213. ;;
  214. s)
  215. check_on_off $OPTARG s
  216. if [[ "X$OPTARG" == "Xon" ]]; then
  217. if [[ $USER_ENABLE_DUMP_IR == true ]]; then
  218. echo "enable security, the dump ir is not available"
  219. usage
  220. exit 1
  221. fi
  222. if [[ $USER_ENABLE_DEBUGGER == true ]]; then
  223. echo "enable security, the debugger is not available"
  224. usage
  225. exit 1
  226. fi
  227. ENABLE_DUMP_IR="off"
  228. ENABLE_DEBUGGER="off"
  229. fi
  230. ENABLE_SECURITY="$OPTARG"
  231. echo "enable security"
  232. ;;
  233. R)
  234. ENABLE_TIMELINE="on"
  235. echo "enable time_line record"
  236. ;;
  237. S)
  238. check_on_off $OPTARG S
  239. ENABLE_GITEE="$OPTARG"
  240. echo "enable download from gitee"
  241. ;;
  242. k)
  243. check_on_off $OPTARG k
  244. ENABLE_MAKE_CLEAN="$OPTARG"
  245. echo "enable make clean"
  246. ;;
  247. e)
  248. DEVICE=$OPTARG
  249. ;;
  250. M)
  251. check_on_off $OPTARG M
  252. ENABLE_MPI="$OPTARG"
  253. ;;
  254. V)
  255. DEVICE_VERSION=$OPTARG
  256. ;;
  257. P)
  258. check_on_off $OPTARG p
  259. ENABLE_DUMP2PROTO="$OPTARG"
  260. echo "enable dump anf graph to proto file"
  261. ;;
  262. D)
  263. check_on_off $OPTARG D
  264. if [[ "X$OPTARG" == "Xon" ]]; then
  265. if [[ "X$ENABLE_SECURITY" == "Xon" ]]; then
  266. echo "enable security, the dump ir is not available"
  267. usage
  268. exit 1
  269. fi
  270. USER_ENABLE_DUMP_IR=true
  271. fi
  272. ENABLE_DUMP_IR="$OPTARG"
  273. echo "enable dump function graph ir"
  274. ;;
  275. z)
  276. eval ARG=\$\{$OPTIND\}
  277. if [[ -n "$ARG" && "$ARG" != -* ]]; then
  278. OPTARG="$ARG"
  279. check_on_off $OPTARG z
  280. OPTIND=$((OPTIND + 1))
  281. else
  282. OPTARG=""
  283. fi
  284. if [[ "X$OPTARG" == "Xoff" ]]; then
  285. COMPILE_MINDDATA="off"
  286. fi
  287. ;;
  288. I)
  289. COMPILE_LITE="on"
  290. if [[ "$OPTARG" == "arm64" ]]; then
  291. LITE_PLATFORM="arm64"
  292. elif [[ "$OPTARG" == "arm32" ]]; then
  293. LITE_PLATFORM="arm32"
  294. elif [[ "$OPTARG" == "x86_64" ]]; then
  295. LITE_PLATFORM="x86_64"
  296. else
  297. echo "-I parameter must be arm64、arm32 or x86_64"
  298. exit 1
  299. fi
  300. ;;
  301. K)
  302. ENABLE_AKG="on"
  303. echo "enable compile with akg"
  304. ;;
  305. B)
  306. check_on_off $OPTARG B
  307. if [[ "X$OPTARG" == "Xon" ]]; then
  308. if [[ "X$ENABLE_SECURITY" == "Xon" ]]; then
  309. echo "enable security, the debugger is not available"
  310. usage
  311. exit 1
  312. fi
  313. USER_ENABLE_DEBUGGER=true
  314. fi
  315. ENABLE_DEBUGGER="$OPTARG"
  316. ;;
  317. E)
  318. ENABLE_IBVERBS="on"
  319. echo "enable IBVERBS for parameter server"
  320. ;;
  321. A)
  322. COMPILE_LITE="on"
  323. if [[ "$OPTARG" == "on" ]]; then
  324. LITE_ENABLE_AAR="on"
  325. fi
  326. ;;
  327. W)
  328. if [[ "$OPTARG" != "sse" && "$OPTARG" != "off" && "$OPTARG" != "avx" && "$OPTARG" != "avx512" && "$OPTARG" != "neon" ]]; then
  329. echo "Invalid value ${OPTARG} for option -W, -W parameter must be sse|neon|avx|avx512|off"
  330. usage
  331. exit 1
  332. fi
  333. if [[ "$OPTARG" == "sse" || "$OPTARG" == "avx" || "$OPTARG" == "avx512" ]]; then
  334. X86_64_SIMD="$OPTARG"
  335. fi
  336. if [[ "$OPTARG" == "neon" ]]; then
  337. ARM_SIMD="$OPTARG"
  338. fi
  339. ;;
  340. H)
  341. check_on_off $OPTARG H
  342. ENABLE_HIDDEN="$OPTARG"
  343. echo "${OPTARG} hidden"
  344. ;;
  345. L)
  346. ENABLE_TRT="on"
  347. TENSORRT_HOME="$CASE_SENSIVE_ARG"
  348. echo "Link Tensor-RT library. Path: ${CASE_SENSIVE_ARG}"
  349. ;;
  350. *)
  351. echo "Unknown option ${opt}!"
  352. usage
  353. exit 1
  354. esac
  355. done
  356. if [[ "X$RUN_TESTCASES" == "Xon" && "X$DEVICE" != "X" ]]; then
  357. echo "WARNING:Option -e can't be set while option -t on/ut is set, reset device to empty."
  358. DEVICE=""
  359. fi
  360. # Parse device
  361. # Process build option
  362. if [[ "X$DEVICE" == "Xgpu" ]]; then
  363. ENABLE_GPU="on"
  364. ENABLE_CPU="on"
  365. ENABLE_MPI="on"
  366. # version default 10.1
  367. if [[ "X$DEVICE_VERSION" == "X" ]]; then
  368. DEVICE_VERSION=10.1
  369. fi
  370. if [[ "X$DEVICE_VERSION" != "X11.1" && "X$DEVICE_VERSION" != "X10.1" ]]; then
  371. echo "Invalid value ${DEVICE_VERSION} for option -V"
  372. usage
  373. exit 1
  374. fi
  375. CUDA_VERSION="$DEVICE_VERSION"
  376. elif [[ "X$DEVICE" == "Xd" || "X$DEVICE" == "Xascend" ]]; then
  377. # version default 910
  378. if [[ "X$DEVICE_VERSION" == "X" ]]; then
  379. DEVICE_VERSION=910
  380. fi
  381. # building 310 package by giving specific -V 310 instruction
  382. if [[ "X$DEVICE_VERSION" == "X310" ]]; then
  383. ENABLE_ACL="on"
  384. # universal ascend package
  385. elif [[ "X$DEVICE_VERSION" == "X910" ]]; then
  386. ENABLE_D="on"
  387. ENABLE_ACL="on"
  388. ENABLE_CPU="on"
  389. else
  390. echo "Invalid value ${DEVICE_VERSION} for option -V"
  391. usage
  392. exit 1
  393. fi
  394. elif [[ "X$DEVICE" == "Xcpu" ]]; then
  395. ENABLE_CPU="on"
  396. elif [[ "X$DEVICE" == "X" ]]; then
  397. :
  398. else
  399. echo "Invalid value ${DEVICE} for option -e"
  400. usage
  401. exit 1
  402. fi
  403. }
  404. update_submodule()
  405. {
  406. git submodule update --init graphengine
  407. cd "${BASEPATH}/graphengine"
  408. git submodule update --init metadef
  409. cd "${BASEPATH}"
  410. if [[ "X$ENABLE_AKG" = "Xon" ]] && [[ "X$ENABLE_D" = "Xon" || "X$ENABLE_GPU" = "Xon" ]]; then
  411. git submodule update --init --recursive akg
  412. fi
  413. }
  414. build_exit()
  415. {
  416. echo "$@" >&2
  417. stty echo
  418. exit 1
  419. }
  420. # Create building path
  421. build_mindspore()
  422. {
  423. echo "start build mindspore project."
  424. mkdir -pv "${BUILD_PATH}/mindspore"
  425. cd "${BUILD_PATH}/mindspore"
  426. CMAKE_ARGS="-DDEBUG_MODE=$DEBUG_MODE -DBUILD_PATH=$BUILD_PATH"
  427. if [[ "X$ENABLE_COVERAGE" = "Xon" ]]; then
  428. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_COVERAGE=ON"
  429. fi
  430. if [[ "X$RUN_TESTCASES" = "Xon" ]]; then
  431. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TESTCASES=ON"
  432. fi
  433. if [[ "X$RUN_CPP_ST_TESTS" = "Xon" ]]; then
  434. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_CPP_ST=ON"
  435. fi
  436. if [[ -n "$ENABLE_BACKEND" ]]; then
  437. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_${ENABLE_BACKEND}=ON"
  438. fi
  439. if [[ -n "$TRAIN_MODE" ]]; then
  440. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_${TRAIN_MODE}=ON"
  441. fi
  442. if [[ "X$ENABLE_SYM_FILE" = "Xon" ]]; then
  443. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_SYM_FILE=ON"
  444. fi
  445. if [[ "X$ENABLE_ASAN" = "Xon" ]]; then
  446. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_ASAN=ON"
  447. fi
  448. if [[ "X$ENABLE_PROFILE" = "Xon" ]]; then
  449. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PROFILE=ON"
  450. fi
  451. if [[ "X$ENABLE_SECURITY" = "Xon" ]]; then
  452. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_SECURITY=ON"
  453. fi
  454. if [[ "X$ENABLE_TIMELINE" = "Xon" ]]; then
  455. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_TIMELINE=ON"
  456. fi
  457. if [[ "X$ENABLE_DUMP2PROTO" = "Xon" ]]; then
  458. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_DUMP_PROTO=ON"
  459. fi
  460. if [[ "X$ENABLE_GITEE" = "Xon" ]]; then
  461. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GITEE=ON"
  462. fi
  463. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_DUMP_IR=${ENABLE_DUMP_IR}"
  464. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PYTHON=${ENABLE_PYTHON}"
  465. if [[ "X$ENABLE_MPI" = "Xon" ]]; then
  466. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_MPI=ON"
  467. fi
  468. if [[ "X$ENABLE_D" = "Xon" ]]; then
  469. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_D=ON"
  470. fi
  471. if [[ "X$ENABLE_GPU" = "Xon" ]]; then
  472. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GPU=ON -DUSE_CUDA=ON -DCUDA_PATH=$CUDA_PATH -DMS_REQUIRE_CUDA_VERSION=${CUDA_VERSION}"
  473. fi
  474. if [[ "X$ENABLE_CPU" = "Xon" ]]; then
  475. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_CPU=ON -DX86_64_SIMD=${X86_64_SIMD} -DARM_SIMD=${ARM_SIMD}"
  476. fi
  477. if [[ "X$COMPILE_MINDDATA" = "Xon" ]]; then
  478. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_MINDDATA=ON"
  479. fi
  480. if [[ "X$USE_GLOG" = "Xon" ]]; then
  481. CMAKE_ARGS="${CMAKE_ARGS} -DUSE_GLOG=ON"
  482. fi
  483. if [[ "X$ENABLE_AKG" = "Xon" ]] && [[ "X$ENABLE_D" = "Xon" || "X$ENABLE_GPU" = "Xon" ]]; then
  484. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_AKG=ON"
  485. fi
  486. if [[ "X$ENABLE_ACL" = "Xon" ]]; then
  487. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_ACL=ON"
  488. fi
  489. if [[ "X$ENABLE_DEBUGGER" = "Xon" ]]; then
  490. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_DEBUGGER=ON"
  491. fi
  492. if [[ "X$ENABLE_IBVERBS" = "Xon" ]]; then
  493. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_IBVERBS=ON"
  494. fi
  495. if [[ "X$ENABLE_HIDDEN" = "Xoff" ]]; then
  496. CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_HIDDEN=OFF"
  497. fi
  498. if [[ "X$ENABLE_TRT" == "Xon" ]]; then
  499. CMAKE_ARGS="${CMAKE_ARGS} -DTENSORRT_HOME=${TENSORRT_HOME}"
  500. fi
  501. echo "${CMAKE_ARGS}"
  502. if [[ "X$INC_BUILD" = "Xoff" ]]; then
  503. cmake ${CMAKE_ARGS} ${BASEPATH}
  504. fi
  505. if [[ -n "$VERBOSE" ]]; then
  506. CMAKE_VERBOSE="--verbose"
  507. fi
  508. cmake --build . --target package ${CMAKE_VERBOSE} -j$THREAD_NUM
  509. echo "success building mindspore project!"
  510. }
  511. make_clean()
  512. {
  513. echo "enable make clean"
  514. cd "${BUILD_PATH}/mindspore"
  515. cmake --build . --target clean
  516. }
  517. echo "---------------- MindSpore: build start ----------------"
  518. checkopts "$@"
  519. if [[ "X$COMPILE_LITE" = "Xon" ]]; then
  520. export COMPILE_MINDDATA_LITE
  521. export ENABLE_VERBOSE
  522. export LITE_PLATFORM
  523. export LITE_ENABLE_AAR
  524. source mindspore/lite/build_lite.sh
  525. else
  526. mkdir -pv "${BUILD_PATH}/package/mindspore/lib"
  527. update_submodule
  528. build_mindspore
  529. if [[ "X$ENABLE_MAKE_CLEAN" = "Xon" ]]; then
  530. make_clean
  531. fi
  532. if [[ "X$ENABLE_ACL" == "Xon" ]] && [[ "X$ENABLE_D" == "Xoff" ]]; then
  533. echo "acl mode, skipping deploy phase"
  534. rm -rf ${BASEPATH}/output/_CPack_Packages/
  535. else
  536. cp -rf ${BUILD_PATH}/package/mindspore/lib ${BASEPATH}/mindspore
  537. cp -rf ${BUILD_PATH}/package/mindspore/*.so ${BASEPATH}/mindspore
  538. fi
  539. fi
  540. echo "---------------- MindSpore: build end ----------------"