[CMake] How to link the third party libraries into the project?

Adam Weiss cseadam+cmake at gmail.com
Wed Jan 21 15:44:09 EST 2009


On Wed, Jan 21, 2009 at 3:27 PM, Michael Jackson
<mike.jackson at bluequartz.net> wrote:
>
> On Jan 21, 2009, at 3:19 PM, Alexander Neundorf wrote:
>
>> On Wednesday 21 January 2009, Ram Mulage wrote:
>>>
>>> Hi All,
>>>
>>> I am using boost library in my project and I want to link the boost
>>> static
>>> libraries into my project. How do i do this?
>>>
>>> My project  directory looks as below and each of the directories has the
>>> CMakeLists.txt file.
>>>
>>> Project
>>>
>>>  |-Lib1
>>>  |-Lib2
>>>  |-Application
>>>
>>> I am using the some of the boost libraries in the 'Application' directory
>>> apart from the Lib1 and Lib2 and the exe is built in Application
>>> directory
>>> itself. The boost librariess and the boost headers are present
>>> 'C:/Users/Admin/Boost/lib/windows' and 'C:/Users/Admin/Boost/boost'.
>>> Could
>>> you please tell how my CMakeList.txt for 'Application' directory should
>>> look?
>>>
>>> I would appreciate any help in this regard.
>>
>> Please have a look at the FindBoost.cmake module documentation, you
>> probably
>> want to use it.
>> I haven't used Boost with cmake yet, but it should be more or less the
>> same as
>> for other packages:
>>
>> # make cmake search for the package:
>> find_package(Foo REQUIRED)
>>
>> # add the include directories:
>> include_directories(${FOO_INCLUDE_DIRS})
>>
>> # add targets etc.
>> add_executable(hello main.cpp)
>>
>> # link to the necessary libraries
>> target_link_libraries(hello ${FOO_LIBRARIES})
>>
>> Alex
>>
>
> I have a gut feeling just looking at where his install is located and the
> include directory that the standard Find_Package(Boost) is NOT going to
> work.. but give it a try and let's see what happens.
>
> Mike
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>


As the module says:

# Variables used by this module, they can change the default behaviour
and need to be set
# before calling find_package:
#  Boost_USE_MULTITHREAD         Can be set to OFF to use the non-multithreaded
#                                boost libraries. Defaults to ON.
#  Boost_USE_STATIC_LIBS         Can be set to ON to force the use of the static
#                                boost libraries. Defaults to OFF.
#  Boost_ADDITIONAL_VERSIONS     A list of version numbers to use for searching
#                                the boost include directory. The default list
#                                of version numbers is:
#                                1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1,
#                                1.35, 1.35.0, 1.35.1, 1.36.0, 1.36.1
#                                If you want to look for an older or newer
#                                version set this variable to a list of
#                                strings, where each string contains a
number, i.e.
#                                SET(Boost_ADDITIONAL_VERSIONS
"0.99.0" "1.35.0")
#  BOOST_ROOT                    Preferred installation prefix for
searching for Boost,
#                                set this if the module has problems
finding the proper Boost installation
#  BOOST_INCLUDEDIR              Set this to the include directory of
Boost, if the
#                                module has problems finding the
proper Boost installation
#  BOOST_LIBRARYDIR              Set this to the lib directory of Boost, if the
#                                module has problems finding the
proper Boost installation
#
#  The last three variables are available also as environment variables


Following this, there should be no problem getting Find_Package(Boost) to work.

-Adam


More information about the CMake mailing list