Comments (5)
Currently we are converging on the following (just to summarize the discussion, please correct me if I'm wrong on any of these):
- Native builds:
- By default,
<binary crate>/.embuild/espressif
will be picked up as an install location - User can override this with an environment variable, and use either a user-defined location, or the global
~/.espressif
, which is the default one for stock ESP-IDF installations - In both cases, ESP-IDF will be installed in the "espressif" folder as defined above, however the user should have the option (i.e. an environment variable), to override this location. This is a bit odd when the "espressif" folder is the global one in the presence of patching, however the expectation is to not do patching in future (or use it by picking up a patched GIT fork of ESP-IDF)
- By default,
- PIO builds:
- (Not yet the default, but will be soon):
<binary crate>/.embuild/platformio
will be picked up as an install location - User can override this with an environment variable, and use either a user-defined location, or the global
~/.platformio
, which is the default one for stock PlatformIO installations - In both cases, ESP-IDF will be installed in the "platfromio/framework_espidf" folder as defined above. The user (due to PlatformIO restrictions) will NOT have the option to override this location. This is a bit odd when the "platformio" folder is the global one in the presence of patching, however the expectation is to not do patching in future (or use it by picking up a patched GIT fork of ESP-IDF)
- (Not yet the default, but will be soon):
from esp-idf-sys.
Okay so I think what we decided on was:
For the native build:
- Global install dir:
~/.espressif
- Local install dir (used by default):
<workspace-dir>/.embuild/espressif
For the pio build:
- Continue to use the global install dir
~/.platformio
, which is the pio default.
from esp-idf-sys.
I have missed the initial comment, so it might be a bit late, but this statement regarding "global" IDF install
Messes up with the global user configuration of either PlatformIO or Espressif idf.py
shouldn't be true; if it is, it's probably a bug. At least as far as tools installation (via idf_tools.py) goes. The tools are installed side by side and each IDF version picks the tools to use.
For IDF itself, it is typically not installed into ~/.espressif, and given that it's patched I agree it makes sense to install it into the local build directory.
from esp-idf-sys.
Well, installing the tools into ~/.espressif
shouldn't cause issues, that's what I thought too (because this uses the exact same mechanism to install the tools as the esp-idf itself, as far as I know). But the problem was with installing the esp-idf source (at least for me). Currently, both the source and tools are always installed in the same directory. And when installing the source in the global location and patching it, that could cause problems, should the user installation of the esp-idf source and our installation coincide.
With #19, this problem still exists, as again, both the source and tools are always installed in the same location. Changing this would make it more complicated.
The default is to install both things locally, but the user can opt into the global install. Also, I think the goal is to eventually not have to patch the esp-idf. Additionally, unless a specific hash is installed, the esp-idf source folder always gets the tag or branch
name suffixed so this should also prevent collisions in most cases.
So with that, I think that this shouldn't really be an issue. Please tell me if you think otherwise.
For IDF itself, it is typically not installed into ~/.espressif
That's good to know. And also supports my conclusion 😄.
from esp-idf-sys.
The PlatformIO aspect of this should now be fixed by 9022587
I'll publish a new release now, with these changes as well as the previous ones from @N3xed that unified the handling of sdkconfig*
files and glob file copies.
from esp-idf-sys.
Related Issues (20)
- xtensa-esp-elf: how to influence endianness ? HOT 10
- Failing to add mdns remote component HOT 4
- How to allocate a vector or array in PSRAM HOT 4
- backtrace (of rust code) is incomplete on esp32c6 HOT 17
- Integration with `bevy_ecs` - linker failure `pthread_setcancelstate is not implemented` HOT 5
- Do Rust Native Queues and Mutexes Properly Suspend Tasks HOT 3
- Misaligned struct pointer from esp camera HOT 22
- could not identify the root crate and `ESP_IDF_SYS_ROOT_CRATE` not specified HOT 2
- Time for `espidf_time32`? HOT 4
- Trying to set CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=1 not working HOT 2
- esp-idf-sys HOT 1
- esp-idf-sys build started fail on arm mac os HOT 20
- Unable to build on Mac M1 HOT 1
- ...no 'IDF_PYTHON_ENV_PATH' item,Debian 12, std mode, esp-idf-template, idf master HOT 4
- Windows path length message is wrong. HOT 1
- tskNO_AFFINITY missing with esp-idf v5.2.1 HOT 1
- Using custom components introduces a requirement of specifying all components HOT 7
- failed to run custom build command for `esp-idf-sys v0.34.1` HOT 1
- Wrapper for RTC Slow memory HOT 2
- Implementing tinyusb callbacks in rust HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp-idf-sys.