Git Product home page Git Product logo

Comments (5)

ivmarkov avatar ivmarkov commented on May 31, 2024 2

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)
  • 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)

from esp-idf-sys.

N3xed avatar N3xed commented on May 31, 2024

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.

igrr avatar igrr commented on May 31, 2024

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.

N3xed avatar N3xed commented on May 31, 2024

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.

ivmarkov avatar ivmarkov commented on May 31, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.