ci(json): Add configuration requirements to ci.json files (#10385)

* ci(json): Add support for checking sdkconfig before running tests

* docs(ci): Add explanation about requires field in JSON

* fix(json): Ignore comments when searching requirements

* feat(json): Add extended regex support to requires field

* change(json): Move to using requirements in JSON

* fix(json): Fix requirements for touch tests

* refactor(json): Fix formatting of JSON files

* fix(spi): Fix SPI example and JSON
This commit is contained in:
Lucas Saavedra Vaz 2024-09-30 07:43:50 -03:00 committed by GitHub
parent 1f1de2738b
commit e403f0b481
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
169 changed files with 654 additions and 688 deletions

View file

@ -6,6 +6,7 @@ PLATFORMIO_ESP32_URL="https://github.com/platformio/platform-espressif32.git"
TOOLCHAIN_VERSION="12.2.0+20230208" TOOLCHAIN_VERSION="12.2.0+20230208"
ESPTOOLPY_VERSION="~1.40501.0" ESPTOOLPY_VERSION="~1.40501.0"
ESPRESSIF_ORGANIZATION_NAME="espressif" ESPRESSIF_ORGANIZATION_NAME="espressif"
LIBS_DIR="tools/esp32-arduino-libs"
echo "Installing Python Wheel ..." echo "Installing Python Wheel ..."
pip install wheel > /dev/null 2>&1 pip install wheel > /dev/null 2>&1
@ -88,12 +89,25 @@ function count_sketches(){ # count_sketches <examples-path>
local sketchname=$(basename $sketch) local sketchname=$(basename $sketch)
if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then if [[ "${sketchdirname}.ino" != "$sketchname" ]]; then
continue continue
fi elif [ -f $sketchdir/ci.json ]; then
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
# If the target is listed as false, skip the sketch. Otherwise, include it. # If the target is listed as false, skip the sketch. Otherwise, include it.
is_target=$(jq -r '.targets[esp32]' $sketchdir/ci.json)
if [[ "$is_target" == "false" ]]; then if [[ "$is_target" == "false" ]]; then
continue continue
fi fi
# Check if the sketch requires any configuration options
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" ]] || [[ "$requirements" != "" ]]; then
for requirement in $requirements; do
found_line=$(grep -E "^$requirement" $LIBS_DIR/esp32/sdkconfig)
if [[ "$found_line" == "" ]]; then
continue 2
fi
done
fi
fi
echo $sketch >> sketches.txt echo $sketch >> sketches.txt
sketchnum=$(($sketchnum + 1)) sketchnum=$(($sketchnum + 1))
done done
@ -163,12 +177,27 @@ function build_pio_sketches(){ # build_pio_sketches <board> <options> <examples-
local sketchdir=$(dirname $sketch) local sketchdir=$(dirname $sketch)
local sketchdirname=$(basename $sketchdir) local sketchdirname=$(basename $sketchdir)
local sketchname=$(basename $sketch) local sketchname=$(basename $sketch)
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) if [[ "$sketchdirname.ino" != "$sketchname" ]]; then
continue
elif [ -f $sketchdir/ci.json ]; then
# If the target is listed as false, skip the sketch. Otherwise, include it. # If the target is listed as false, skip the sketch. Otherwise, include it.
if [ "${sketchdirname}.ino" != "$sketchname" ] \ is_target=$(jq -r '.targets[esp32]' $sketchdir/ci.json)
|| [[ "$is_target" == "false" ]]; then if [[ "$is_target" == "false" ]]; then
continue continue
fi fi
# Check if the sketch requires any configuration options
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" ]] || [[ "$requirements" != "" ]]; then
for requirement in $requirements; do
found_line=$(grep -E "^$requirement" $LIBS_DIR/esp32/sdkconfig)
if [[ "$found_line" == "" ]]; then
continue 2
fi
done
fi
fi
sketchnum=$(($sketchnum + 1)) sketchnum=$(($sketchnum + 1))
if [ "$sketchnum" -le "$start_index" ] \ if [ "$sketchnum" -le "$start_index" ] \
|| [ "$sketchnum" -gt "$end_index" ]; then || [ "$sketchnum" -gt "$end_index" ]; then

View file

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
LIBS_DIR="tools/esp32-arduino-libs"
function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [extra-options] function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [extra-options]
while [ ! -z "$1" ]; do while [ ! -z "$1" ]; do
case "$1" in case "$1" in
@ -140,18 +142,27 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
sketchname=$(basename $sketchdir) sketchname=$(basename $sketchdir)
# If the target is listed as false, skip the sketch. Otherwise, include it.
if [ -f $sketchdir/ci.json ]; then if [ -f $sketchdir/ci.json ]; then
# If the target is listed as false, skip the sketch. Otherwise, include it.
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
else
is_target="true"
fi
if [[ "$is_target" == "false" ]]; then if [[ "$is_target" == "false" ]]; then
echo "Skipping $sketchname for target $target" echo "Skipping $sketchname for target $target"
exit 0 exit 0
fi fi
# Check if the sketch requires any configuration options
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" ]] || [[ "$requirements" != "" ]]; then
for requirement in $requirements; do
found_line=$(grep -E "^$requirement" $LIBS_DIR/$target/sdkconfig)
if [[ "$found_line" == "" ]]; then
echo "Target $target does not meet the requirement $requirement for $sketchname. Skipping."
exit 0
fi
done
fi
fi
ARDUINO_CACHE_DIR="$HOME/.arduino/cache.tmp" ARDUINO_CACHE_DIR="$HOME/.arduino/cache.tmp"
if [ -n "$ARDUINO_BUILD_DIR" ]; then if [ -n "$ARDUINO_BUILD_DIR" ]; then
build_dir="$ARDUINO_BUILD_DIR" build_dir="$ARDUINO_BUILD_DIR"
@ -288,16 +299,23 @@ function count_sketches(){ # count_sketches <path> [target] [file]
local sketchname=$(basename $sketch) local sketchname=$(basename $sketch)
if [[ "$sketchdirname.ino" != "$sketchname" ]]; then if [[ "$sketchdirname.ino" != "$sketchname" ]]; then
continue continue
elif [[ -n $target ]]; then elif [[ -n $target ]] && [[ -f $sketchdir/ci.json ]]; then
# If the target is listed as false, skip the sketch. Otherwise, include it. # If the target is listed as false, skip the sketch. Otherwise, include it.
if [ -f $sketchdir/ci.json ]; then
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
else
is_target="true"
fi
if [[ "$is_target" == "false" ]]; then if [[ "$is_target" == "false" ]]; then
continue continue
fi fi
# Check if the sketch requires any configuration options
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" ]] || [[ "$requirements" != "" ]]; then
for requirement in $requirements; do
found_line=$(grep -E "^$requirement" $LIBS_DIR/$target/sdkconfig)
if [[ "$found_line" == "" ]]; then
continue 2
fi
done
fi
fi fi
echo $sketch >> sketches.txt echo $sketch >> sketches.txt
sketchnum=$(($sketchnum + 1)) sketchnum=$(($sketchnum + 1))

View file

@ -10,14 +10,10 @@ function run_test() {
local result=0 local result=0
local error=0 local error=0
# If the target or platform is listed as false, skip the sketch. Otherwise, include it.
if [ -f $sketchdir/ci.json ]; then if [ -f $sketchdir/ci.json ]; then
# If the target or platform is listed as false, skip the sketch. Otherwise, include it.
is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json)
selected_platform=$(jq -r --arg platform $platform '.platforms[$platform]' $sketchdir/ci.json) selected_platform=$(jq -r --arg platform $platform '.platforms[$platform]' $sketchdir/ci.json)
else
is_target="true"
selected_platform="true"
fi
if [[ $is_target == "false" ]] || [[ $selected_platform == "false" ]]; then if [[ $is_target == "false" ]] || [[ $selected_platform == "false" ]]; then
printf "\033[93mSkipping $sketchname test for $target, platform: $platform\033[0m\n" printf "\033[93mSkipping $sketchname test for $target, platform: $platform\033[0m\n"
@ -25,6 +21,20 @@ function run_test() {
return 0 return 0
fi fi
# Check if the sketch requires any configuration options
requirements=$(jq -r '.requires[]? // empty' $sketchdir/ci.json)
if [[ "$requirements" != "null" ]] || [[ "$requirements" != "" ]]; then
for requirement in $requirements; do
found_line=$(grep -E "^$requirement" $LIBS_DIR/$target/sdkconfig)
if [[ "$found_line" == "" ]]; then
printf "\033[93mTarget $target does not meet the requirement $requirement for $sketchname. Skipping.\033[0m\n"
printf "\n\n\n"
return 0
fi
done
fi
fi
if [ $options -eq 0 ] && [ -f $sketchdir/ci.json ]; then if [ $options -eq 0 ] && [ -f $sketchdir/ci.json ]; then
len=`jq -r --arg target $target '.fqbn[$target] | length' $sketchdir/ci.json` len=`jq -r --arg target $target '.fqbn[$target] | length' $sketchdir/ci.json`
if [ $len -eq 0 ]; then if [ $len -eq 0 ]; then
@ -110,6 +120,7 @@ function run_test() {
SCRIPTS_DIR="./.github/scripts" SCRIPTS_DIR="./.github/scripts"
COUNT_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh count" COUNT_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh count"
LIBS_DIR="tools/esp32-arduino-libs"
platform="hardware" platform="hardware"
wokwi_timeout=60000 wokwi_timeout=60000

View file

@ -109,17 +109,44 @@ Also:
Testing Testing
******* *******
Be sure you have tested the example in all the supported targets. If the example works only with specific targets, Be sure you have tested the example in all the supported targets. If the example some specific hardware requirements,
edit/add the ``ci.json`` in the same folder as the sketch to specify the supported targets. By default, edit/add the ``ci.json`` in the same folder as the sketch to specify the regular expression for the
all targets are assumed to be supported. required configurations from ``sdkconfig``.
This will ensure that the CI system will run the test only on the targets that have the required configurations.
Here is an example of the ``ci.json`` file where the example does not support ESP32-H2 and ESP32-S2: You can check the available configurations in the ``sdkconfig`` file in the ``tools/esp32-arduino-libs/<target>`` folder.
Here is an example of the ``ci.json`` file where the example requires Wi-Fi to work properly:
.. code-block:: json .. code-block:: json
{ {
"requires": [
"CONFIG_SOC_WIFI_SUPPORTED=y"
]
}
.. note::
The list of configurations will be checked against the ``sdkconfig`` file in the target folder. If the configuration is not present in the ``sdkconfig``,
the test will be skipped for that target. That means that the test will only run on the targets that have **ALL** the required configurations.
Also, by default, the "match start of line" character (``^``) will be added to the beginning of each configuration.
That means that the configuration must be at the beginning of the line in the ``sdkconfig`` file.
Sometimes, the example might not be supported by some target, even if the target has the required configurations
(like resources limitations or requiring a specific SoC). To avoid compilation errors, you can add the target to the ``ci.json``
file so the CI system will force to skip the test on that target.
Here is an example of the ``ci.json`` file where the example is requires Wi-Fi to work properly but is also not supported by the ESP32-S2 target:
.. code-block:: json
{
"requires": [
"CONFIG_SOC_WIFI_SUPPORTED=y"
],
"targets": { "targets": {
"esp32h2": false,
"esp32s2": false "esp32s2": false
} }
} }
@ -130,17 +157,17 @@ For example, in the sketch:
.. code-block:: arduino .. code-block:: arduino
/* /*
THIS FEATURE IS SUPPORTED ONLY BY ESP32-S2 AND ESP32-C3 THIS FEATURE REQUIRES WI-FI SUPPORT AND IS NOT AVAILABLE FOR ESP32-S2 AS IT DOES NOT HAVE ENOUGH RAM.
*/ */
And in the ``README.md`` file: And in the ``README.md`` file:
.. code-block:: markdown .. code-block:: markdown
Currently, this example supports the following targets. Currently, this example requires Wi-Fi and supports the following targets.
| Supported Targets | ESP32 | ESP32-S2 | ESP32-C3 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-H2 | ESP32-S3 | ESP32-C3 | ESP32-C6 |
| ----------------- | ----- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- |
Example Template Example Template
**************** ****************
@ -341,8 +368,11 @@ CI JSON File
The ``ci.json`` file is used to specify how the test suite and sketches will handled by the CI system. It can contain the following fields: The ``ci.json`` file is used to specify how the test suite and sketches will handled by the CI system. It can contain the following fields:
* ``targets``: A dictionary that specifies the supported targets. The key is the target name and the value is a boolean that specifies if the * ``requires``: A list of configurations in ``sdkconfig`` that are required to run the test suite. The test suite will only run on the targets
target is supported. By default, all targets are assumed to be supported. This field is also valid for examples. that have the required configurations. By default, no configurations are required.
* ``targets``: A dictionary that specifies the targets for which the tests will be run. The key is the target name and the value is a boolean
that specifies if the test should be run for that target. By default, all targets are enabled as long as they have the required configurations
specified in the ``requires`` field. This field is also valid for examples.
* ``platforms``: A dictionary that specifies the supported platforms. The key is the platform name and the value is a boolean that specifies if * ``platforms``: A dictionary that specifies the supported platforms. The key is the platform name and the value is a boolean that specifies if
the platform is supported. By default, all platforms are assumed to be supported. the platform is supported. By default, all platforms are assumed to be supported.
* ``extra_tags``: A list of extra tags that the runner will require when running the test suite in hardware. By default, no extra tags are required. * ``extra_tags``: A list of extra tags that the runner will require when running the test suite in hardware. By default, no extra tags are required.

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_BLE_50_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_BLE_50_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_BLE_50_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_BLE_50_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false, "CONFIG_SOC_BLE_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,6 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false, "CONFIG_SOC_BLE_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32s2": false "CONFIG_SOC_BLE_SUPPORTED=y"
} ]
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_SPP_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,7 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_CAMERA_TASK_STACK_SIZE=[0-9]+"
"esp32c6": false, ]
"esp32h2": false
}
} }

View file

@ -4,8 +4,7 @@
"espressif:esp32:esp32s3:USBMode=hwcdc,PartitionScheme=huge_app,FlashMode=dio" "espressif:esp32:esp32s3:USBMode=hwcdc,PartitionScheme=huge_app,FlashMode=dio"
] ]
}, },
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y"
"esp32s2": false ]
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_TOUCH_VERSION_1=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,8 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_TOUCH_VERSION_2=y"
"esp32c3": false, ]
"esp32c6": false,
"esp32h2": false
}
} }

View file

@ -1,7 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y"
"esp32c6": false, ]
"esp32h2": false
}
} }

View file

@ -1,7 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y"
"esp32c6": false, ]
"esp32h2": false
}
} }

View file

@ -0,0 +1,6 @@
{
"requires": [
"CONFIG_SOC_I2S_SUPPORTED=y",
"CONFIG_SOC_I2C_SUPPORTED=y"
]
}

View file

@ -1,8 +1,6 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_SDMMC_HOST_SUPPORTED=y",
"esp32c6": false, "CONFIG_SOC_I2S_SUPPORTED=y"
"esp32h2": false, ]
"esp32s2": false
}
} }

View file

@ -0,0 +1,5 @@
{
"requires": [
"CONFIG_SOC_I2S_SUPPORTED=y"
]
}

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -4,6 +4,9 @@
"espressif:esp32:esp32s3:USBMode=default,PartitionScheme=esp_sr_16,FlashSize=16M,FlashMode=dio" "espressif:esp32:esp32s3:USBMode=default,PartitionScheme=esp_sr_16,FlashSize=16M,FlashMode=dio"
] ]
}, },
"requires": [
"CONFIG_SOC_I2S_SUPPORTED=y"
],
"targets": { "targets": {
"esp32": false, "esp32": false,
"esp32c3": false, "esp32c3": false,

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_ETH_USE_ESP32_EMAC=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_ETH_USE_ESP32_EMAC=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,6 +1,6 @@
{ {
"targets": { "requires": [
"esp32c6": false, "CONFIG_ESP_INSIGHTS_ENABLED=y",
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,6 +1,6 @@
{ {
"targets": { "requires": [
"esp32c6": false, "CONFIG_ESP_INSIGHTS_ENABLED=y",
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_OPENTHREAD_ENABLED=y",
"esp32c2": false, "CONFIG_SOC_IEEE802154_SUPPORTED=y"
"esp32c3": false, ]
"esp32s2": false,
"esp32s3": false
}
} }

View file

@ -0,0 +1,5 @@
{
"requires": [
"CONFIG_LWIP_PPP_SUPPORT=y"
]
}

View file

@ -1,5 +1,6 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_LWIP_PPP_SUPPORT=y",
} "CONFIG_SOC_WIFI_SUPPORTED=y"
]
} }

View file

@ -1,5 +1,6 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y",
} "CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK"
]
} }

