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

rendering3-3.5.0 fails to build with ogre/1.10.12 #374

Open
mboisson opened this issue Aug 4, 2021 · 5 comments
Open

rendering3-3.5.0 fails to build with ogre/1.10.12 #374

mboisson opened this issue Aug 4, 2021 · 5 comments
Labels
bug Something isn't working

Comments

@mboisson
Copy link

mboisson commented Aug 4, 2021

Environment

  • OS Version: Gentoo on CentOS7
  • Source build
  • using rendering3-3.5.0 and ogre 1.10.12

Description

I was trying to build ignition-citadel using ogre/1.10.12, since it appears that it has issues with ogre/1.12.12 (gazebosim/gazebo-classic#2700). However, I hit the following compilation error:

22031 /tmp/mboisson/avx2/ignition/citadel/GCC-9.3.0/ign-rendering-ignition-rendering3_3.5.0/ogre/src/OgreMaterialSwitcher.cc: In member function virtual Ogre::Technique* ignition::rendering::v3::OgreMaterialSwitcher::handleSchemeNotFound(uint16_t, const String&, Ogre::Material*, uint16_t, const Ogre::Renderable*):
22032 /tmp/mboisson/avx2/ignition/citadel/GCC-9.3.0/ign-rendering-ignition-rendering3_3.5.0/ogre/src/OgreMaterialSwitcher.cc:86:53: error: no matching function for call to static_pointer_cast<Ogre::Material>(Ogre::ResourcePtr&)
22033    86 |         std::static_pointer_cast<Ogre::Material>(res);
22034       |

Is there a missing version requirement for ogre for rendering3-3.5.0 ?

The same recipe builds fine against ogre/1.12.12.

@chapulina
Copy link
Contributor

@mboisson
Copy link
Author

mboisson commented Aug 5, 2021

Mmm, shouldn't it abort at configuration time if a different version is found then ?

@chapulina
Copy link
Contributor

Yup, I'm surprised it didn't. There must be something weird going on in FindIgnOGRE

@traversaro
Copy link
Contributor

traversaro commented Aug 6, 2021

I may be wrong, but I guess that 1.8.0 means >= 1.8.0 and < 2.0, see https://github.com/ignitionrobotics/ign-cmake/blob/ign-cmake2/cmake/FindIgnOGRE.cmake#L94 . In fact, I don't think there is any environment in which ignition-rendering is built with Ogre 1.8.0. As far as I know, on apt-based distributions and Homebrew Ogre 1.9 is used (see https://repology.org/project/ogre/versions), while in conda-forge at the moment we are building ignition-rendering (even if a newer version) with both Ogre 1.10 and 1.12, see conda-forge/libignition-rendering4-feedstock#8 .

I noticed that in conda-forge we have a local patch (https://github.com/conda-forge/libignition-rendering4-feedstock/blob/master/recipe/ogre-version.patch) to correctly compile with Ogre 1.10, that I think is inspired by a comment by @diegoferigo in robotology-legacy/gym-ignition#279 (comment) . Probably we just need to get that patch upstream to solve this issue, sorry for not submitting it before!

@traversaro
Copy link
Contributor

I noticed that in conda-forge we have a local patch (https://github.com/conda-forge/libignition-rendering4-feedstock/blob/master/recipe/ogre-version.patch) to correctly compile with Ogre 1.10, that I think is inspired by a comment by @diegoferigo in robotology/gym-ignition#279 (comment) . Probably we just need to get that patch upstream to solve this issue, sorry for not submitting it before!

PR submitted in #374 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants