--- /dev/null
+#!/bin/bash
+
+source "${NNFW_SCRIPT_PATH}/build.configuration"
+
+# Set target platform using environment variable
+# TODO: use argument instead of environment variable
+TARGET_ARCH=${TARGET_ARCH:-$(uname -p)}
+BUILD_TYPE=${BUILD_TYPE:-Debug}
+CROSS_BUILD=${CROSS_BUILD:-0}
+HOST_OS=${HOST_OS:-linux}
+TARGET_OS=${TARGET_OS:-linux}
+## TODO: fix obs build break
+OBS_BUILD=${OBS_BUILD:-OFF}
+COVERAGE_BUILD=${COVERAGE_BUILD:-0}
+BENCHMARK_ACL_BUILD=${BENCHMARK_ACL_BUILD:-0}
+OPTIONS=${OPTIONS:-}
+
+# make TARGET and TYPE to lowercase
+TARGET_ARCH_LC="$(echo ${TARGET_ARCH} | tr A-Z a-z)"
+BUILD_TYPE_LC="$(echo ${BUILD_TYPE} | tr A-Z a-z)"
+
+if [ "${TARGET_ARCH_LC}" == *"arm64"* ]; then
+ # arm64 as target-arch comes from Android
+ if [ ! -z ${ROOTFS_DIR} ]; then
+ ROOTFS_ARM64="${ROOTFS_DIR}"
+ export ROOTFS_ARM64
+ fi
+ # For now Android is the only option for arm64
+ TARGET_OS=android
+elif [ "${TARGET_ARCH_LC}" == *"arm"* ]; then
+ if [ ! -z ${ROOTFS_DIR} ] ; then
+ ROOTFS_ARM="${ROOTFS_DIR}"
+ export ROOTFS_ARM
+ fi
+elif [ "${TARGET_ARCH_LC}" == *"aarch64"* ]; then
+ # aarch64 as target-arch comes from all except for Android
+ if [ ! -z ${ROOTFS_DIR} ] ; then
+ ROOTFS_ARM64="${ROOTFS_DIR}"
+ export ROOTFS_ARM64
+ fi
+fi
+
+# Todo: we may set CROSS_BUILD=1 when ROOTFS_DIR is given
+# the toolchain file, only for cross build
+if [ "${CROSS_BUILD}" == "1" ]; then
+ TOOLCHAIN_FILE="cmake/config/config_${TARGET_ARCH_LC}-${TARGET_OS}.cmake"
+ OPTION_TOOLCHAIN="-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_FILE}"
+else
+ OPTION_TOOLCHAIN=
+fi
+
+if [ "${COVERAGE_BUILD}" == "1" ]; then
+ OPTIONS+=" -DCOVERAGE_BUILD=1"
+else
+ OPTIONS+=" -DCOVERAGE_BUILD=0"
+fi
+
+if [ "${BENCHMARK_ACL_BUILD}" == "1" ]; then
+ OPTIONS+=" -DBUILD_BENCHMARK_ACL=1"
+fi
+
+WORK_FOLDER=${TARGET_ARCH_LC}-${TARGET_OS}.${BUILD_TYPE_LC}
+WORK_PATH=${NNFW_PROJECT_PATH}/${WORKSPACE_RPATH}/${WORK_FOLDER}
+BUILD_PATH=${WORK_PATH}/obj
+INSTALL_PATH=${NNFW_INSTALL_PATH:-${WORK_PATH}/out}
+
+mkdir -vp ${BUILD_PATH}
+mkdir -vp ${INSTALL_PATH}
+rm -rf ${BUILD_ALIAS}
+rm -rf ${INSTALL_ALIAS}
+ln -s ${BUILD_PATH} ${BUILD_ALIAS}
+ln -s ${INSTALL_PATH} ${INSTALL_ALIAS}
+
+cd "${BUILD_PATH}"
+
+cmake \
+ -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} \
+ -DCMAKE_BUILD_TYPE=${BUILD_TYPE_LC} -DTARGET_ARCH=${TARGET_ARCH_LC} \
+ -DHOST_OS=${HOST_OS} \
+ -DTARGET_OS=${TARGET_OS} \
+ -DOBS_BUILD=${OBS_BUILD} \
+ ${OPTION_TOOLCHAIN} \
+ ${OPTIONS} \
+ "${NNFW_PROJECT_PATH}" "$@"