5fd49a46f65b17aa6abb05f90accb1be02f5b738
[platform/core/ml/nnfw.git] / infra / scripts / docker_build_nncc.sh
1 #!/bin/bash
2
3 [[ "${BASH_SOURCE[0]}" != "${0}" ]] && echo "Please don't source ${BASH_SOURCE[0]}, execute it" && return
4
5 CURRENT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6 ROOT_PATH="$CURRENT_PATH/../../"
7
8 CONFIG_OPTIONS=""
9 # mount volume (or directory) for externals
10 if [ -n "$EXTERNAL_VOLUME" ]; then
11   DOCKER_OPTS+=" -v $EXTERNAL_VOLUME:/externals"
12   CONFIG_OPTIONS+=" -DNNAS_EXTERNALS_DIR=/externals"
13 else
14   echo "It will use default external path"
15 fi
16
17 # mount volume (or directory) for overlay
18 if [ -n "$OVERLAY_VOLUME" ]; then
19   DOCKER_OPTS+=" -v $OVERLAY_VOLUME:/overlay"
20   CONFIG_OPTIONS+=" -DNNCC_OVERLAY_DIR=/overlay"
21 else
22   echo "It will use default overlay path"
23 fi
24
25 # prepare tensorflow
26 if [ -d $TENSORFLOW_PREFIX ]; then
27   DOCKER_OPTS+=" -v $TENSORFLOW_PREFIX:/opt/tensorflow"
28   CONFIG_OPTIONS+=" -DTENSORFLOW_PREFIX=/opt/tensorflow"
29 fi
30
31 # prepare onnx
32 if [ -d $ONNXRUNTIME_PREFIX ]; then
33   DOCKER_OPTS+=" -v $ONNXRUNTIME_PREFIX:/opt/onnxruntime"
34   CONFIG_OPTIONS+=" -DONNXRUNTIME_PREFIX=/opt/onnxruntime"
35 fi
36
37 # docker image name
38 if [[ -z $DOCKER_IMAGE_NAME ]]; then
39   echo "It will use default docker image name"
40 fi
41
42 NNAS_WORKSPACE=${NNAS_WORKSPACE:-build}
43 NNCC_INSTALL_PREFIX=${NNAS_WORKSPACE}/out
44 DOCKER_OPTS+=" -e NNAS_BUILD_PREFIX=${NNAS_WORKSPACE}"
45 export DOCKER_OPTS
46 if [[ -z "${ARCHIVE_PATH}" ]]; then
47   ARCHIVE_PATH=${NNAS_WORKSPACE}/archive
48 fi
49
50 set -e
51
52 pushd $ROOT_PATH > /dev/null
53
54 mkdir -p ${NNCC_INSTALL_PREFIX}
55 ./nncc docker-run ./nnas create-package --prefix "${PWD}/${NNCC_INSTALL_PREFIX}" -- "${CONFIG_OPTIONS}"
56
57 mkdir -p ${ARCHIVE_PATH}
58 tar -zcf ${ARCHIVE_PATH}/nncc-package.tar.gz -C ${NNCC_INSTALL_PREFIX} --exclude test ./
59 tar -zcf ${ARCHIVE_PATH}/nncc-test-package.tar.gz -C ${NNCC_INSTALL_PREFIX} ./test
60
61 popd > /dev/null