Skip to content

Conversation

@GrosSlava
Copy link

Фикс сборки движка из сорцов.

Исправления:

  • исправлены настройки cmake по экспорту путей таргетов для инклюдов из install
  • исправлены небольшие ошибки в зависимостях между таргетами
  • исправлена двойная сборка движка при подключении к редактору
  • все инклюды, либы библиотек помещены в соответствующие папки в install (причесал install)
  • отключено скачивание пакета OpenUSD если указан путь до него через pxr_DIR

Дизайн изменений:
Движок раньше подключался к пользовательскому коду (редактору) через сорцы, что приводило к проблемам при сборке.
Предлагается производить поэтапную сборку сначала движка с формированием install, после подключение этого install к редактору и играм пользователя.
Для этого создан файл NauEngineSDK.cmake (бывший for_build/CMakeLists.txt), в котором перечисляются импортируемые библиотеки движка.

Изменения:

  • папки bin и lib в install сделаны плоскими (без подпапок) для упрощения импорта прибилженных библиотек
  • прибилженные библиотеки движка подключаются в редактор и игре не через добавление таргета движка, а через инклюд специального cmake файла, описывающего прибилженные библиотеки в install
  • убрана опция NAU_BUILD_SDK так как в ней нет необходимости
  • модуль 3rdparty_libs/lua был структурирован с выделением папки include для хедеров
  • уменьшена зависимость от vcpkg. Теперь для сборки не обязательно прописывать путь до vcpkg в системные пути. Достаточно указать путь при конфигурации cmake при помощи опции -DCMAKE_TOOLCHAIN_FILE. Для сборки игр (внешнего кода) все же нужно пока прописать в системные пути)

Сборка работоспособна при использовании пресета win_vs2022_x64_dll. Для статики движок собирается, но не может использоваться пока с редактором.

Последовательность сборки движка с редактором:
В путях должен быть путь до QT!

Движок:

  1. cmake --preset win_vs2022_x64_dll
    -Dpxr_DIR=путь_до_OpenUSD
    -DCMAKE_TOOLCHAIN_FILE=путь_до_vcpkg\scripts\buildsystems\vcpkg.cmake
  2. cmake --build build\win_vs2022_x64_dll --config=Release -jN
  3. cmake --install build\win_vs2022_x64_dll --config=Release

после этого формируется папка dist (раньше было output, но это название задается в CMakePresets.json), с автономным движком (прибилженные библиотеки + хедеры + cmake для подключения движка, семплы ну и т.д)

Редактор:

  1. cmake --preset=win_vs2022_x64_dll
    -DNAU_ROOT_DIR=путь_до_движка\dist\win_vs2022_x64_dll
    -Dpxr_DIR=путь_до_OpenUSD -DCMAKE_PREFIX_PATH=путь_до_QT
    -DCMAKE_TOOLCHAIN_FILE=путь_до_vcpkg\scripts\buildsystems\vcpkg.cmake
  2. cmake --build build\win_vs2022_x64_dll --config=Release -jN

После этого собранный движок доступен в build\win_vs2022_x64_dll\Release\NauEditor\NauEditor.exe
Инсталлер NauEngine доступен в build\win_vs2022_x64_dll\Release

Папка build\win_vs2022_x64_dll\Release\NauEditor самодостаточная, и больше не зависит от ядра движка так как содержит копию его install.
По умолчанию при сборке игры через редактор движок ищет SDK в своей папке.

GrosSlava added 2 commits December 3, 2024 22:33
- fix targets export includes
- fix small bugs in targets dependencies
- clean install for simpler use with editor build:
-- make flat lib dir
-- make flat bin dir
-- structure install dir
fix installer: eliminate build core twice
fix libraries importing in user cmake
small fixes for third-party libs exporting

works only with dll preset.
@GrosSlava GrosSlava marked this pull request as ready for review December 5, 2024 22:23
@andrey-sterkhov

This comment was marked as resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants