[CMake] How to include Boost in Visual Studio cmake project

Michael Jackson mike.jackson at bluequartz.net
Thu Nov 12 08:53:17 EST 2009


Just to follow up a bit more, here is my recipe for getting Boost up  
and running with CMake and Visual Studio.

1: Compile Boost:
  From the "Visual Studio Command Prompt I use the following:

bjam.exe toolset=msvc-9.0 --with-test --with-filesystem --with- 
program_options --with-date_time --with-thread --prefix=C:\Developer 
\VS9\boost_1_39 variant=release,debug threading=multi link=static  
runtime-link=shared install

2: I then set the Boost_ROOT environment variable to "C:\Developer 
\VS9\boost_1_39"

3: CMakeLists.txt File:

# ---------- Find Boost Headers/Libraries -----------------------
SET (Boost_FIND_REQUIRED TRUE)
SET (Boost_FIND_QUIETLY TRUE)
SET (Boost_DEBUG FALSE)
set (Boost_USE_MULTITHREADED TRUE)
set (Boost_USE_STATIC_LIBS TRUE)
SET (Boost_ADDITIONAL_VERSIONS "1.39" "1.39.0")

FIND_PACKAGE(Boost COMPONENTS  program_options )
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})

4: Remove Everything from the current build directory

5: CMake: From a brand new "Visual Studio Command Prompt" I verify  
that Boost_ROOT is set correctly then running "CMake-Gui.exe". Click  
"Configure" then Generate.

That usually allows CMake to find Boost. Hope that helps.

_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio

On Nov 11, 2009, at 7:41 PM, Martin Peter Christiansen wrote:

> For the last day or so I have tried to compile a project(RobWork)  
> for Visual Studio 2008 using Cmake.
> But my problem is that Cmake claims i can't find Boost dependencies.
>
> I have been googling the problem on the net, but the only answer I  
> could find was that FindBost.cmake was the problem, but not how to  
> solve it.
>
> When i run the project (RobWork) i get the following error:
>
>  C:\Documents and Settings\Martin>cd c:\local\workspace\RobWork\build 
> \release
> C:\local\workspace\RobWork\build\release>cmake -G "Visual Studio 9  
> 2008" -DCMAKE_BUILD_TYPE=Release
> ../..
> -- RobWork version 0.4.0
> -- Build configuration: Release
> 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_1_39_0
>   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)
>
> - I have successfully compiled Boost 1.39.0 to Visual studio 2008,  
> so i get lib files like "libboost_date_time-vc90-mt-1_39.lib" in  
> <boost-root>/stage/lib.
>
> - Boost have been placed in “C:\local\boost_1_39_0”
>
> - The following environment variables has been added to Windows  
> BOOST_ROOT = C:\local\boost_1_39_0 and BOOST_LIBRARYDIR = $BOOST_ROOT 
> \stage\lib
>
> - Both Cmake 2.6 and 2.8r2 have been used to compile the project,  
> with no success.
>
>
> What I need is a solution, which can help me compile this project  
> using Visual Studio 2008
>  Is there some way I can setup FindBoost.cmake, so it will accept  
> and boost correctly????
>
>
> Regards
>
>
> Martin Peter Christiansen
>
>
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list