Сборка модуля
Просто ставишь модуль на сервер? Бинарники уже собраны — бери в релизах, эта страница не нужна. Она — для правок в C++ или сборки текущегоmain.
Зависимости подключены сабмодулями:
cmake с ошибкой.
Windows
Нужны CMake и MSVC с x86-тулчейном. LuaJIT собирается отдельно и один раз, в консоли x86 Native Tools Command Prompt:build/Release/lua_mm.dll. LuaJIT слинкован статически, отдельной
библиотеки рядом нет.
Linux
Нужен 32-битный тулчейн:gcc-multilib g++-multilib на Debian и Ubuntu,
glibc-devel.i686 libstdc++-devel.i686 на Fedora. LuaJIT собирается статически и
с PIC, иначе не слинкуется в .so:
lua_mm_i386.so: metamod ждёт для 32-битного модуля именно такое имя.
Копирование на тестовый сервер
CSLUA_SERVER_DIR кладёт модуль, core/ и lib/ в <gamedir>/addons/lua/
на этапе сборки:
data/ и plugins/ не трогаются: там лежат права и код плагинов.
Самого тестового сервера в репозитории нет — это игровой контент Valve. Что
нужно поставить рядом — в Установке.
Тесты
core/ и lib/ — обычный Lua, а пространства имён движка
подменяются стабами из tests/support/stubs.lua. Проверяется то, что ломается
молча: разрешение прав, роутер команд, разбор цвета, подсчёт длины строки и
запись данных на диск. Прогон занимает секунду и стоит первым в CI.
C++-поверхность так не проверить: регистрацию в пространствах имён, цепочки
хуков, объект события, таймеры, базу и жизнь сущностей видно только на живом
сервере. Для этого есть tests/selftest/ — обычный плагин:
lua_reload он прогоняет 104 проверки и печатает итог, а дальше lua_test
в консоли повторяет прогон без перезагрузки.
Зависимости
Модуль распространяется под
GPLv3 — как metamod-r
и ReGameDLL, с которыми он собирается.