Tools, SQL y Build
Tools, migraciones SQL, pruebas y build
CMake / build (CMakeLists.txt)
- Proyecto C++20 Firelands con FetchContent: googletest, spdlog, MariaDB C/C++, nlohmann_json, yaml-cpp, Lua, StormLib, FTXUI
- Bibliotecas:
FirelandsShared→FirelandsDomain→FirelandsApplication→FirelandsInfrastructure - Executables:
auth,world,FirelandsDevTools - Opcional:
merge-migrationsejecutatools/merge_migrations.py→ refrescasql/bundled/ - Includes:
${PROJECT_SOURCE_DIR}/src— usa estilo#include <application/...>
Comandos de build
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug
ninja -C build # Build completo + pruebas
ninja -C build auth world # Solo servidores
ninja -C build FirelandsUnitTests # Solo pruebas
ctest --test-dir build # Ejecutar pruebas
Precompiled headers
Headers pesados precompilados para builds más rápidos. spdlog debe incluirse vía <shared/Logger.h>. LuaGameScriptHost.cpp omite PCH.
SQL (sql/)
| Directorio | Propósito |
|---|---|
sql/init/ | Esquema base por base de datos |
sql/migrations/ | Cambios incrementales (orden lexicográfico) |
sql/bundled/ | Bundles de despliegue fusionados para Docker |
DatabaseMigrator se ejecuta al arrancar auth/world; rastrea archivos aplicados en firelands_auth.schema_migrations.
python3 tools/merge_migrations.py
# o
cmake --build build --target merge-migrations
Tools
| Ruta | Propósito |
|---|---|
src/tools/DevTools.cpp | CLI DevTools |
tools/extractors/ | Extractores — MPQ/DBC |
tools/vmap/ | Pipeline VMap |
tools/sql/import_ref_*.py | SQL seed world → migraciones (gossip, npc_text, quests, fases) |
Pruebas (tests/)
Targets GoogleTest reflejan capas bajo tests/unit/ y tests/integration/. ~90 archivos de prueba. Ver Pruebas.
Las pruebas de repositorio MySQL se benefician de MySQL con Docker (docker-compose up -d db).