View file

@ -1,5 +1,6 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y",
} "CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK"
]
} }

View file

@ -1,5 +1,6 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y",
} "CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK"
]
} }

View file

@ -1,5 +1,6 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y",
} "CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK"
]
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,9 +1,6 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_SDMMC_HOST_SUPPORTED=y",
"esp32c3": false, "CONFIG_TINYUSB_MSC_ENABLED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false
}
} }

View file

@ -1,8 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_SDMMC_HOST_SUPPORTED=y"
"esp32c6": false, ]
"esp32h2": false,
"esp32s2": false
}
} }

View file

@ -1,8 +1,6 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_WIFI_SUPPORTED=y",
"esp32c6": false, "CONFIG_SOC_SDMMC_HOST_SUPPORTED=y"
"esp32h2": false, ]
"esp32s2": false
}
} }

View file

@ -39,7 +39,7 @@
#define HSPI_SS 15 #define HSPI_SS 15
#endif #endif
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 #if !defined(CONFIG_IDF_TARGET_ESP32)
#define VSPI FSPI #define VSPI FSPI
#endif #endif

View file

@ -1,7 +1,5 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_SOC_SPI_PERIPH_NUM=[2-9]"
"esp32c6": false, ]
"esp32h2": false
}
} }

View file

@ -1,5 +1,5 @@
{ {
"targets": { "requires": [
"esp32h2": false "CONFIG_SOC_WIFI_SUPPORTED=y"
} ]
} }

View file

@ -1,6 +1,6 @@
{ {
"targets": { "requires": [
"esp32c3": false, "CONFIG_BT_ENABLED=y",
"esp32s2": false "CONFIG_BLUEDROID_ENABLED=y"
} ]
} }

View file

@ -1,8 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_USB_OTG_SUPPORTED=y"
"esp32c3": false, ]
"esp32c6": false,
"esp32h2": false
}
} }

View file

@ -1,8 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_USB_OTG_SUPPORTED=y"
"esp32c3": false, ]
"esp32c6": false,
"esp32h2": false
}
} }

View file

@ -1,8 +1,5 @@
{ {
"targets": { "requires": [
"esp32": false, "CONFIG_SOC_USB_OTG_SUPPORTED=y"
"esp32c3": false, ]
"esp32c6": false,
"esp32h2": false
}
} }

Some files were not shown because too many files have changed in this diff Show more