Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork436
Fix libraries priority selection (again)#574
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
per1234 commentedFeb 3, 2020
I confirm this does fix#572 for me. Thanks! Excellent documentation! Should we publish this information to a more "official" location? I thinkhttps://github.com/arduino/Arduino/wiki/Build-Process would be the most appropriate location in our existing documentation. Regarding the IDE release, I like the idea of moving quickly to resolve serious bugs, though I know the release verification process is a lot of work for you. Some other bugs that would be nice to get resolved before the release:
|
cmaglie commentedFeb 4, 2020
Thanks! After rereading it this morning it really looks like a draft-I-quickly-written-just-after-fixing-the-issue. It surely need some rewording with a better idiomatic english :-) Anyway it's nice to see how nice and linear the algorithm turned out to be after straightening and refactoring the legacy code.
Sure, can you take care of it? |
Now it returns true for libraries that do not specify "architecture"fiels.
per1234 commentedFeb 5, 2020
I have added the library priorities documentation to the Build Process wiki page: In addition to some minor rewording and fixing of typos, I made the following additions/changes:
I'm happy to make corrections or improvements if anyone has feedback for me (and, of course, feel free to edit the wiki directly). |
- Fix library priority selection (again)arduino/arduino-cli#574- Improve precompiled libraries handlingarduino/arduino-cli#512
This PR changes again the lib priority selection to improve backward compatibility. Now the algorithm should be (hopefully) 100% compatible with legacy algorithm used in the
arduino-builder.The priority is determined by applying the following rules, one by one in this order, until a rule determine a winner:
Usually the first four rules are enough, the rule 5 is rarely applied and the rule 6 is even more rare. Anyway they are there to not leave the selection process undefined even in those extreme cases.
@per1234 could you check if this solves#572?
I think that this issue alone calls for another release of the Arduino IDE.
Details about rules:
A library is consideredcompatible with architecture
Xif thearchitecturefield in library.properties:X*(see table below for an example)
A library is consideredoptimized for architecture
Xonly if thearchitecturefield in library.properties contains explicitly the architecureX.architecturefield inlibrary.propertiesavravrarchitectures=*architectures=avrarchitectures=*,avrarchitectures=*,esp8266architectures=avr,esp8266architectures=samdThe "name priority" is determined as follows (higher is better):
Servo.hServo-mastersuffixServo-masterServoWhateverAwesomeServoAnAwesomeServoForWhateverThe "location priority" is determined as follows (higher is better):