Пређи на главни садржај
  1. Водич за програмере/

Изградња из изворног кода

Предуслови #

ЗависностВерзијаНапомена
CMake3.24+Систем за изградњу
C++ компајлерGCC 13+ или Clang 17+За LibreMiddleware потребна је подршка за C++23; LibreCelik и даље циља C++20 (прелазак на C++23 је на 4.x роадмапи)
Qt 6.6+Widgets, PrintSupport, LinguistToolsСамо за LibreCelik
PC/SClibpcsclite-dev (Linux)Уграђено на macOS-у
OpenSSL 3Укључено у LibreMiddleware thirdparty/
UUIDuuid-dev (Linux)Генерисање UUID-а

Изградња LibreMiddleware-а #

LibreMiddleware је самостална C++23 библиотека без зависности од Qt-а.

git clone https://github.com/LibreSCRS/LibreMiddleware.git
cd LibreMiddleware
cmake -B build
cmake --build build

Покретање тестова:

cd build && ctest --output-on-failure

Изградња LibreCelik-а #

LibreCelik је Qt6 GUI апликација. Аутоматски преузима LibreMiddleware преко CMake FetchContent.

git clone https://github.com/LibreSCRS/LibreCelik.git
cd LibreCelik
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Локални развој #

Када радите на оба пројекта истовремено, усмерите LibreCelik на локалну копију LibreMiddleware-а уместо преузимања са GitHub-а:

cmake -B build -DFETCHCONTENT_SOURCE_DIR_LIBREMIDDLEWARE=/path/to/LibreMiddleware
cmake --build build

На овај начин се измене у LibreMiddleware-у одмах преузимају без потребе за commit-овањем или push-овањем.


Покретање тестова #

Оба пројекта користе Google Test (аутоматски преузет преко CMake-а). Покретање свих тестова:

cd build && ctest --output-on-failure

Покретање појединачног теста:

cd build && ctest -R <test_name> --output-on-failure

Потпуно искључивање тестова:

cmake -B build -DBUILD_TESTING=OFF

Проблем са LibreCelik покретачем тестова #

ctest може пријавити “No tests found” због проблема са временским усклађивањем gtest_discover_tests. Ако се то деси, покрените тест бинарне датотеке директно:

cd build
./test/LibreCelikTests
./test/CardWidgetPluginRegistryTests
./test/AsyncCardReaderTests