- Создайте пустой проект
- Положите шаблон рецепта
conanfile.py
в своей проект. Отредактируйте рецепт под свою библиотеку. - Положите в проект файл
ConanLibPreset.cmake
и проинициализируйте cmake переменные:conan
,conan_profile
.
При применении шаблона ConanLibPreset.cmake
весь проект должен иметь следующий шаблон иерархии.
имя проекта:
conan_lib:
include: *.h, *.hpp ...
src: *.cpp ...
test:
include: *.h, *.hpp ...
src: *.cpp ...
CMakeLists.txt
CMakeLists.txt
conanfile.py
CMakeLists.txt
...
При сборке библиотеки в локальный репозиторий помещается только директория conan_lib
.
CMakeLists.txt
:
...
# "conan_exec_preset" plugin
set(conan "/usr/local/bin/conan") # set conan path
set(conan_profile "default") # set host conan profile
include(ConanLibPreset.cmake)
...
Переменная conan
(Пример: "/usr/local/bin/conan
) - путь к установленному conan 2.x.
Переменная conan_profile
(Пример: default
/./my_profile
) - название используемого conan профиля или полный путь до существующего профиля.
Шаблон добавляет cmake цели сборки:
test_lib
- запуск тестов, которые описаны в директории*/conan_lib/test/
.deploy_lib
- сборка и дэплой бибоиотеки в локальный репозиторий.
Файл-шаблон conanfile.py
в данном проекте разделен на две части.
conanfile.py
:
[ Редактируемые данные ]
#======================================================================================
#========================== GENERATED CODE BELOW ======================================
#======================================================================================
#=================== USED FOR "ConanLibPreset.cmake" FILE =============================
#======================================================================================
[ Шаблон-данные ]
Данный шаблон инициализирует cmake переменную CT_ENABLE_TESTING
для использования её в качестве критерия сборки тестов библиотеки.
Для конфигурации библиотеки используется переменная is_header_only_lib
, которая включает/отключает сохранение информации о целевой системе.
Пример: создание своей библиотеки