Repository navigation
Yboichuk/feat/remove pio - #140
Open
black-ghost-off wants to merge 5 commits into
Open
black-ghost-off wants to merge 5 commits into
black-ghost-off wants to merge 5 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace PlatformIO with a native ESP-IDF build
Keira now builds as a native ESP-IDF CMake project: ESP-IDF v4.4.7 with arduino-esp32 2.0.17 used as an IDF component. That's the same IDF and Arduino core PlatformIO used before, now built from source. Every dependency is a git submodule pinned to an exact tag or commit, so builds are reproducible and don't depend on registry resolution.
This is the first step toward dropping Arduino entirely and moving Lilka v3 (ESP32-S3.1) to ESP-IDF 6.1+. Lilka v1 support is removed.
Layout
Pinned versions
Component | Version -- | -- ESP-IDF | v4.4.7 (the build fails on any other version) arduino-esp32 | 2.0.17 Lilka SDK | v2.5.15 (needed for lilka/partitions.h) Arduino_GFX | v1.6.0 U8g2 | 2.35.9 (ca1caf3) ArduinoJson | v7.0.4 ESPTelnet | 2.2.1 ESP8266Audio | 2.2.0 AnimatedGIF | 2.1.0 JPEGDEC | 1.8.4 Lua (arduino-lua) | v0.1.1 nofrendo | a5a5c1a TinyUSB / esp-dsp | same commits as the prebuilt Arduino coreLibrary sources are identical to what PlatformIO resolved, except files that PlatformIO's prep script modified. NimBLE was dropped: nothing includes it, so nothing from it was ever linked.
Keeping behavior the same
qio_opivariant) and minimized. It matches the old build except for the Lilka-specific values: 16 MB flash, custom partition table and octal PSRAM initialized at boot.-Os, gnu++11, exceptions on, no RTTI.-Werror=allis disabled because the code was never built with it.LILKA_SDK_VERSIONpins the reported SDK version (the git tag ships a 0.0.0/Dev placeholder that hides the boot splash). Configure fails if it doesn't match the submodule tag.mainon the same device, and the known boot errors (LEDC is not initialized, the first-boot SD card type error) also occur there.Building
make helplists all targets.make FLAGS="-DLANG_EN -DFMANAGER_DEBUG"; this replacesPLATFORMIO_BUILD_FLAGS.make BOARD=<name>selects a board. Adding Lilka v3 later means adding aboards/lilka_v3/folder.CI
espressif/idf:v4.4.7container with ccache.flash_args, so it also includesota_data_initial.bin.VERSION_TYPE, so tag builds never produced the per-language images.clang-formattarget was also checking.c/.cppfiles in excluded directories. Lint now coverssrc/only.Also in this PR
#ifbranches in the NES OSD and the I2C scanner,legacy/v1_partitions.csv,platformio.ini,targets.py.docs/flashing.rst, AGENTS.md, thedebug.hcomments and the VS Code extension recommendations now describe the IDF workflow. The PlatformIO screenshots are removed.Notes for reviewers
v4.4.7with its submodules updated (git submodule update --init --recursive). Otherwise it can link Wi-Fi/PHY libraries from another version.boards/*/sdkconfig.defaults, runmake fullclean.build-docker/.