#! /bin/bash DEFAULT_ZEPHYRPROJECT=~/.zephyrproject/ DEFAULT_ZEPHYRENV=$DEFAULT_ZEPHYRPROJECT/zephyrenv DEFAULT_ZEPHYR_SDK_VERSION=0.15.1 if [ -n $ZEPHYR_BASE ]; then export ZEPHYR_BASE=~/.zephyrproject/zephyr ZEPHYR_BASE_unset=1 if [ -z $ZEPHYR_VERSION ]; then ZEPHYR_VERSION=main fi if [[ ! -f $ZEPHYR_BASE/west.yml ]]; then mkdir -p ~/.zephyrproject/ echo "===========================" echo "Clone zephyr@$ZEPHYR_VERSION" echo "===========================" git clone -b $ZEPHYR_VERSION https://github.com/zephyrproject-rtos/zephyr.git $ZEPHYR_BASE else echo "===========================" echo "Zephyr Environment! Version" echo "===========================" cat $ZEPHYR_BASE/VERSION echo "===========================" fi fi if [ -n $ZEPHYR_TOOLCHAIN_VARIANT ]; then export ZEPHYR_TOOLCHAIN_VARIANT=zephyr ZEPHYR_TOOLCHAIN_VARIANT_unset=1 fi if [ -n $ZEPHYR_VENV ]; then ZEPHYR_VENV=$DEFAULT_ZEPHYRENV/bin/activate # check venv & auto create if [[ ! -f $ZEPHYR_VENV ]]; then mkdir -p $DEFAULT_ZEPHYRPROJECT python3 -m venv $DEFAULT_ZEPHYRENV fi ZEPHYR_VENV_unset=1 fi deactivate_envs () { if [ $ZEPHYR_VENV_unset ]; then unset ZEPHYR_VENV unset ZEPHYR_VENV_unset fi if [ $ZEPHYR_BASE_unset ]; then unset ZEPHYR_BASE unset ZEPHYR_BASE_unset fi if [ $ZEPHYR_TOOLCHAIN_VARIANT_unset ]; then unset ZEPHYR_TOOLCHAIN_VARIANT unset ZEPHYR_TOOLCHAIN_VARIANT_unset fi unset -f deactivate_envs } if [[ $ZEPHYR_VENV ]]; then source $ZEPHYR_VENV if [ -z "$(pip list | grep west)" ]; then # install west pip install west # install zephyr dependencies pip install -r $ZEPHYR_BASE/scripts/requirements.txt cd $ZEPHYR_BASE west update fi eval "deactivate_super${$(declare -f deactivate)#deactivate}" deactivate () { deactivate_super unset -f deactivate_super deactivate_envs } fi # check sdk if [ -z $ZEPHYR_SDK_INSTALL_DIR ]; then SDKS=$(find ${DEFAULT_ZEPHYRPROJECT}/zephyr-sdk-*/sdk_version) if [ -z $ZEPHYR_SDK_VERSION ]; then ZEPHYR_SDK_VERSION=${DEFAULT_ZEPHYR_SDK_VERSION} fi if [ -z $SDKS ]; then ZEPHYR_SDK_FILE="zephyr-sdk-${ZEPHYR_SDK_VERSION}_$(echo "$(uname -s)-$(uname -m)" | tr '[:upper:]' '[:lower:]')" ZEPHYR_SDK_URL="https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/${ZEPHYR_SDK_FILE}.tar.gz" echo "===========================" echo "install zephyr sdk ${ZEPHYR_SDK_VERSION}" echo "===========================" bash -c "cd ${DEFAULT_ZEPHYRPROJECT};wget ${ZEPHYR_SDK_URL};tar xvf ${ZEPHYR_SDK_FILE}.tar.gz" bash -c "cd ${DEFAULT_ZEPHYRPROJECT}/zephyr-sdk-${ZEPHYR_SDK_VERSION};./setup.sh" fi unset SDKS fi unset DEFAULT_ZEPHYRPROJECT unset DEFAULT_ZEPHYRENV