О проекте

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