From 035a112e0b61e9f1af11dfbcc8e1413cf1ed1bd8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=98=A4=ED=98=95=EC=84=9D/On-Device=20Lab=28SR=29/Staff?= =?utf8?q?=20Engineer/=EC=82=BC=EC=84=B1=EC=A0=84=EC=9E=90?= Date: Tue, 26 Nov 2019 10:56:25 +0900 Subject: [PATCH] [nncc-pkg] Pass extra package build option (#9174) Pass extra package build option by using '--' CI infra use this parameter setting for external volume setting Signed-off-by: Hyeongseok Oh --- infra/packaging/build | 10 ++++++++ infra/scripts/docker_build_nncc.sh | 13 ++++------- infra/scripts/docker_collect_nnpkg_resources.sh | 31 +++++++++++++++++++++---- 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/infra/packaging/build b/infra/packaging/build index d6c5d1d..6d00ad8 100644 --- a/infra/packaging/build +++ b/infra/packaging/build @@ -9,6 +9,8 @@ fi SKIP_CONFIGURE="0" SKIP_BUILD="0" +EXTRA_OPTIONS=() +# TODO Remove '--skipbuild' and '--skipconfigure' while [ "$#" -ne 0 ]; do CUR="$1" @@ -26,6 +28,13 @@ while [ "$#" -ne 0 ]; do SKIP_BUILD="1" shift ;; + '--') + shift + while [ "$#" -ne 0 ]; do + EXTRA_OPTIONS+=("$1") + shift + done + ;; *) echo "ERROR: '${CUR}' is invalid" exit 255 @@ -114,6 +123,7 @@ if [[ "${SKIP_CONFIGURE}" == "0" ]]; then cmake \ -DCMAKE_INSTALL_PREFIX="${NNCC_INSTALL_PREFIX}" \ -DBUILD_WHITELIST=$(join_by ";" "${REQUIRED_UNITS[@]}") \ + ${EXTRA_OPTIONS[@]} \ "${NNAS_PROJECT_PATH}/infra/nncc" fi diff --git a/infra/scripts/docker_build_nncc.sh b/infra/scripts/docker_build_nncc.sh index df67db4..0a867e6 100755 --- a/infra/scripts/docker_build_nncc.sh +++ b/infra/scripts/docker_build_nncc.sh @@ -32,7 +32,8 @@ if [[ -z $DOCKER_IMAGE_NAME ]]; then fi NNAS_WORKSPACE=${NNAS_WORKSPACE:-build} -export NNCC_WORKSPACE=${NNAS_WORKSPACE}/nncc +NNCC_INSTALL_PREFIX=${NNAS_WORKSPACE}/out +DOCKER_OPTS+=" -e NNAS_BUILD_PREFIX=${NNAS_WORKSPACE}" export DOCKER_OPTS if [[ -z "${ARCHIVE_PATH}" ]]; then ARCHIVE_PATH=${NNAS_WORKSPACE}/archive @@ -42,14 +43,10 @@ set -e pushd $ROOT_PATH > /dev/null -./nncc docker-run ./nncc configure -DENABLE_STRICT_BUILD=ON ${CONFIG_OPTIONS} \ - -DCMAKE_INSTALL_PREFIX="${PWD}/${NNAS_WORKSPACE}/out" -./nncc docker-run ./nncc build -j4 - -export DOCKER_ENV_VARS+=" -e NNAS_BUILD_PREFIX=${NNAS_WORKSPACE}" -./nncc docker-run ./nnas create-package --skipbuild +mkdir -p ${NNCC_INSTALL_PREFIX} +./nncc docker-run ./nnas create-package --prefix "${PWD}/${NNCC_INSTALL_PREFIX}" -- "${CONFIG_OPTIONS}" mkdir -p ${ARCHIVE_PATH} -tar -zcf ${ARCHIVE_PATH}/nncc-package.tar.gz -C ${NNAS_WORKSPACE}/out ./ +tar -zcf ${ARCHIVE_PATH}/nncc-package.tar.gz -C ${NNCC_INSTALL_PREFIX} ./ popd > /dev/null diff --git a/infra/scripts/docker_collect_nnpkg_resources.sh b/infra/scripts/docker_collect_nnpkg_resources.sh index 2fa2337..bcb1564 100755 --- a/infra/scripts/docker_collect_nnpkg_resources.sh +++ b/infra/scripts/docker_collect_nnpkg_resources.sh @@ -5,19 +5,36 @@ CURRENT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_PATH="$CURRENT_PATH/../../" +CONFIG_OPTIONS="" +# mount volume (or directory) for externals +if [ -n "$EXTERNAL_VOLUME" ]; then + DOCKER_OPTS+=" -v $EXTERNAL_VOLUME:/externals" + CONFIG_OPTIONS+=" -DNNAS_EXTERNALS_DIR=/externals" +else + echo "It will use default external path" +fi + # prepare tensorflow if [ -d $TENSORFLOW_PREFIX ]; then DOCKER_OPTS+=" -v $TENSORFLOW_PREFIX:/opt/tensorflow" + CONFIG_OPTIONS+=" -DTENSORFLOW_PREFIX=/opt/tensorflow" +fi + +# prepare onnx +if [ -d $ONNXRUNTIME_PREFIX ]; then + DOCKER_OPTS+=" -v $ONNXRUNTIME_PREFIX:/opt/onnxruntime" + CONFIG_OPTIONS+=" -DONNXRUNTIME_PREFIX=/opt/onnxruntime" +fi + +# docker image name +if [[ -z $DOCKER_IMAGE_NAME ]]; then + echo "It will use default docker image name" fi # Assume that build is already finished, and ready to test NNAS_WORKSPACE=${NNAS_WORKSPACE:-build} export NNCC_WORKSPACE=${NNAS_WORKSPACE}/nncc export DOCKER_OPTS -if [ ! -d $NNCC_WORKSPACE ]; then - echo "Cannot find build directory $NNCC_WORKSPACE" - exit 1 -fi if [[ -z "${ARCHIVE_PATH}" ]]; then ARCHIVE_PATH=${NNAS_WORKSPACE}/archive @@ -27,6 +44,12 @@ set -e pushd $ROOT_PATH > /dev/null +# Reset whitelist to build all +./nncc docker-run ./nncc configure -DENABLE_STRICT_BUILD=ON -DCMAKE_BUILD_TYPE=release \ + -DBUILD_WHITELIST="" \ + $CONFIG_OPTIONS +./nncc docker-run ./nncc build + # tf2tflite_value_pbtxt_test to generate graphdef, input, golden data CMD="cd $NNCC_WORKSPACE && \ ctest -R ^tf2tflite_value_pbtxt_test$" -- 2.7.4