-
-
Notifications
You must be signed in to change notification settings - Fork 400
Uploader prefs miss {build.core.path}, {build.system.path} and {build.variant.path} #1012
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I did a test with the latest nightly of Arduino CLI before moving this and those properties were not expanded in the upload recipe. So I don't think your feature request is resolved. If I'm wrong about that, and it is now supported, then it should be closed as resolved. It's the Arduino CLI codebase where this feature request would be implemented, which will then eventually become available to all the tools that use Arduino CLI, including the IDE. So it now makes more sense for this issue to be in the |
the issue is not resolved in IDE 2.0 |
after esp8266 and esp32, the pico core is next platform which stockpiles all boards because it can't be referenced because of this problem. and custom boards definitions in sketchbook's hardware folder have to copy and maintain files used in upload recipes. the specification as written now makes this a feature, not a bug, but this problem practically stops use of referencing a core.
Is it really not possible to make it work in CLI and IDE 2? |
While waiting for an implementation, can we symlink to the tools directory in the referenced package and expect the same behavior once a solution is adopted? |
if you meant the tools folder of the esp8266 arduino platform, then yes the simlink is a good workaround. |
Thanks for the hint on It's important to get this method to work, and be somewhat standardized and relatively easy to use, since it answers to years of requests from both users and library maintainers to allow libraries depend on custom user boards, does best to model reality (a combined |
@mcbp223 I don't want to pollute the issue here with a discussion so just two links for you |
The keys
{build.core.path}
,{build.system.path}
and{build.variant.path}
are not evaluated for platform.txt tools recipes (tools.xy.upload.pattern
).Then the tools recipes must use
runtime.platform.path
. But then there are problems to use the platform as referenced core, becauseruntime.platform.path
is the referencing board platform path.For example in the SAMD package the
upload.pattern
contains{runtime.platform.path}/variants/{build.variant}/{build.openocdscript}
instead of{build.variant.path}/{build.openocdscript}
. A board in referencing board platform can use in board.txt an existing variant of the referenced core platform inxy.build.variant
for compilation, but the upload tool will not find the script for the variant.I try to make the esp8266 package to be used as as referenced core. Now it uses
{runtime.platform.path}/tools
all over platform.txt and{runtime.platform.path}
will evaluate to referencing board platform, not to referenced core platform. They could use{build.core.path}/../../tools
or rename the folder tosystem
and use{build.system.path}
variable. It works for building, but it doesn't evaluate inuploader.pattern
.I debugged the Arduino IDE 1 and found out that compiler recipes use prefs evaluated by arduino-builder, while Uploaders use the preferences map of the IDE. So it is not a simple fix. I think, the best way for fixing this would be to pass the prefs evaluated by
Compiler
overSketchController
from build() to upload(). Same in classprocessing.app.Base
.The text was updated successfully, but these errors were encountered: