5 local IFS="$1"; shift; echo "$*"
8 [[ "${BASH_SOURCE[0]}" != "${0}" ]] && echo "Please don't source ${BASH_SOURCE[0]}, execute it" && return
10 CURRENT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11 ROOT_PATH="$CURRENT_PATH/../../"
14 # mount volume (or directory) for externals
15 if [ -n "$EXTERNAL_VOLUME" ]; then
16 DOCKER_OPTS+=" -v $EXTERNAL_VOLUME:/externals"
17 CONFIG_OPTIONS+=" -DNNAS_EXTERNALS_DIR=/externals"
19 echo "It will use default external path"
22 # mount volume (or directory) for overlay
23 if [ -n "$OVERLAY_VOLUME" ]; then
24 DOCKER_OPTS+=" -v $OVERLAY_VOLUME:/overlay"
25 CONFIG_OPTIONS+=" -DNNCC_OVERLAY_DIR=/overlay"
27 echo "It will use default overlay path"
31 if [ -n "$TENSORFLOW_PREFIX" ]; then
32 DOCKER_OPTS+=" -v $TENSORFLOW_PREFIX:/opt/tensorflow"
33 CONFIG_OPTIONS+=" -DTENSORFLOW_PREFIX=/opt/tensorflow"
37 if [ -n "$ONNXRUNTIME_PREFIX" ]; then
38 DOCKER_OPTS+=" -v $ONNXRUNTIME_PREFIX:/opt/onnxruntime"
39 CONFIG_OPTIONS+=" -DONNXRUNTIME_PREFIX=/opt/onnxruntime"
43 # - for bionic, use DOCKER_IMAGE_NAME="nnfw/one-devtools:bionic"
44 # - for focal, use DOCKER_IMAGE_NAME="nnfw/one-devtools:focal"
45 if [[ -z $DOCKER_IMAGE_NAME ]]; then
46 echo "It will use default docker image name"
49 # Assume that build is already finished, and ready to test
50 NNAS_WORKSPACE=${NNAS_WORKSPACE:-build}
51 export NNCC_WORKSPACE=${NNAS_WORKSPACE}/nncc
54 if [[ -z "${ARCHIVE_PATH}" ]]; then
55 ARCHIVE_PATH=${NNAS_WORKSPACE}/archive
60 pushd $ROOT_PATH > /dev/null
64 REQUIRED_UNITS+=("angkor" "cwrap" "pepper-str" "pepper-strcast" "pp")
65 REQUIRED_UNITS+=("pepper-csv2vec")
66 REQUIRED_UNITS+=("oops" "safemain" "foder" "crew" "arser" "vconone")
67 # Hermes Logging Framework
68 REQUIRED_UNITS+=("hermes" "hermes-std")
69 # loco IR and related utilities
70 REQUIRED_UNITS+=("loco" "locop" "locomotiv" "logo-core" "logo")
72 REQUIRED_UNITS+=("luci-compute")
73 # Circle compiler library (.circle -> .circle)
74 REQUIRED_UNITS+=("luci")
76 REQUIRED_UNITS+=("mio-tflite280" "mio-circle04")
78 REQUIRED_UNITS+=("tflite2circle" "circle2circle" "luci-interpreter")
79 REQUIRED_UNITS+=("souschef" "tflchef" "circlechef" "circle-verify")
81 REQUIRED_UNITS+=("common-artifacts")
83 # Reset whitelist to build all
84 ./nncc docker-run ./nncc configure -DENABLE_STRICT_BUILD=ON -DCMAKE_BUILD_TYPE=release \
85 -DBUILD_WHITELIST=$(join_by ";" "${REQUIRED_UNITS[@]}") \
87 ./nncc docker-run ./nncc build -j4
89 mkdir -p ${ARCHIVE_PATH}
90 TEMP_DIR=$(mktemp -d -t resXXXX)
92 mkdir -p ${TEMP_DIR}/nnpkg-tcs
94 # Copy nnpakcage only if it has its test data
95 for nnpkg in $NNCC_WORKSPACE/compiler/common-artifacts/*; do
96 if [ -d $nnpkg/metadata/tc ]; then
97 cp -r $nnpkg ${TEMP_DIR}/nnpkg-tcs
101 tar -zcf ${ARCHIVE_PATH}/nnpkg-test-suite.tar.gz -C ${TEMP_DIR} ./
104 echo "resouce generation end"