CLion: SCons, compilation database и debugger
Правильный target, отдельные build/index/run этапы и текущая ошибка генератора.
Это настройка CLion для native C/C++ исходников Reckfell 1.0.0, а не для C# скриптов игры. Система сборки остаётся SCons. Индексация, компиляция и запуск debugger — отдельные этапы; успешное открытие папки не подтверждает ни один из двух последних.
До открытия проекта
Нужны compiler/SDK и рабочая SCons-команда для выбранных platform, target и arch. Используйте общую настройку исходников. Здесь команды генерации приведены по исходникам, но не выполнялись в рабочем дереве движка.
Текущий локальный SCons 4.11.1 не содержит SCons.Entity: два изолированно проверенных recursive-glob helper завершаются ImportError при этом импорте. Ошибка не исправлялась. Она блокирует связанные генераторные пути до работы IDE; не используйте старую database как доказательство успешной новой генерации. Полная SCons-конфигурация/генерация здесь не запускалась.
Compilation database для нужной конфигурации
Выполняйте генерацию из каталога Source, содержащего SConstruct. Для Windows x86_64 editor пример выбора настроек:
scons platform=windows target=editor arch=x86_64 dev_build=yes debug_symbols=yes compiledb=yes compiledb_gen_only=yescompiledb=yes включает compilation_db tool, compiledb_gen_only=yes выбирает отдельную ветку записи compile_commands.json и выхода до compiler build actions. Конфигурация всё равно должна успешно пройти SCons setup; этот флаг не обходит её ошибки и не создаёт готовый executable. Для другой платформы/архитектуры замените параметры своей рабочей команды, не смешивая defines двух targets.
В CLion compilation database workflow откройте сам compile_commands.json как проект. Выберите toolchain для разрешения его команд; после смены compiler/platform/modules обновите database и перезагрузите её. Проверяйте, что нужный .cpp присутствует и имеет правильные include paths/defines.
Не загружайте Android nativeSrcsConfigs/CMakeLists.txt как универсальный способ «починить» native проект: этот файл прямо обозначен как non-functional editor support и содержит Android defines. Он может показать дерево файлов, но не подтверждает правильную Windows конфигурацию или сборку движка.
Custom Build Target
Создайте target в Settings → Build, Execution, Deployment → Custom Build Targets. Build tool должен вызывать SCons с вашими полноценными build arguments из Source, без compiledb_gen_only. Сам compile_commands.json не содержит link/run workflow. Официальное описание: custom targets.
Внешний tool запускается со своим environment: наличие выбранного debugger toolchain не гарантирует, что Build tool получил те же PATH/SDK/compiler variables. Сначала сравните команду и окружение с рабочим терминальным запуском. Не рассчитывайте на shell-подстановки вроде $(nproc) в поле Arguments.
Clean не нужен для обычного Run. Если настраиваете его, ограничьте теми же platform/target/arch/build options; не подменяйте действием удаления всей папки bin/Runtime. Генерация database не равна первой успешной сборке: Executable появится только после неё.
Run/Debug
Создайте Custom Build Application, выберите custom target и фактически созданный executable; поля описаны в run configuration. Для game target передайте --path к папке с project.reckfell, для editor дополнительно --editor. Рабочая папка должна соответствовать задаче, но не заменяет явный --path.
Символы должны соответствовать выбранному бинарнику. Проверьте простой native breakpoint в своём исходнике, правильный PID и реальное выполнение нужной ветки. Project Manager/editor/Play могут быть разными процессами; при Attach сравните executable path и command line. Самый большой PID не является надёжным правилом выбора.
Диагностика
| Симптом | Проверка |
|---|---|
| ImportError SCons.Entity | Сбой генераторного helper/tooling до IDE; см. общий build guide и сохранённую диагностику |
| Include/defines неверные | Свежая database именно для platform/target/arch/modules и matching resolve toolchain |
| Код индексируется, Build не работает | Настроенный custom Build tool, Source working directory и его environment |
| Запускается Project Manager | Явный --path к папке с project.reckfell; для editor добавьте --editor |
| Breakpoint не срабатывает | Выполняемый PID, соответствие binary/symbols/source и оптимизация |
| Нет возможности profiler/Valgrind | Это отдельный toolchain/инструмент; Custom Build Application не гарантирует их наличие |
Границы проверки
SCons flags/ветки и Android CMake role сверены с исходниками; workflow — с текущей документацией CLion. Переиспользованы точные наблюдения ImportError helpers и CLI target-проверка, без повторного запуска. Генерация database, compiler/link, индексация, GUI и breakpoint в CLion не проверены. Исходники движка, Runtime и SDK не менялись.