ros / dynamic_reconfigure

BSD 3-Clause "New" or "Revised" License
47 stars 112 forks source link

Use system on gen headers #140

Closed v-lopez closed 5 years ago

v-lopez commented 5 years ago

Adding SYSTEM here prevents compilation warnings from being displayed on the autogenerated headers.

And more importantly, if some of those warnings have been converted to build errors, ignores those errors and enables compilation.

mjcarroll commented 4 years ago

Just a heads up on this @v-lopez, we discovered that it causes issues with building in overlay workspaces, because -isystem paths are included after -I. I had to pull this out for now unless we can come up with a workaround that doesn't break overlays.

For reference, this discourse post has a pretty good minimal reproduction example: https://discourse.ros.org/t/preparing-for-melodic-sync-2020-03-12/13207/7

v-lopez commented 4 years ago

Thanks for letting me know, that's bad news :/ We've been forced to use SYSTEM in most of our code to be able to use stricter build flags, so I guess that's why we didn't see the issue.

I believe this may be due to the the fact that all ros header directories are installed on the same path.
So if I'm finding an installed package roscpp for instance, without SYSTEM, it's going to put it before my package parameter headers that use SYSTEM. And if my parameter headers are also installed they will be found first.