@echo off REM ============================================================================ REM build.bat - MinGW 编译脚本 REM ============================================================================ set MINGW=C:\mingw64\bin set GCC=%MINGW%\gcc.exe set GXX=%MINGW%\g++.exe set ENGINE_DIR=Engine set DEMO_DIR=Demo set OUTPUT=MiMoEngine_ASM.exe set CFLAGS=-O2 -Wall -Wextra -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -DMATH_ASM_AVAILABLE=0 -I%ENGINE_DIR% -I%ENGINE_DIR%\include set LDFLAGS=-ld3d11 -ldxgi -ld3dcompiler -lole32 -loleaut32 -luuid -lgdi32 -luser32 -lkernel32 -lwinmm -static echo === MiMoEngine ASM Build === echo Compiler: %GCC% REM 创建输出目录 if not exist build mkdir build REM 编译引擎 C 源文件 echo [1/3] Compiling Engine sources... %GCC% %CFLAGS% -c %ENGINE_DIR%\Core\engine.c -o build\engine.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Core\logger.c -o build\logger.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Core\timer.c -o build\timer.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Window\window.c -o build\window.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\graphics_device.c -o build\graphics_device.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\renderer.c -o build\renderer.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\shader.c -o build\shader.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\mesh.c -o build\mesh.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\texture.c -o build\texture.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\camera.c -o build\camera.o %GCC% %CFLAGS% -c %ENGINE_DIR%\ECS\world.c -o build\world.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Input\input.c -o build\input.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Physics\physics.c -o build\physics.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Audio\audio.c -o build\audio.o %GCC% %CFLAGS% -c %ENGINE_DIR%\UI\ui.c -o build\ui.o %GCC% %CFLAGS% -c %ENGINE_DIR%\Scripting\lua_engine.c -o build\lua_engine.o REM 编译 VisualScript 模块 echo [2/3] Compiling VisualScript... %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_core.c -o build\block_core.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_types.c -o build\block_types.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_workspace.c -o build\block_workspace.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_interaction.c -o build\block_interaction.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_renderer.c -o build\block_renderer.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_palette.c -o build\block_palette.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_executor.c -o build\block_executor.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_serializer.c -o build\block_serializer.o %GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_editor.c -o build\block_editor.o REM 编译 Demo echo [3/3] Compiling Demo... %GCC% %CFLAGS% -c %DEMO_DIR%\main.c -o build\main.o REM 链接 echo Linking... %GXX% build\*.o -o build\%OUTPUT% %LDFLAGS% if %ERRORLEVEL% EQU 0 ( echo. echo === Build succeeded! === echo Output: build\%OUTPUT% echo. echo Run with: build\%OUTPUT% ) else ( echo. echo === Build FAILED! === ) pause