by StefanP.MUC » 19 Sep 2011, 10:05
I'm not sure how cmake detects the libs (if it's by name or some binary analysis or something else). The Boost dlls from Ogre are the only ones with "mgw45" in their name.
But I just tried compiling the Ogre Example Browser along with the examples (also with a cmakelists). This works just fines, using the Boost version that comes with Ogre.
So, maybe something in our cmake file about boost isn't right (I think I left it untouched when I did some cleaning up, however). I'm not sure what's the best thing there, but the current boost finding looks very complex. Wouldn't it be enough to set the BOOST_ROOT to "OgreSDK/boost_1_44" and do "find_library(boost)"?
Or alternativle, we could make boost an "official" dependency for OD (if we are planning to use it more intensly anyways). And then simply use "find_library(Boost)", then we could also use the newest official Boost version.
edit: Yes, renaming the Boost dlls to include "mgw46" does hack around the problem. This way I can build again, but we need to find a solution for this problem. We can't expect from our devs to have all dependencies build from source to fit their specific compiler version. I'll try to find out what'S different in the Ogre cmakelists, why it worked there.
edit: The Ogre examples link Boost statically with "set(Boost_USE_STATIC_LIBS TRUE)" and "add_definitions(-DBOOST_ALL_NO_LIB)". Maybe that's the inportant difference here.
edit2: Why are we linking to boost thread anyways? I thought we are using pthreads?