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

Use Protobuf_IMPORT_DIRS instead of PROTOBUF_IMPORT_DIRS for compatibility with Protobuf CMake config #715

Merged
merged 1 commit into from
Apr 5, 2021

Conversation

traversaro
Copy link
Contributor

@traversaro traversaro commented Mar 28, 2021

🦟 Bug fix

Fixes the compilation of Ignition Gazebo on Windows or in any case on a platform in which Protobuf installs its CMake Config files.

Summary

Ignition Gazebo uses the PROTOBUF_GENERATE_CPP CMake function to generate C++ code from the .proto files.
Depending on the system and the protobuf version installed, this function can be defined in two possible places:

As currently ignition-gazebo only sets the PROTOBUF_IMPORT_DIRS variable, if a Protobuf CMake config is used, the generation of messages fails with error:

2021-03-27T23:20:08.8623834Z -- Build files have been written to: D:/bld/libignition-gazebo4_1616885912413/work/build
2021-03-27T23:20:09.2594171Z [1/408] cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/peer_info.proto"
2021-03-27T23:20:09.2597900Z FAILED: src/msgs/peer_info.pb.h src/msgs/peer_info.pb.cc 
2021-03-27T23:20:09.2605328Z cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/peer_info.proto"
2021-03-27T23:20:09.2606754Z ignition/msgs/header.proto: File not found.
2021-03-27T23:20:09.2613215Z peer_info.proto:22:1: Import "ignition/msgs/header.proto" was not found or had errors.
2021-03-27T23:20:09.2614568Z peer_info.proto:28:3: "ignition.msgs.Header" is not defined.
2021-03-27T23:20:09.2616338Z [2/408] cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/peer_control.proto"
2021-03-27T23:20:09.2618072Z FAILED: src/msgs/peer_control.pb.h src/msgs/peer_control.pb.cc 
2021-03-27T23:20:09.2619552Z cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/peer_control.proto"
2021-03-27T23:20:09.2621084Z ignition/msgs/header.proto: File not found.
2021-03-27T23:20:09.2625509Z peer_control.proto:22:1: Import "ignition/msgs/header.proto" was not found or had errors.
2021-03-27T23:20:09.2627093Z peer_control.proto:30:3: "ignition.msgs.Header" is not defined.
2021-03-27T23:20:09.2628926Z [3/408] cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/simulation_step.proto"
2021-03-27T23:20:09.2630539Z FAILED: src/msgs/simulation_step.pb.h src/msgs/simulation_step.pb.cc 
2021-03-27T23:20:09.2638659Z cmd.exe /C "cd /D %SRC_DIR%\build\src\msgs && %PREFIX%\Library\bin\protoc.exe --cpp_out D:/bld/libignition-gazebo4_1616885912413/work/build/src/msgs -I D:/bld/libignition-gazebo4_1616885912413/work/src/msgs D:/bld/libignition-gazebo4_1616885912413/work/src/msgs/simulation_step.proto"
2021-03-27T23:20:09.2639864Z ignition/msgs/world_stats.proto: File not found.
2021-03-27T23:20:09.2640359Z ignition/msgs/entity.proto: File not found.

(error taken from conda-forge/libignition-gazebo-feedstock#3).

To avoid this errors, I switched the Ignition Gazebo to set the Protobuf_IMPORT_DIRS variable that will work fine regardless of whether a CMake config file for ProtoBuf is used or not.

However, as the use of Protobuf_IMPORT_DIRS (instead of PROTOBUF_IMPORT_DIRS) was only introduced in CMake 3.6 (see https://github.com/Kitware/CMake/blob/v3.20.0/Modules/FindProtobuf.cmake#L13), I also bumped the minimum required version to 3.10.2 (for consistency with ignition-cmake2). CMake 3.10.2 is available in apt in Ubuntu 18.04 (see https://repology.org/project/cmake/versions).

Checklist

  • Signed all commits for DCO
  • Added tests
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge

Sorry, something went wrong.

@traversaro traversaro requested a review from chapulina as a code owner March 28, 2021 11:28
@github-actions github-actions bot added the 🏰 citadel Ignition Citadel label Mar 28, 2021
@traversaro
Copy link
Contributor Author

(I will fix the DCO soon).

…ility with Protobuf CMake config

Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it>
@traversaro
Copy link
Contributor Author

(I will fix the DCO soon).

Done.

@traversaro
Copy link
Contributor Author

traversaro commented Mar 28, 2021

Added tests

I did not add tests, I am not sure if they are needed for something like that, probably a relevant coverage could be done by setting up Windows CI, but that probably calls for a separate endeavor.

@traversaro
Copy link
Contributor Author

While waiting for a review on your PR, please help review another open pull request to support the maintainers

I reviewed gazebosim/gz-gui#202, even if it is probably an easy one. :D

@chapulina chapulina added bug Something isn't working Windows Windows support labels Mar 29, 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.

Thanks! The bump in CMake version shouldn't have negative effects, as pointed out in the PR description, upstream libraries already require it.

@chapulina chapulina merged commit dfb43a0 into gazebosim:ign-gazebo3 Apr 5, 2021
scpeters added a commit that referenced this pull request May 19, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
* 🎈 3.8.0 (#688)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Make it so joint state publisher is quieter (#696)

Signed-off-by: Michael Carroll <michael@openrobotics.org>

* [BULLET] Making GetContactsFromLastStepFeature optional in Collision Features (#690)

* GetContactsFromLastStepFeature made optional

Signed-off-by: Tomas Lorente <jtlorente@ekumenlabs.com>

Co-authored-by: Addisu Z. Taddese <addisu@openrobotics.org>

* Add test for thermal object temperatures below 0 kelvin (#621)

Signed-off-by: Ashton Larkin <ashton@openrobotics.org>

* Scenebroadcaster sensors (#698)

* Add sensors to scene broadcaster

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Update src/systems/scene_broadcaster/SceneBroadcaster.cc

Co-authored-by: Michael Carroll <michael@openrobotics.org>

* Fix codecheck

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: Michael Carroll <michael@openrobotics.org>

* Fix diffuse and ambient values for ackermann example (#707)

Signed-off-by: Ammaar Solkar <asketch8@gmail.com>

* 🎈 5.0.0 (#731)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Support configuring particle scatter ratio in particle emitter system (#674)

* set particle scatter ratio through sdf

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* address feedback

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

* add todo note about merging forward

Signed-off-by: Ian Chen <ichen@osrfoundation.org>

Co-authored-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>

* Update PlaybackScrubber description (#733)

Signed-off-by: Ammaar Solkar <asketch8@gmail.com>

* Iterate through changed links only in UpdateSim (#678)

Signed-off-by: Ashton Larkin <ashton@openrobotics.org>

* Do not pass -Wno-unused-parameter to MSVC compiler (#716)

Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it>

* Use Protobuf_IMPORT_DIRS instead of PROTOBUF_IMPORT_DIRS for compatibility with Protobuf CMake config (#715)

Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it>

* Fix component inspector shutdown crash (#724)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Validate step size and RTF parameters (#740)

Only set them if they are strictly positive.

Signed-off-by: Luca Della Vedova <luca@openrobotics.org>

* Fix compute_rtfs arguments (#737)

Signed-off-by: Caio Amaral <caioaamaral@gmail.com>

* Fixed collision visual bounding boxes (#746)

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* Fix CMakelists.txt merge

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* ECM's ChangedState gets message with modified components (#742)

* ecm's ChangedState to contain modified components

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* updated log_system test

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* removed unnecessary calls

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

Co-authored-by: Ian Chen <ichen@osrfoundation.org>

* fixed particle emitter forward playback (#745)

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* Merge pull request #730 from ignitionrobotics/particle_emitter

Particle emitter based on SDF

* 4 7 0 prep (#755)

* Prepare for 4.7.0

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Added placeholder

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Fix 'invalid animation update data' msg for actors (#754)

Signed-off-by: Ashton Larkin <ashton@openrobotics.org>

* Update benchmark comparison instructions (#766) (#766)

Signed-off-by: Ashton Larkin <ashton@openrobotics.org>

* [DiffDrive] add enable/disable (#772)

* add enable/disable diffdrive

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* remove debug

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* do not subscribe to enable if topic is empty

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* add test

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* lint and style

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* change enable type to bool and renamed to enabled

Signed-off-by: Guillaume Doisy <guillaume.doisy@wyca.fr>

* Add odometry publisher system (#547)

* Create Initial Odometry Publisher system plugin

Add code for initial plugin that gets position from Pose component and
calculates velocities based on rolling mean from displacement data.

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

* Remove Linear and Angular Velocity components

Also renames frames in Odometry msg to include model name, and makes
various style changes.

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

* Get World pose instead of pose of robot base frame

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

* Add documentation for variables and functions

Includes minor stylistic changes.

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

* Check for valid odomTopic and update copyright year

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

* Add tests for OdometryPublisherSystem and fix velocity calculation bug

Swap X and Y linear velocities when calculating odometry velocities
relative to robotBaseFrame.

Signed-off-by: Maganty Rushyendra <mrushyendra@yahoo.com.sg>

Co-authored-by: ahcorde <ahcorde@gmail.com>

* Patch particle emitter2 service (#777)

* Patch particle emitter2 service

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Remove condition variable

Signed-off-by: Nate Koenig <nate@openrobotics.org>

* Set emitter frame and relative pose

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* Preparing for 4.8.0 release (#780)

Signed-off-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Nate Koenig <nate@openrobotics.org>

* 👩‍🌾 Enable Focal CI (#646)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Michael Carroll <michael@openrobotics.org>

* [TPE] Support setting individual link velocity  (#427)

Signed-off-by: claireyywang <22240514+claireyywang@users.noreply.github.com>
Signed-off-by: Ian Chen <ichen@osrfoundation.org>

Co-authored-by: Ian Chen <ichen@osrfoundation.org>
Co-authored-by: Louise Poubel <louise@openrobotics.org>

* Don't store duplicate ComponentTypeId in ECM (#751)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Feature/hydrodynamics (#749)

Implement hydrodynamics and thruster plugin.

Signed-off-by: Arjo Chakravarty <arjo@openrobotics.org>
Co-authored-by: Mabel Zhang <mabel@openrobotics.org>
Co-authored-by: Carlos Agüero <caguero@openrobotics.org>

* Fix macOS build: components::Name in benchmark (#784)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Steve Peters <scpeters@openrobotics.org>

* Fix ColladaExporter submesh index bug (#763)

Signed-off-by: Jorge Perez <jjperez@ekumenlabs.com>

* 👩‍🌾 Fix Windows build and some warnings (#782)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>

* Prevent crash on Plotting plugin with mutex (#747)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Bump ign-physics version to 3.2 (#792)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Bump to ign-msgs 7.1 / sdformat 11.1, Windows fixes (#758)

Signed-off-by: Louise Poubel <louise@openrobotics.org>

* Util: Use public API from libsdformat for detecting non-file source (#794)

Signed-off-by: Eric Cousineau <eric.cousineau@tri.global>

* Fix included nested model expansion in SDF generation (#768)

* fixed included nested model expansion

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* added resource path to test

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* use orig URIs & support multi level nesting

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* save fuel version when enabled

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* retrieve uri from map

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* copy included element

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* clear attributes before copying include element

Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>

* Map canonical links to their models (#736)

Signed-off-by: Ashton Larkin <ashton@openrobotics.org>

* ColladaExporter, export submesh selected (#802)

* Export only submesh if selected
* Add test case for the PR
* Attempting a unified solution

Signed-off-by: Jorge Perez <jjperez@ekumenlabs.com>
Co-authored-by: Nate Koenig <nate@openrobotics.org>

Co-authored-by: Michael Carroll <michael@openrobotics.org>
Co-authored-by: Jose Tomas Lorente <jtlorente@ekumenlabs.com>
Co-authored-by: Addisu Z. Taddese <addisu@openrobotics.org>
Co-authored-by: Ashton Larkin <ashton@openrobotics.org>
Co-authored-by: Nate Koenig <nkoenig@users.noreply.github.com>
Co-authored-by: Nate Koenig <nate@openrobotics.org>
Co-authored-by: Ammaar Solkar <asketch8@gmail.com>
Co-authored-by: Ian Chen <ichen@osrfoundation.org>
Co-authored-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
Co-authored-by: Silvio Traversaro <pegua1@gmail.com>
Co-authored-by: Alejandro Hernández Cordero <ahcorde@gmail.com>
Co-authored-by: Luca Della Vedova <luca@openrobotics.org>
Co-authored-by: Caio Amaral <caioaamaral@gmail.com>
Co-authored-by: Jenn Nguyen <jenn@openrobotics.org>
Co-authored-by: G.Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Rushyendra Maganty <mrushyendra@yahoo.com.sg>
Co-authored-by: Claire Wang <22240514+claireyywang@users.noreply.github.com>
Co-authored-by: Arjo Chakravarty <arjo129@gmail.com>
Co-authored-by: Mabel Zhang <mabel@openrobotics.org>
Co-authored-by: Carlos Agüero <caguero@openrobotics.org>
Co-authored-by: Steve Peters <scpeters@openrobotics.org>
Co-authored-by: Jorge Perez <j.j.perez13@hotmail.com>
Co-authored-by: Eric Cousineau <eric.cousineau@tri.global>
Co-authored-by: Jorge Perez <jjperez@ekumenlabs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working 🏰 citadel Ignition Citadel Windows Windows support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants