[CMake] How to include Boost in Visual Studio cmake project
Philip Lowman
philip at yhbt.com
Thu Nov 12 07:54:07 EST 2009
On Thu, Nov 12, 2009 at 5:43 AM, Martin Peter Christiansen <
martin.p.christiansen at gmail.com> wrote:
> I just tried the advise I was given, and the result was the following
>
> C:\local\workspace\RobWork\build\release>cmake -G "Visual Studio 9 2008"
> -DCMAKE_BUILD_TYPE=Release ../..
> -- RobWork version 0.4.0
> -- Build configuration: Release
> -- No Default.cmake file loaded, using default settings from
> config.cmake.template
>
> CMake Warning (dev) at CMakeLists.txt:20 (INCLUDE):
> Policy CMP0011 is not set: Included scripts do automatic cmake_policy
> PUSH
> and POP. Run "cmake --help-policy CMP0011" for policy details. Use the
> cmake_policy command to set the policy and suppress this warning.
> The included script
> C:/local/workspace/RobWork/build/ProjectSetup.cmake
> affects policy settings. CMake is implying the NO_POLICY_SCOPE option
> for
> compatibility, so the effects are applied to the including context.
> This warning is for project developers. Use -Wno-dev to suppress it.
> -- RobWork ROOT dir: C:/local/workspace/RobWork
> CMake Error at C:/Programmer/CMake
> 2.8/share/cmake-2.8/Modules/FindBoost.cmake:879 (message):
> Unable to find the requested Boost libraries.
> Boost version: 1.39.0
> Boost include path: C:/local/boost/include/boost-1_39
> The following Boost libraries could not be found:
> boost_thread
> No Boost libraries were found. You may need to set Boost_LIBRARYDIR to
> the
> directory containing Boost libraries or BOOST_ROOT to the location of
> Boost.
> Call Stack (most recent call first):
> build/depends.cmake:8 (FIND_PACKAGE)
> build/RobWorkSetup.cmake:32 (INCLUDE)
> CMakeLists.txt:36 (INCLUDE)
>
>
> When I was building boost this time, I did ran the following commands:
> - "C:\Downloads\boost_1_39_0>bjam.exe --prefix=C:\local\boost -toolset=msvs
> define="_SECURE_SCL=0" define="_HAS_ITERATOR_DEBUGGING=0" -d+2"
> - "C:\Downloads\boost_1_39_0>bjam.exe install --prefix=C:\local\boost"
>
> I removed all the old enviromental variables for boost and created the
> following variable
> - BOOST_ROOT = C:\local\boost
>
> In "C:\local\boost\lib" I have
> - libboost_thread-vc90-mt.lib
> - libboost_thread-vc90-mt-gd-1_39.lib
> - libboost_thread-vc90-mt-gd.lib
>
> In "C:\local\boost\include\boost-1_39" I have
> - A folder named "boost", but no subfolder or file called "boost_thread"
>
>
>
I must missing some variable or setting, but I can't figure out what...
>
Your directory structure sounds good to me.
Here are a couple of suggestions...
Check the documentation to FindBoost.cmake. Have you specified
Boost_USE_STATIC_LIBS and Boost_USE_MULTITHREADED appropriately? These
affect which libraries are detected and certain ones like boost_thread can't
be found if Boost_USE_MULTITHREADED is not true.
If this doesn't help, delete your build tree, then add this line prior to
calling find_package(Boost...)
set(Boost_DEBUG TRUE)
Paste the output here and the relevant portions of your CMakeLists.txt when
you call find_package(Boost...).
--
Philip Lowman
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20091112/24328d04/attachment.htm>
More information about the CMake
mailing list