Compare commits

...
1 Commits
Author SHA1 Message Date
alex c10f1a3e92 fix: resolve PlatformIO async dependencies 2026-08-26 11:40:37 +10:00
5 changed files with 13 additions and 46 deletions
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## 3.0.6
- Correct async PlatformIO dependency owners to the registry's canonical lowercase identity, so a clean consumer builds WiFiManager and its ESP8266/ESP32 transport dependencies without duplicating them in `lib_deps`. Remove the superseded include-path bridge.
## 3.0.5
- Add a library-owned PlatformIO bridge for the asynchronous web/TCP include paths required when WiFiManager is nested beneath DeviceFramework.
+3 -12
View File
@@ -208,34 +208,25 @@ When developing both libraries together, use a local `symlink://` or
## Installation
Use the release tag and list the asynchronous web/TCP packages at project level.
PlatformIO installs the manifest dependencies automatically, but its dependency
finder requires these headers to be direct project dependencies before it adds
their include paths:
Use the release tag. The package manifest resolves DFTE, the asynchronous web
server, and the platform-specific TCP library automatically:
```ini
[common]
lib_deps =
WiFiManager=https://github.com/alexhopeoconnor/WiFiManager.git#v3.0.5
ESP32Async/ESPAsyncWebServer@3.9.1
WiFiManager=https://github.com/alexhopeoconnor/WiFiManager.git#v3.0.6
[env:esp8266]
extends = common
platform = espressif8266
board = d1_mini
framework = arduino
lib_deps =
${common.lib_deps}
ESP32Async/ESPAsyncTCP@2.0.0
[env:esp32]
extends = common
lib_deps =
platform = espressif32
board = esp32dev
framework = arduino
${common.lib_deps}
ESP32Async/AsyncTCP@3.4.9
```
The text after `#` is a Git ref. PlatformIO clones the repository and checks
+5 -6
View File
@@ -1,6 +1,6 @@
{
"name": "WiFiManager",
"version": "3.0.5",
"version": "3.0.6",
"keywords": [
"wifi",
"wi-fi",
@@ -40,18 +40,18 @@
],
"dependencies": [
{
"owner": "ESP32Async",
"owner": "esp32async",
"name": "ESPAsyncWebServer",
"version": "3.9.1"
},
{
"owner": "ESP32Async",
"owner": "esp32async",
"name": "ESPAsyncTCP",
"version": "2.0.0",
"platforms": "espressif8266"
},
{
"owner": "ESP32Async",
"owner": "esp32async",
"name": "AsyncTCP",
"version": "3.4.9",
"platforms": "espressif32"
@@ -63,8 +63,7 @@
],
"build": {
"includeDir": "lib/WiFiManager/include",
"srcDir": "lib/WiFiManager/src",
"extraScript": "tools/platformio/dependencies.py"
"srcDir": "lib/WiFiManager/src"
},
"export": {
"include": [
+1 -4
View File
@@ -3,10 +3,9 @@ default_envs = esp8266
[common]
framework = arduino
lib_ldf_mode = chain
lib_ldf_mode = deep+
lib_deps =
WiFiManager=symlink://../..
ESP32Async/ESPAsyncWebServer@3.9.1
[env:esp8266]
extends = common
@@ -18,7 +17,6 @@ build_flags =
-DWM_LOG_LEVEL=3
lib_deps =
${common.lib_deps}
ESP32Async/ESPAsyncTCP@2.0.0
[env:esp32]
extends = common
@@ -30,4 +28,3 @@ build_flags =
-DWM_LOG_LEVEL=3
lib_deps =
${common.lib_deps}
ESP32Async/AsyncTCP@3.4.9
-24
View File
@@ -1,24 +0,0 @@
"""Expose WiFiManager's async dependencies to PlatformIO's nested library builds."""
from __future__ import print_function
import glob
import os
from SCons.Script import Import
Import("env")
def append_dependency_include(package_prefix):
"""Add the installed package's source directory when PlatformIO has it."""
package_root = env.subst("$PROJECT_LIBDEPS_DIR")
candidates = glob.glob(os.path.join(package_root, package_prefix + "*", "src"))
if candidates:
env.Append(CPPPATH=[candidates[0]])
append_dependency_include("ESPAsyncWebServer")
if env.subst("$PIOPLATFORM") == "espressif8266":
append_dependency_include("ESPAsyncTCP")
elif env.subst("$PIOPLATFORM") == "espressif32":
append_dependency_include("AsyncTCP")