О проекте
CMake for the QR-Code-generator – набор сценариев для автоматической сборки популярной библиотеки для чтения QR-кодов – QR-Code-generator – при помощи CMake.
Лицензия: MIT.
Поддерживаемые версии CMake: 3.20 и более поздние.
Распространение
Все исходные коды данного набора доступны на странице проекта на GitHub.
Стабильные версии для релизов библиотеки выложены в архиве на GitHub, либо общей странице загрузок.
Поддерживаемые функции
Данный набор выгодно отличается от штатного механизма сборки оригинального проекта следующим:
- полностью автоматической сборкой на любой поддерживаемой CMake архитектуре и платформе;
- поддержкой автоматической сборки примеров и запуска юнит-тестов при помощи CTest;
- отсутствием конфликтов между C и C++ версиями за счёт установки их в разные каталоги;
- возможностью выбора варианта построения библиотеки между статической, либо динамической;
- возможностью использования из сторонних проектов при помощи штатных средств CMake;
- установкой всех необходимых заголовочных файлов, а также конфигурации pkg-config и CMake для лёгкого подключения к внешним проектам;
- поддержкой установки либо сразу обоих вариантов библиотеки (C и C++), либо лишь необходимого.
Параметры сборки CMake
Данный проект поддерживает указание следующих параметров конфигурации, которые могут быть включены, либо отключены при помощи командной строки -DOPTION_NAME=ON/OFF:
| Название параметра | Описание параметра | Значение |
|---|---|---|
| QRCODEGEN_BUILD_EXAMPLES | Включить сборку примеров и демонстрационных приложений. | OFF |
| QRCODEGEN_BUILD_TESTS | Включить сборку юнит-тестов. | OFF |
Сборка проекта с CMake
Загрузим основной репозиторий библиотеки, а также данный набор сценариев для CMake при помощи Git, создадим необходимые каталоги, укажем требуемые параметры и запустим процесс сборки:
git clone https://github.com/nayuki/QR-Code-generator.git qrcodegen
git clone https://github.com/EasyCoding/qrcodegen-cmake.git qrcodegen-cmake
ln -s ../qrcodegen-cmake/{cmake,CMakeLists.txt} qrcodegen/
mkdir -p qrcodegen-build
cmake -S qrcodegen -B qrcodegen-build -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS:BOOL=ON -DQRCODEGEN_BUILD_EXAMPLES:BOOL=ON -DQRCODEGEN_BUILD_TESTS:BOOL=ON
cmake --build qrcodegen-build
Установка проекта с CMake
Установим все доступные компоненты:
sudo cmake --install qrcodegen-build
Установим отдельно либо C (qrcodegen), либо C++ (qrcodegencpp) версию:
sudo cmake --install qrcodegen-build --component {qrcodegen|qrcodegencpp}
Запуск тестов с CMake
Запустим юнит-тесты при помощи входящей в комплект поставки CMake утилиты CTest:
ctest --test-dir qrcodegen-build --output-on-failure