Привет всем.
Если вы интересовались созданием плагинов для SA-MP, то могли заметить, что на оффе есть тема, в которой рассказывается, как можно написать плагин для SA-MP, однако там приводится пример только для Visual Studio под Windows. Информация о компиляции под Linux в той теме практически отсутствует. Я решил пойти немного в другом направлении и разработать легко конфигурируемый шаблон плагина для SA-MP, который можно настроить под свои задачи.
Описание:
Что реализовано на данный момент:
- Возможность указания в одном файле базовых настроек проекта:
- название плагина;
- версия (semver);
- поддержка ProcessTick (по умолчанию отключена, чтобы не тратить лишние ресурсы на вызов неиспользуемой функции);
- список исходных файлов плагина (по умолчанию в нём только main.cpp).
- Автоматическая генерация проектов под Windows (Visual Studio) и Linux (Code::Blocks, CodeLite, GNU Make).
- Проверка соответствия версий инклуда и плагина при загрузке последнего.
- Удобная организация обработки аргументов функции.
- Набор вспомогательных функций (файлы pluginutils.h и pluginutils.cpp):
Использование:
- Установить CMake.
- Установить компилятор и среду разработки (под Windows рекомендуется Visual Studio, под Linux - Code::Blocks или CodeLite)
- Клонировать репозиторий samp-plugin-template или скачать и распаковать архив с исходниками (см. ссылки в конце статьи).
- В файле CMakeLists.txt отредактировать настройки проекта (секция в начале файла, помеченная комментарием "Settings").
- Запустить программу cmake-gui. В поле "Where is the source code" указать папку, в которую вы клонировали репозиторий или распаковали архив, а в "Where to build the binaries" - тот же самый путь, но в конце добавить "/build" (пример "C:/samp-plugin-template" и "C:/samp-plugin-template/build").
- Нажать кнопку "Configure". Откроется окно, в котором следует указать среду разработки, в которой вы будете разрабатывать плагин, и нажать "Finish".
- Когда конфигурирование закончится, нажать "Generate".
- Зайти в папку "build", открыть с помощью выбранной среды разработки файл проекта и скомпилировать плагин. После компиляции инклуд будет автоматически скопирован в одну папку с плагином.
Примечание: если вызвать из скрипта функцию HelloWorld_CheckArgsTest, будет выведено сообщение об ошибке (неправильное число аргументов), т.к. в инклуде для этой функции указано неправильное число аргументов (функции требуется хотя бы 1 аргумент, но в инклуде их нет вообще). Это сделано специально, чтобы проверить работу функции pluginutils::CheckNumberOfArguments.
Лицензирование:
- Сборочный скрипт CMakeLists.txt доступен под условиями лицензии ISC.
- Файл pluginutils.h - под лицензией zlib.
- Остальные файлы (за исключением SA-MP plugin SDK, естественно) выпущены под лицензией Creative Commons Zero (CC0) (отказ от авторских прав). Можете не бояться поставить свой копирайт в plugin.inc.in и main.cpp - это всего лишь "каркас" для плагина, для меня нет смысла резервировать свои авторские права за такими мелочами. Тем не менее, было бы здорово взамен увидеть свой ник в списке благодарностей в документации к вашему плагину.
Репозиторий: https://github.com/Daniel-Cortez/samp-plugin-template
Автор: Daniel_Cortez
Специально для Pro-Pawn.ruКопирование данной статьи на других ресурсах без разрешения автора запрещено!