boost & asio как часть большого проекта с Cmake - PullRequest
1 голос
/ 22 февраля 2011

Я хочу использовать базовые библиотеки Boost (например, lambda) и библиотеку Boost ASIO в большом кроссплатформенном проекте, построенном на Cmake.Я хочу поместить Boost & ASIO в мое дерево управления исходными кодами и собрать его как часть проекта с Cmake.Поэтому я не хочу «устанавливать» его на компьютеры и связывать с ним.

Как это можно сделать?Существует ли CMakeLists.txt для повышения?

Ответы [ 2 ]

4 голосов
/ 22 февраля 2011

И Boost.Lambda, и Boost.ASIO являются библиотеками только для заголовков, поэтому в вашем файле CMakeLists.txt вы можете включить каталог Boost include в переменную INCLUDE_DIRECTORIES, а когда ваш код собран, заголовок код будет встроен в ваши полученные модули.

Для ситуаций, когда вы используете библиотеки не только для заголовков, такие как Boost.Filesystem, вам придется либо отправить созданные вами библиотеки, либо изменить экспериментальную версию CMake boost.build, которую вы можете найти здесь: https://svn.boost.org/trac/boost/wiki/CMake

Редактировать

Я немного растерялся из-за Boost.Asio. Это не только заголовок, потому что он зависит от Boost.System и, возможно, Boost.Thread в зависимости от того, как вы его используете.

Однако Boost.Asio является производным от Asio (http://think -async.com / ), который предназначен только для заголовков.

0 голосов
/ 22 февраля 2011

Существует проект, направленный на предоставление версии буста для CMake. Это довольно устарело, но CMakeLists.txt может вам помочь. Вы можете проверить это там .

...