Files
mdemory/README.md
jorenchik 39173624d4 README
2025-01-05 12:55:24 +02:00

3.3 KiB

Repozitorija apraksts

Direktorijā src atrodas pirmkods, kas ir sadalīts 3 moduļos transpiler, qtapp un test. Transpilātora modulis veic transpilēšanu, kuru kā API izmanto lietotnes modulis qtapp, kas izmanto qt un QScintilla bibliotēku. Modulis test satur automatizētos testus; izmanto GTest bibliotēku.

Nepieciešamie rīki un bibliotēkas

Linux

  • C++ kompilators (piemēram, g++)
  • Bibliotēka Qt (v5.15.0)
  • Bibliotēka QScintilla (v2.14)
  • Bibliotēka GTest (v1.15)
  • Rīks CMake
  • Rīks Ninja

Windows

  • C++ kompilators (MinGw)
  • Bibliotēka Qt (v5.15.0)
  • Bibliotēka QScintilla (v2.14)
  • Bibliotēka GTest (v1.15)
  • Rīks CMake
  • Rīks Ninja

Uzbūvēšana

Linux un Windows sistēmām ir norādītas noklusētās bibliotēku atrašanās vietas. Lai uzbūvētu ar noklusētiem iestatījumiem.

mkdir Debug/
cd Debug/
cmake -DCMAKE_BUILD_TYPE=Debug -G Ninja ..

Lai nekompilētu testus pievieno -DCOMPILE_TESTS=OFF.

Ir pieejamas 2 cmake konfigurācijas - Debug (atkļūdošana) un Release (piegāde). Ja nepieciešams pielāgot vienu vai vairākus parametrus, skatīt nākamās 2 sadaļas.

Linux

cmake -DCMAKE_BUILD_TYPE=Debug \
      -DQt5_DIR="/usr/lib/cmake/Qt5" \
      -DQSCINTILLA_LIB_PATH="/usr/lib/libqscintilla2_qt5.so" \
      -DQSCINTILLA_INCLUDE_PATH="/usr/include/qt/Qsci" \
      -DGTEST_INCLUDE_DIR="/usr/include/gtest" \
      -DGTEST_LIBRARY="/usr/lib/libgtest.so" \
      -DGTEST_MAIN_LIBRARY="/usr/lib/libgtest_main.so" \
      -G Ninja ..

Windows

cmake -DCMAKE_BUILD_TYPE=Debug \
      -DQt5_DIR="C:/Qt/5.15.0/mingw81_64/lib/cmake/Qt5" \
      -DQSCINTILLA_LIB_PATH="C:/Programs/binaries/qscintilla2_qt5.dll" \
      -DQSCINTILLA_INCLUDE_PATH="C:/Programs/QScintilla_src-2.14.1/src" \
      -DGTEST_INCLUDE_DIR="C:/Programs/binaries/gtest_include" \
      -DGTEST_LIBRARY="C:/Programs/binaries/gtest_lib/libgtest.a" \
      -DGTEST_MAIN_LIBRARY="C:/Programs/binaries/gtest_lib/libgtest_main.a" \
      -G Ninja ..

Piegāde

Nokompilējot projektu pamata izpildes fails ir direktorijā ./src/qtapp/MdemoryApp. Papildus izpildes failam ir jānokomplektē bibliotēkas.

Linux

Lai ieliktu direktorijā nepieciešamās bibliotēkas (to jādara no Linux sistēmas). Ir pieejams skripts, kas sagatavo direktoriju ar visām bibliotēkām.

python linuxdeploy.py Release/src/qtapp/MdemoryApp

Katrā Linux distributīvā būtu jānotestē piegāde saderībai ar citām bibliotēkām, kas nav komplektējamas.

Windows (11)

Lai ieliktu direktorijā nepieciešamās bibliotēkas (to jādara no Windows sistēmas).

cd ./src/qtapp/
windeployqt MdemoryApp.exe

Darbam uz Windows direktorijā papildus jāieliek qscintilla2_qt5.dll un Qt5PrintSupport.dll.

Piegādes kompilēšanā var pielikt -DWIN32_EXECUTABLE=ON, lai slēdzot programmu nerādītos termināla logs.

Testu izpilde

Ja testi tiek kompilēti, tie tiek uzbūvēti "tests" direktorijā. Tos jāpalaiž terminālī. Nefunkcionālos testus ir lietderīgi palaist Release konfigurācijā, jo tās veiktspēja ir ievērojami augstāka un precīzāk atbilst gala lietotāja iegūtai veiktspējai.

./src/test/transpilerFunctional
./src/test/transpilerNonFunctional ../src/test/testFiles/