Skip to content

Latest commit

 

History

History
66 lines (56 loc) · 3.34 KB

File metadata and controls

66 lines (56 loc) · 3.34 KB

Создание своей библиотеки


Шаги для создания своей библиотеки

  1. Создайте пустой проект
  2. Положите шаблон рецепта conanfile.py в своей проект. Отредактируйте рецепт под свою библиотеку.
  3. Положите в проект файл ConanLibPreset.cmake и проинициализируйте cmake переменные: conan, conan_profile.

Разбор шаблона ConanLibPreset.cmake


При применении шаблона 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 в данном проекте разделен на две части.
conanfile.py:

    [                        Редактируемые данные                        ]

#======================================================================================
#========================== GENERATED CODE BELOW ======================================
#======================================================================================
#=================== USED FOR "ConanLibPreset.cmake" FILE =============================
#======================================================================================

    [                            Шаблон-данные                           ]

Данный шаблон инициализирует cmake переменную CT_ENABLE_TESTING для использования её в качестве критерия сборки тестов библиотеки.

Для конфигурации библиотеки используется переменная is_header_only_lib, которая включает/отключает сохранение информации о целевой системе.


Пример: создание своей библиотеки