| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/usr/bin/env bash
- # While we support GNU Make & CMake together, check the same examples are present for both. But only for ESP32
- echo "- Getting paths of CMakeLists and Makefiles"
- IFS=
- CMAKELISTS=$( find ${IDF_PATH}/examples/ -type f -name CMakeLists.txt | grep -v "/components/" | grep -v "/common_components/" | grep -v "/cxx/experimental/experimental_cpp_component/" | grep -v "/main/" | grep -v "/build_system/cmake/" | grep -v "/mb_example_common/" | sort -n)
- MAKEFILES=$( find ${IDF_PATH}/examples/ -type f -name Makefile | grep -v "/build_system/cmake/" | sort -n)
- echo " [DONE]"
- echo "- Building the ignore list"
- IGNORE_LIST=
- while read line
- do
- STL=$(grep "set[(]SUPPORTED_TARGETS" $line)
- if test -n $STL # if specified SUPPORTED_TARGETS
- then
- WO_ESP32=$(grep -v -w "esp32" <<< $STL)
- if test -n "$WO_ESP32" # if not specified esp32 at SUPPORTED_TARGETS
- then # then consider that the example should not have a Makefile
- PATH2IGNORE=$(/usr/bin/dirname $line)
- echo " Adding to ignore $PATH2IGNORE"
- IGNORE_LIST="$IGNORE_LIST$PATH2IGNORE
- "
- fi
- fi
- done <<< $CMAKELISTS
- IGNORE_LIST=$(grep -v -e '^$' <<< $IGNORE_LIST) # remove empty lines
- echo -e " [DONE] - Ignore list:\n$IGNORE_LIST\n"
- echo "- Applying the Ignore list"
- while read line
- do
- echo $line
- CMAKELISTS=$(echo $CMAKELISTS | grep -v $line)
- MAKEFILES=$(echo $MAKEFILES | grep -v $line)
- done <<< $IGNORE_LIST
- echo " [DONE]"
- echo "- Getting paths of examples"
- while read line
- do
- new_path="$(/usr/bin/dirname $line)"
- CMAKE_EXAMPLE_PATHS="$CMAKE_EXAMPLE_PATHS$new_path
- "
- done <<< $CMAKELISTS
- CMAKE_EXAMPLE_PATHS=$(grep -v -e '^$' <<< $CMAKE_EXAMPLE_PATHS) # remove empty lines
- while read line
- do
- new_path="$(/usr/bin/dirname $line)"
- MAKE_EXAMPLE_PATHS="$MAKE_EXAMPLE_PATHS$new_path
- "
- done <<< $MAKEFILES
- MAKE_EXAMPLE_PATHS=$(grep -v -e '^$' <<< $MAKE_EXAMPLE_PATHS) # remove empty lines
- echo " [DONE]"
- echo "- Analysing matches"
- MISMATCH=$(comm -3 <(echo "$MAKE_EXAMPLE_PATHS") <(echo "$CMAKE_EXAMPLE_PATHS"))
- if [ -n "$MISMATCH" ]; then
- echo " [ERROR] Some examples are not in both CMake and GNU Make:"
- echo "$MISMATCH"
- exit 1
- fi
- echo " [DONE] Example lists match"
- exit 0
|