I've built the dynamic boost libraries required by the Ogre 3d engine (thread and date_time). My boost directory is in C:\boost , the lib is in C:\boost\lib and the include in C:\boost(\boost) as required by the standards.
If you're familiar with CMake and Ogre (since that's the simplest way to build any Ogre repository clone from sources), you know that there isn't much else to specify. That's not true in my case: Cmake always reports that it cannot find boost. And this happens only when I try to build the Ogre 1.8 version from their repository. When I use the Ogre 2.0 experimental unstable (at the time I wrote this question), boost is successfully found and so are its threading and date-time components.
Has anyone got any ideas? Preferably, has anyone tried to build the Ogre 1.8 sources this way?
I did try almost everything (even command line cmake), but with no positive results.
I've asked this question almost twice on the Ogre forums and nothing from those sources solved the problem for the stable release of Ogre.
What is it that makes Cmake derail so much when building one version over the other? How can I at least check for boost's existence in CMake (without creating a build solution or anything else)?
There must be a simple command line flag or a simple script to run with cmake, but apart from the FindBoost.cmake
file, nothing else really helps (and that one is too big to make something out of it at a quick glance).
UPDATE Using sakra's suggestion, I see that boost is recognized:
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:6
7 ] location of version.hpp: C:/boost/boost/version.hpp
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:7
6 ] version.hpp reveals boost 1.50.0
but although this section does reveal that boost is where it should be, the thread and date_time libraries are invisible to CMake.
The Boost_USE_STATIC_LIBS
flag is set to OFF/FALSE, just in case..
UPDATE using the --find-package cmake command line argument:
C:\Ogre18\Build>cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C
XX -DMODE=EXIST
Boost found.
Ultimately, cmake doesn't find the required components. Can one check for specific libraries belonging to a boost installation?
Try invoking cmake
with the variable Boost_DEBUG
set to TRUE
. This may give you some hints on why the FindBoost module does not find your Boost installation.
cmake -DBoost_DEBUG=TRUE .