esp-idf/tools/ci/check_examples_extra_component_dirs.sh

26 lines
784 B
Bash
Executable File

#!/usr/bin/env bash
set -uo pipefail
# Examples shouldn't use EXTRA_COMPONENT_DIRS, instead the dependencies should be specified in idf_component.yml files
output=$(find ${IDF_PATH}/examples -name "CMakeLists.txt" -not -path "**/managed_components/**" -not -path "**/build/**")
files=$(egrep "set\(EXTRA_COMPONENT_DIRS" ${output} | cut -d ":" -f 1)
found_issues=0
for file in ${files}
do
if [ "$file" == "${IDF_PATH}/examples/system/unit_test/test/CMakeLists.txt" ]; then
# this specific one is okay
continue
fi
echo "${file} uses EXTRA_COMPONENT_DIRS. Change it to reference the component using idf_component.yml file."
((found_issues++))
done
if [ $found_issues -eq 0 ]; then
echo "No examples use EXTRA_COMPONENT_DIRS"
exit 0
fi
exit 1