Modified buid_examples.sh to handle new locations of examples

This commit is contained in:
Krzysztof Budzynski 2017-01-16 23:08:35 +01:00
parent 382999b378
commit f7a9a2f50b

View File

@ -15,34 +15,38 @@ FAILED_EXAMPLES=""
RESULT_WARNINGS=22 # magic number result code for "warnings found" RESULT_WARNINGS=22 # magic number result code for "warnings found"
for example in ${IDF_PATH}/examples/*; do # traverse categories
[ -f ${example}/Makefile ] || continue for category in ${IDF_PATH}/examples/*; do
echo "Building ${example} as ${EXAMPLE_NUM}..." # traverse examples within each category
mkdir -p example_builds/${EXAMPLE_NUM} for example in ${category}/*; do
cp -r ${example} example_builds/${EXAMPLE_NUM} [ -f ${example}/Makefile ] || continue
pushd example_builds/${EXAMPLE_NUM}/`basename ${example}` echo "Building ${example} as ${EXAMPLE_NUM}..."
mkdir -p example_builds/${EXAMPLE_NUM}
cp -r ${example} example_builds/${EXAMPLE_NUM}
pushd example_builds/${EXAMPLE_NUM}/`basename ${example}`
# be stricter in the CI build than the default IDF settings # be stricter in the CI build than the default IDF settings
export EXTRA_CFLAGS="-Werror -Werror=deprecated-declarations" export EXTRA_CFLAGS="-Werror -Werror=deprecated-declarations"
export EXTRA_CXXFLAGS=${EXTRA_CFLAGS} export EXTRA_CXXFLAGS=${EXTRA_CFLAGS}
# build non-verbose first # build non-verbose first
BUILDLOG=$(mktemp -t examplebuild.XXXX.log) BUILDLOG=$(mktemp -t examplebuild.XXXX.log)
( (
set -o pipefail # so result of make all isn't lost when piping to tee set -o pipefail # so result of make all isn't lost when piping to tee
set -e set -e
make clean defconfig make clean defconfig
make $* all 2>&1 | tee $BUILDLOG make $* all 2>&1 | tee $BUILDLOG
) || { RESULT=$?; FAILED_EXAMPLES+=" ${example}"; make V=1; } # only build verbose if there's an error ) || { RESULT=$?; FAILED_EXAMPLES+=" ${example}"; make V=1; } # only build verbose if there's an error
popd popd
EXAMPLE_NUM=$(( $EXAMPLE_NUM + 1 )) EXAMPLE_NUM=$(( $EXAMPLE_NUM + 1 ))
if grep -q ": warning:" $BUILDLOG; then if grep -q ": warning:" $BUILDLOG; then
[ $RESULT -eq 0 ] && RESULT=$RESULT_WARNINGS [ $RESULT -eq 0 ] && RESULT=$RESULT_WARNINGS
FAILED_EXAMPLES+=" ${example} (warnings)" FAILED_EXAMPLES+=" ${example} (warnings)"
fi fi
rm -f $BUILDLOG rm -f $BUILDLOG
done
done done
if [ $RESULT -eq $RESULT_WARNINGS ]; then if [ $RESULT -eq $RESULT_WARNINGS ]; then