Files
mdemory/README.md
jorenchik 6ee66399cb README
2024-12-21 12:23:29 +02:00

95 lines
2.7 KiB
Markdown

# 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`](https://winlibs.com/))
- 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.
```bash
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
```bash
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
```bash
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 ..
```
Lai ieliktu direktorijā nepieciešamās bibliotēkas.
```
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/
```