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 [ -d $TENSORFLOW_PREFIX ]; then
32 DOCKER_OPTS+=" -v $TENSORFLOW_PREFIX:/opt/tensorflow"
33 CONFIG_OPTIONS+=" -DTENSORFLOW_PREFIX=/opt/tensorflow"
37 if [ -d $ONNXRUNTIME_PREFIX ]; then
38 DOCKER_OPTS+=" -v $ONNXRUNTIME_PREFIX:/opt/onnxruntime"
39 CONFIG_OPTIONS+=" -DONNXRUNTIME_PREFIX=/opt/onnxruntime"
43 if [[ -z $DOCKER_IMAGE_NAME ]]; then
44 echo "It will use default docker image name"
47 # Assume that build is already finished, and ready to test
48 NNAS_WORKSPACE=${NNAS_WORKSPACE:-build}
49 export NNCC_WORKSPACE=${NNAS_WORKSPACE}/nncc
52 if [[ -z "${ARCHIVE_PATH}" ]]; then
53 ARCHIVE_PATH=${NNAS_WORKSPACE}/archive
58 pushd $ROOT_PATH > /dev/null
62 REQUIRED_UNITS+=("angkor" "cwrap" "pepper-str" "pepper-strcast" "pp" "stdex")
63 REQUIRED_UNITS+=("oops" "safemain" "foder" "arser" "oops")
64 # Hermes Logging Framework
65 REQUIRED_UNITS+=("hermes" "hermes-std")
66 # loco IR and related utilities
67 REQUIRED_UNITS+=("loco" "locop" "locomotiv" "logo-core" "logo")
68 # Circle compiler library (.circle -> .circle)
69 REQUIRED_UNITS+=("luci")
71 REQUIRED_UNITS+=("mio-tflite" "mio-circle")
73 REQUIRED_UNITS+=("tflite2circle" "circle2circle" "luci-interpreter")
74 REQUIRED_UNITS+=("souschef" "tflchef" "circlechef" "circle-verify")
76 REQUIRED_UNITS+=("common-artifacts")
78 # Reset whitelist to build all
79 ./nncc docker-run ./nncc configure -DENABLE_STRICT_BUILD=ON -DCMAKE_BUILD_TYPE=release \
80 -DBUILD_WHITELIST=$(join_by ";" "${REQUIRED_UNITS[@]}") \
82 ./nncc docker-run ./nncc build -j4
84 mkdir -p ${ARCHIVE_PATH}
85 TEMP_DIR=$(mktemp -d -t resXXXX)
87 mkdir -p ${TEMP_DIR}/nnpkg-tcs
89 # Copy nnpakcage only if it has its test data
90 for nnpkg in $NNCC_WORKSPACE/compiler/common-artifacts/*; do
91 if [ -d $nnpkg/metadata/tc ]; then
92 cp -r $nnpkg ${TEMP_DIR}/nnpkg-tcs
96 tar -zcf ${ARCHIVE_PATH}/nnpkg-test-suite.tar.gz -C ${TEMP_DIR} ./
99 echo "resouce generation end"