Сборка модуля

Подробные инструкции по сборке и упаковке языкового модуля C#.

Языковой модуль C# (plugify-module-dotnet) - это основной компонент Plugify, который обеспечивает создание и управление плагинами на C#. Это руководство проведет вас через процесс сборки модуля из исходного кода.

Предварительные требования

Перед сборкой языкового модуля C# убедитесь, что у вас установлено следующее:

  • CMake (версия 3.14 или новее)
  • Компилятор C++ с поддержкой C++23. Релизы собираются:
    • GCC 14 (Linux)
    • MSVC 2022 (Windows)
    • Apple Clang (macOS)
  • Git: ядро Plugify подключено к репозиторию сабмодулем, поэтому клонируйте его с --recursive. Отдельно собирать ядро не нужно.
  • .NET 10 SDK: только если вы меняете управляемую часть модуля (Plugify.dll).

Шаги по сборке языкового модуля C#

Клонируйте репозиторий

Клонируйте репозиторий plugify-module-dotnet на ваш локальный компьютер:

git clone https://github.com/untrustedmodders/plugify-module-dotnet.git --recursive
cd plugify-module-dotnet

Сгенерируйте файлы сборки

Создайте каталог build и сгенерируйте файлы сборки с помощью CMake:

mkdir build
cd build
cmake ..

Соберите модуль

Соберите модуль, используя следующую команду. Имя цели - plugify-module-dotnet.

cmake --build . --target plugify-module-dotnet

Соберите управляемую часть (необязательно)

Управляемая библиотека Plugify.dll лежит в managed/Plugify. Соберите её, если меняли:

dotnet publish -c Release managed/Plugify

Результат появится в managed/Plugify/bin/Release/net10.0/publish/; им заменяется содержимое папки api модуля.

Проверьте сборку

После завершения процесса сборки скомпилированный модуль будет находиться в каталоге build. Проверьте сборку, убедившись в наличии следующих файлов:

  • plugify-module-dotnet.dll (Windows)
  • libplugify-module-dotnet.so (Linux)
  • libplugify-module-dotnet.dylib (macOS)

Интеграция языкового модуля C#

После сборки модуля вы можете интегрировать его в вашу установку Plugify:

  1. Установите релизный пакет модуля, как описано в разделе Установка. В нём есть манифест и файлы рантайма, которые нужны модулю.
  2. Замените библиотеку в его папке bin на собранную из папки build.
  3. Выполните plg load и проверьте, что plg modules показывает модуль.

Устранение неполадок

Распространенные проблемы

  1. Сбои сборки:
    • Убедитесь, что у вас установлена правильная версия CMake, .NET SDK и совместимый компилятор C++.
    • Проверьте, что сабмодули склонированы: git submodule update --init --recursive.
  2. Модуль не загружен:
    • Убедитесь, что файл модуля помещен в правильный каталог (envs).
    • Проверьте логи Plugify на наличие ошибок, связанных с загрузкой модуля.
  3. Отсутствующие символы:
    • Собирайте модуль из релизного тега, чтобы встроенное ядро совпадало с версией Plugify, которую вы запускаете.

Расширенная конфигурация

Для получения более подробных инструкций по сборке языковых модулей (например, настройка опций CMake, включение тестов или сборка документации) обратитесь к руководству Сборка Plugify. Процесс аналогичен, но содержит гораздо больше информации.