Skip to content
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

Fix visibility macro names when used by a different component (Windows) #564

Merged
merged 7 commits into from
Jan 20, 2021

Conversation

j-rivero
Copy link
Contributor

The PR solves a critical problem: when building a new component (new shared object) the visibility keyword can not be the same than a library it links to. This translated means: our systems and components can not use IGNITION_GAZEBO_VISIBLE but the custom name created by ign-cmake in the form of IGNITION_GAZEBO_${COMPONENT_NAME}_VISIBLE. Otherwise there is a nice list of fanky linker errors all around.

@github-actions github-actions bot added the 🏢 edifice Ignition Edifice label Jan 15, 2021
Copy link
Contributor

@chapulina chapulina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow I didn't know those macros even existed! I'm still not sure if the plugins need the visibility to be set though.

Codechecker is sad - otherwise the PR looks good to me.

  /github/workspace/include/ignition/gazebo/gui/Gui.hh:63:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/camera_video_recorder/CameraVideoRecorder.hh:44:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/joint_position_controller/JointPositionController.hh:75:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/logical_audio_sensor_plugin/LogicalAudioSensorPlugin.hh:132:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/multicopter_control/MulticopterVelocityControl.hh:149:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/multicopter_motor_model/MulticopterMotorModel.hh:37:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/optical_tactile_plugin/OpticalTactilePlugin.hh:69:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  /github/workspace/src/systems/triggered_publisher/TriggeredPublisher.hh:157:  Lines should be <= 80 characters long  [whitespace/line_length] [2]
  Total errors found: 8

src/systems/breadcrumbs/Breadcrumbs.hh Outdated Show resolved Hide resolved
@azeey
Copy link
Contributor

azeey commented Jan 15, 2021

I'm still not sure if the plugins need the visibility to be set though.

Yeah, I don't think we want them to be visible. I would in fact vote for making them final classes.

@j-rivero j-rivero force-pushed the jrivero/win/fix_visibility_names branch from 7d720f8 to 198d90a Compare January 19, 2021 14:43
@codecov
Copy link

codecov bot commented Jan 19, 2021

Codecov Report

Merging #564 (7f9f1b7) into main (9246d67) will not change coverage.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #564   +/-   ##
=======================================
  Coverage   77.57%   77.57%           
=======================================
  Files         211      211           
  Lines       11582    11582           
=======================================
  Hits         8985     8985           
  Misses       2597     2597           
Impacted Files Coverage Δ
src/systems/apply_joint_force/ApplyJointForce.hh 100.00% <ø> (ø)
src/systems/breadcrumbs/Breadcrumbs.hh 100.00% <ø> (ø)
src/systems/buoyancy/Buoyancy.hh 100.00% <ø> (ø)
src/systems/contact/Contact.hh 100.00% <ø> (ø)
src/systems/detachable_joint/DetachableJoint.hh 100.00% <ø> (ø)
src/systems/diff_drive/DiffDrive.hh 100.00% <ø> (ø)
src/systems/joint_controller/JointController.hh 100.00% <ø> (ø)
...int_position_controller/JointPositionController.hh 100.00% <ø> (ø)
...stems/joint_state_publisher/JointStatePublisher.hh 100.00% <ø> (ø)
src/systems/lift_drag/LiftDrag.hh 100.00% <ø> (ø)
... and 22 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9246d67...7f9f1b7. Read the comment docs.

@j-rivero
Copy link
Contributor Author

I'm still not sure if the plugins need the visibility to be set though.

I've removed visibility from all plugins.

Yeah, I don't think we want them to be visible. I would in fact vote for making them final classes.

I agree. I would leave the change of moving them to final classes in a different PR.

@chapulina chapulina merged commit d3ef3c2 into main Jan 20, 2021
@chapulina chapulina deleted the jrivero/win/fix_visibility_names branch January 20, 2021 02:00
@j-rivero j-rivero mentioned this pull request Jan 20, 2021
18 tasks
chapulina pushed a commit that referenced this pull request Jul 30, 2021
chapulina pushed a commit that referenced this pull request Jul 30, 2021
chapulina pushed a commit that referenced this pull request Jul 30, 2021
chapulina pushed a commit that referenced this pull request Aug 4, 2021
chapulina pushed a commit that referenced this pull request Aug 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏢 edifice Ignition Edifice
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants