| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/usr/bin/env bash
- #
- # Copyright (c) 2021 Project CHIP Authors
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
- cd "$(dirname "$0")"/../../..
- CHIP_ROOT=$PWD
- cd "$CHIP_ROOT"/src/test_driver/mbed/unit_tests/
- SUPPORTED_TOOLCHAIN=(GCC_ARM ARM)
- SUPPORTED_TARGET_BOARD=(CY8CPROTO_062_4343W)
- SUPPORTED_PROFILES=(release develop debug)
- SUPPORTED_COMMAND=(build flash build-flash)
- COMMAND=build
- TARGET_BOARD=CY8CPROTO_062_4343W
- TOOLCHAIN=GCC_ARM
- PROFILE=release
- for i in "$@"; do
- case $i in
- -b=* | --board=*)
- TARGET_BOARD="${i#*=}"
- shift
- ;;
- -t=* | --toolchain=*)
- TOOLCHAIN="${i#*=}"
- shift
- ;;
- -p=* | --profile=*)
- PROFILE="${i#*=}"
- shift
- ;;
- -c=* | --command=*)
- COMMAND="${i#*=}"
- shift
- ;;
- *)
- # unknown option
- ;;
- esac
- done
- if [[ ! " ${SUPPORTED_TARGET_BOARD[@]} " =~ " ${TARGET_BOARD} " ]]; then
- echo "ERROR: Target $TARGET_BOARD not supported"
- exit 1
- fi
- if [[ ! " ${SUPPORTED_TOOLCHAIN[@]} " =~ " ${TOOLCHAIN} " ]]; then
- echo "ERROR: Toolchain $TOOLCHAIN not supported"
- exit 1
- fi
- if [[ ! " ${SUPPORTED_PROFILES[@]} " =~ " ${PROFILE} " ]]; then
- echo "ERROR: Profile $PROFILE not supported"
- exit 1
- fi
- if [[ ! " ${SUPPORTED_COMMAND[@]} " =~ " ${COMMAND} " ]]; then
- echo "ERROR: Command $COMMAND not supported"
- exit 1
- fi
- set -e # Exit immediately if a command exits with a non-zero status.
- # Activate Matter environment
- source "$CHIP_ROOT"/scripts/activate.sh
- # Build directory setup
- BUILD_DIRECTORY=build-"$TARGET_BOARD"/"$PROFILE"/
- if [[ "$COMMAND" == *"build"* ]]; then
- echo "Build unit tests app for $TARGET_BOARD target with $TOOLCHAIN toolchain and $PROFILE profile"
- # Set Mbed OS path
- MBED_OS_PATH="$CHIP_ROOT"/third_party/mbed-os/repo
- # Set Mbed OS posix socket submodule path
- MBED_OS_POSIX_SOCKET_PATH="$CHIP_ROOT"/third_party/mbed-os-posix-socket/repo
- # Generate config file for selected target, toolchain and hardware
- mbed-tools configure -t "$TOOLCHAIN" -m "$TARGET_BOARD" -o "$BUILD_DIRECTORY" --mbed-os-path "$MBED_OS_PATH"
- # Remove old artifacts to force linking
- rm -rf "$BUILD_DIRECTORY/chip-"*
- # Build application
- cmake -S "./" -B "$BUILD_DIRECTORY" -GNinja -DCMAKE_BUILD_TYPE="$PROFILE" -DMBED_OS_PATH="$MBED_OS_PATH" -DMBED_OS_POSIX_SOCKET_PATH="$MBED_OS_POSIX_SOCKET_PATH"
- cmake --build "$BUILD_DIRECTORY"
- fi
- if [[ "$COMMAND" == *"flash"* ]]; then
- echo "Flash unit tests app to $TARGET_BOARD target [$TOOLCHAIN toolchain, $PROFILE profile]"
- # Flash scripts path setup
- MBED_FLASH_SCRIPTS_PATH=$CHIP_ROOT/config/mbed/scripts
- # Flash application
- "$OPENOCD_PATH"/bin/openocd -f "$MBED_FLASH_SCRIPTS_PATH/$TARGET_BOARD".tcl -c "program $BUILD_DIRECTORY/chip-mbed-unit-tests.elf verify reset exit"
- fi
|