reckfellENGINE

SCons: цели, параметры и повторяемая сборка

Редактор и шаблоны, отладка, профили, параллелизм и диагностика сборки.

На этой странице

SCons получает параметры из SConstruct, платформенных и модульных конфигураций. Выполняйте команды из Source; выбирайте platform, target и arch явно, чтобы повторная сборка не зависела от автоматического выбора машины.

Базовые команды

Для настроенного Windows x64 toolchain:

Командная строка
python -m SCons platform=windows target=editor arch=x86_64 -j4
python -m SCons platform=windows target=template_debug arch=x86_64 -j4
python -m SCons platform=windows target=template_release arch=x86_64 -j4

Это три отдельные сборки. Число 4 — пример параллелизма, не рекомендация для каждого компьютера. Увеличение -j может ускорить компиляцию или исчерпать память; при нехватке памяти уменьшите число заданий. Отсутствующий параметр по умолчанию выбирает editor, но доступность цели зависит от платформы.

Для списка параметров используйте python -m SCons --help после установки платформенных зависимостей. Этот запуск всё ещё читает конфигурацию проекта; ошибка обнаружения toolchain не означает, что имя параметра обязательно неверно.

Параметры, которые нельзя путать

ПараметрДействие
targeteditor, template_debug или template_release
archАрхитектура целевого бинарника; auto зависит от платформы/хоста
dev_build=yesDEV_ENABLED; при optimize=auto выбирает отсутствие оптимизации и по умолчанию отладочные символы
dev_mode=yesНабор строгих проверок сборки: verbose, warnings=extra, werror, tests, strict_checks, если не переопределены
debug_symbols=yesГенерация символов; не равна включению всех dev-возможностей
optimizeauto, none, custom, debug, speed, speed_trace, size или size_extra
production=yesЗначения по умолчанию для use_static_cpp, символов и lto=auto; детали зависят от платформы
precisionsingle/double для встроенной вещественной точности; требует согласованного ABI
module_mono_enabled=yesНативная часть C# интеграции на поддерживаемой платформе; управляемые артефакты готовятся отдельно

При optimize=auto текущий SConstruct выбирает none для dev_build, speed_trace для editor/template_debug и speed для template_release. Поэтому «редактор всегда неоптимизирован» неверно. Явное optimize может изменить этот выбор.

production=yes не гарантирует LTO на каждом компиляторе: например, текущая Windows-конфигурация MSVC переводит lto=auto в none. Сохраняйте выбранные значения из журнала, а не выводите их только из имени target.

Файлы конфигурации

custom.py — файл параметров Python в корне Source. profile=... добавляет отдельный файл параметров; можно указать путь или имя без .py. Командные аргументы обрабатываются вместе с этими файлами. Храните их в составе конфигурации сборки.

build_profile=... — другой механизм: JSON с disabled_classes и disabled_build_options. Он применяется позже обычного чтения опций и способен изменить значения окружения. Не считайте его синонимом profile и не полагайтесь на простое правило «последний аргумент всегда побеждает» для всех стадий конфигурации.

Для своего модуля используется custom_modules=...; отключение всех модулей по умолчанию через modules_enabled_by_default=no требует явно сохранить зависимости нужных функций. Не переносите огромный список отключений из чужого проекта.

Повторная сборка и IDE

SCons отслеживает зависимости и повторно использует подходящие результаты. Для очистки используйте --clean с той же конфигурацией, а не случайный набор target/arch. SCU объединяет единицы компиляции, меняет расход памяти и характер инкрементальной сборки; сначала получите работающий обычный вариант.

compiledb=yes включает compilation database для инструментов C++. compiledb_gen_only=yes завершает генерацию базы без обычной компиляции; это не готовый бинарник. ninja и cache_path — отдельные параметры ускорения, не подтверждение корректности результата.

Найдите этап отказа

ЭтапЧто проверить
Python не находит SConsИнтерпретатор и его окружение
Платформа/toolchain не обнаруженыSDK, компилятор, среда терминала и platform
Ошибка C/C++Первый содержательный diagnostic, include-пути, версия компилятора и текущая конфигурация
Ошибка линкераАрхитектура и наличие нужных библиотек, совместимость флагов
Бинарник создан, проект не запускаетсяМодули, .NET-комплект, precision и зависимости проекта
Экспорт не работаетНужный шаблон действительно собран и выбран в preset

Параметры и их последовательность сверены по текущему Source. Приведённые команды полной сборки не выполнялись в рамках этой проверки; успешный запрос версии SCons не заменяет компиляцию и проверку экспортированной игры.

Далее: подготовка и результат сборки, уменьшение размера.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.