Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dimitrius-dev/conan-2-wrapper-templates

conan 2.x ready-made wrapper templates and examples for lib, project, conan-server
https://github.com/dimitrius-dev/conan-2-wrapper-templates

build cmake conan conan-exec conan-lib conan-packages conan-recipe conan-server conan2 conanfile cpp docker docker-compose docker-container docker-image dockerfile dockerhub lib

Last synced: 7 days ago
JSON representation

conan 2.x ready-made wrapper templates and examples for lib, project, conan-server

Awesome Lists containing this project

README

        

# Conan templates
___
#### Проект-справка для наглядного использования пакетного менеджера Conan 2.0 в c/c++ проектах.
___
Официальная справка: https://docs.conan.io/2/
___
### Описание
Данный проект-справка создан для ускоренной интеграции conan в C++ проекты с помощью готовых шаблонов.
В общих чертах данный пакетный менеджер имеет схожести по функционалу на пакетным менеджером Maven для языка Java.

### Структура проекта
___
```
+
|
+--conan-server---+-- conan-serv-1
| |
| +-- ...
|
+----presets------+-- preset-1
| |
| +-- ...
|
+-----tools-------+-- tool-1
|
+-- ...
```
`conan-server` - шаблоны для установки conan сервера
`presets` - примеры использование шаблонов
`tools` - шаблоны

### Настройка conan
___
Для установки всех компонентов на устройстве должен быть ```pip```

### Установка conan
```
pip install conan
```
### Установка используемых настроек для conan для вашей команды разработки
```
conan config install [custom_conan_settings_zip_url]
```
Пример: ```conan config install http://домен_ресурса/conan_settings.zip```

Ссылка custom_conan_settings_url ведет на zip архив. Этот архив содержит в себе файлы настроек:
+ ```remotes.json``` - список удаленных репозиториев
+ ```settings_user.yml``` - добавка к файлу settings.yml разрешенных значений настроек для профилей

Все строится на репозиториях с пакетами. Каждый пакет - библиотека.
Репозитории бывают двух типов:
+ Локальные (клиентский - local cache)
+ Удаленные (официальный - conancenter, свой - custom_server(https://docs.conan.io/2/reference/config_files/remotes.html) )

Локальный репозиторий существует на любом устройстве, которое создает и использует пакеты.
Удаленные репозитории лишь хранят множество пакетов, которые можно получить на локальные.

### Иерархия данных
```
+--+-библиотека example 0.0.1 (версия библиотеки)
| |
| +--+-ревизия #1 (ревизия библиотеки)
| | |
| | +--пакет #1 (сборка библиотеки)
| | +--пакет #2 (сборка библиотеки)
| |
| +--+-ревизия #2 . . .
| | . . .
|
+--+-библиотека example 0.0.2 (версия библиотеки)
| . . .
```
Сначала требуется создать ```profile``` - файл профиль, который будет определять
характеристики нашей системы для сборки и использования пакетов.
Профиль определяет пользователь, его содержимое никак не проверяется на соответствие реальной системы.

Автоматически создать профиль
```
conan profile detect --force
```
Получить путь к профилю ```default```
```
conan profile path default
```

### Готовые шаблоны для использования
___
+ __Conan__
+ [Создание своей библиотеки](./tools/conan_lib_preset/doc/README_RUS.md)
+ [Использование своей библиотеки](./tools/conan_exec_preset/doc/README_RUS.md)
+ __Conan server__
+ [Сервер библиотек](./conan-server/doc/README_RUS.md)
+ __Дополнительные шаблоны__
+ [Использование локальных ресурсов для проекта](./tools/resources/doc/README_RUS.md)


### Примеры использования шаблонов
___
+ __Conan__
+ [Создание своей библиотеки](presets/build-lib-project/doc/README_RUS.md)
+ [Использование своей библиотеки](presets/build-executable-project/doc/README_RUS.md)