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: FirelandsSharedFirelandsDomainFirelandsApplicationFirelandsInfrastructure
  • Executables: auth, world, FirelandsDevTools
  • Opcional: merge-migrations ejecuta tools/merge_migrations.py → refresca sql/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/)

DirectorioPropó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

RutaPropósito
src/tools/DevTools.cppCLI DevTools
tools/extractors/Extractores — MPQ/DBC
tools/vmap/Pipeline VMap
tools/sql/import_ref_*.pySQL 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).

Relacionado