-
Notifications
You must be signed in to change notification settings - Fork 30
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
Use visibility hidden by default #392
Conversation
The commit changes the gz-cmake projects to use C/C++ visibility hidden by default. This is a potential breaking changed for projects using gz-cmake but the benefits in terms of creating portable code and time spend by the loader could be huge. To avoid this change, the EXPOSE_SYMBOLS_BY_DEFAULT flag can be used in the gz_configure_project call. The change deprecates the HIDDEN_SYMBOLS_BY_DEFAULT flag. Signed-off-by: Jose Luis Rivero <[email protected]>
This is a good example of a PR that needs CI runs on all downstream libraries building this PR from source. Cross-ref gazebo-tooling/release-tools#851 |
example for testing with gz-utils in gazebosim/gz-utils#115 |
Part of testing gazebosim/gz-cmake#392 Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
@osrf-jenkins run tests |
1 similar comment
@osrf-jenkins run tests |
* Use single header for MovingWindowFilter * Use HIDE_SYMBOLS_BY_DEFAULT Part of testing gazebosim/gz-cmake#392 Signed-off-by: Jose Luis Rivero <[email protected]> Signed-off-by: Steve Peters <[email protected]> Co-authored-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
wow, apparently we've already been using |
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]>
Part of testing gazebosim/gz-cmake#392. Signed-off-by: Steve Peters <[email protected]> Signed-off-by: Jose Luis Rivero <[email protected]> Co-authored-by: Jose Luis Rivero <[email protected]>
@j-rivero , any outstanding PR in any downstream libraries that we should merge before this one? |
Nop! we are good to go. |
Signed-off-by: Jose Luis Rivero <[email protected]>
Before merging, just found that we don't have a Migration.md entry for this, done in 75ae798 |
actually, do we want to remove the |
Yep. See #166 (comment) and linked PRs after the comment. |
Time has come. Ready to merge 🚀 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Just a few documentation related comments
@@ -9,6 +9,17 @@ release will remove the deprecated code. | |||
|
|||
1. The minimum required cmake version is now 3.22.1. | |||
|
|||
1. **Breaking**: C/C++ projects enable the visibility=hidden by default | |||
gz-cmake4 changes the gz-cmake projects to use C/C++ visibility hidden | |||
by default. This is a potential breaking changed for projects using |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by default. This is a potential breaking changed for projects using | |
by default. This is a potential breaking change for projects using |
gz-cmake4 changes the gz-cmake projects to use C/C++ visibility hidden | ||
by default. This is a potential breaking changed for projects using | ||
gz-cmake but the benefits in terms of creating portable code and | ||
time spend by the loader could be relevant. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
time spend by the loader could be relevant. | |
reducing the time spent by the loader could be significant. |
by default. This is a potential breaking changed for projects using | ||
gz-cmake but the benefits in terms of creating portable code and | ||
time spend by the loader could be relevant. | ||
To avoid this change, the EXPOSE_SYMBOLS_BY_DEFAULT flag can be used in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To avoid this change, the EXPOSE_SYMBOLS_BY_DEFAULT flag can be used in | |
To avoid this change, the `EXPOSE_SYMBOLS_BY_DEFAULT` flag can be used in |
the gz_configure_project call. | ||
The change deprecates the HIDDEN_SYMBOLS_BY_DEFAULT flag that can be |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the gz_configure_project call. | |
The change deprecates the HIDDEN_SYMBOLS_BY_DEFAULT flag that can be | |
the `gz_configure_project` call. | |
The change deprecates the `HIDDEN_SYMBOLS_BY_DEFAULT` flag that can be |
Co-authored-by: Addisu Z. Taddese <[email protected]> Signed-off-by: Jose Luis Rivero <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
🎉 New feature
Part of #166
Note: all Ionic branches need to be checked and fixed before merging.
Summary
The commit changes the gz-cmake projects to use C/C++ visibility hidden by default. This is a potential breaking changed for projects using gz-cmake but the benefits in terms of creating portable code and time spend by the loader could be huge.
To avoid this change, the
EXPOSE_SYMBOLS_BY_DEFAULT
flag can be used in the gz_configure_project call.The change deprecates the
HIDDEN_SYMBOLS_BY_DEFAULT
flag.Test it
Create an Ionic colcon workspace and build it with this branch.
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.