Code::Blocks: external SCons and engine launch
Custom Makefile workflow, target commands and executable selection.
This uses Code::Blocks for Reckfell 1.0.0 C/C++ source. SCons remains the build system. The IDE's bundled compiler or automatically created Debug target does not replace SConstruct configuration.
Project and files
Create an Empty project and check the actual .cbp location: it should refer to Source containing SConstruct, not the entire installed engine directory. The project title does not have to match the directory name. Add the required source through Add files recursively; adding files does not establish compiler defines or include paths.
Enable This is a custom Makefile in Project → Properties; replace the default make invocation with SCons in Project → Build options → Make commands. This mechanism is documented in the Code::Blocks manual, section 4.5. Reckfell uses it to invoke external SCons, not to generate a replacement Makefile.
Build command
Prepare the compiler/SDK and dependencies. Give each IDE target explicit platform/target/arch options and run its command from Source. Example Windows x86_64 editor:
scons platform=windows target=editor arch=x86_64 dev_build=yes debug_symbols=yesBuild project/target must invoke this command instead of the old $make -f $makefile $target. Check individual-target and Rebuild commands too: do not leave a default make invocation or a second incomplete configuration there. Build output should show your SCons arguments and successful compile/link for the selected target.
If scons is missing, use an available executable/launcher and the environment of a working terminal build. cmd /c is needed for the corresponding Windows launcher or shell constructs; it is not a mandatory prefix for every command on every OS. Quote paths with spaces according to the launcher and inspect the actual command in the build log.
Clean is not required before an ordinary Run. If configured, invoke SCons --clean with the same build options; do not replace it by deleting bin or Runtime. Do not enable compiledb_gen_only=yes or vsproj_gen_only=yes in a normal build: these generate metadata, not an executable.
Run and debugger
After a successful build, select the real output in Source/bin as Output filename under Project → Properties → Build targets. Disable automatic filename prefix/extension if they alter the selected path. This field tells the IDE what to launch; it does not rename SCons output.
Set launch arguments: --path to the directory containing project.reckfell, plus --editor for the editor. Execution working dir belongs to the launched application and does not fix a wrong build-command working directory. Check both stages separately.
Choose a debugger compatible with the compiler and symbol format. Bundled MinGW does not prove compatibility with an installed MSVC binary. You need matching binary/symbols/source and a line that executes; when attaching, check executable path and process arguments. Game and editor launches may create different PIDs.
Diagnosis
| Symptom | Check |
|---|---|
| make runs instead of SCons | Project, individual-target and Rebuild Make commands |
| SConstruct is missing | Build command runs from Source |
| Source appears but analysis is wrong | Include paths/defines for this configuration; a file tree does not replace them |
| An old file launches | Output filename and fresh compile/link output |
| Project Manager opens | Explicit --path; --editor for the editor |
| Debugger cannot read symbols | Symbol format, compiler/toolchain and binary match |
Use Source/.clang-format for C/C++. The .editorconfig requires UTF-8 and LF; C/C++ use tabs, Python/SConstruct/SCsub use spaces. Do not reformat the whole repository merely to configure an IDE.
Verification limits
SCons options, binary suffix construction and formatting rules were source-reviewed. Separate installed-runtime CLI --path evidence was retained. No .cbp project, GUI, build/rebuild/clean or debugger was executed in Code::Blocks. The command is configuration guidance, not a successful build report. Source, Runtime and SDK unchanged.