mirror of
https://github.com/Heretek-AI/game-engine.git
synced 2026-11-07 10:55:58 -10:00
* [M1-01] Initialize monorepo: CMake C++20 build, .slnx workspace, vendored deps, CI - Root CMakeLists.txt (C++20 strict, PIC) + cmake/EngineHotFlags (-Wall/-Werror, -mavx2 x86-64 only, -fno-exceptions/-fno-rtti hot path) - CMakePresets.json: linux/macos/windows debug+release, ci-* (WERROR) - native/: engine_core shared lib (version API), core/ecs hot OBJECT libs, renderer/physics/audio/bridge stubs with owners - native/tests: engine_core_smoke CTest (version handshake) - deps/: flecs v4.1.6 + enkiTS pinned, README with re-vendor recipe - Engine.slnx + Directory.Build.props (net10.0, AllowUnsafeBlocks, TieredPGO, zero-warn) + Bindings/Runtime/Tests/abi_codegen stubs - .github/workflows/ci.yml: native (CMake+CTest) + managed (dotnet build+run) on ubuntu/macos/windows - Verified: configure+build+ctest green on linux-debug (Clang), AVX2/no-exceptions flags confirmed in compile_commands.json * fix(ci): AbiCodegen assembly name (CA1707), Windows Ninja+MSVC presets * fix(ci): fail-fast windows test (5min step timeout, 60s test timeout, verbose) * fix(ci): isolate windows hang — bootstrap control test + unbuffered smoke output * fix(ci): copy runtime DLLs next to windows test binaries * fix(ci): only copy DLLs for linked test target --------- Co-authored-by: hermes-agent <hermes-agent@local> Co-authored-by: hermes <[email protected]>
125 lines
3.7 KiB
JSON
125 lines
3.7 KiB
JSON
{
|
|
"version": 3,
|
|
"configurePresets": [
|
|
{
|
|
"name": "base",
|
|
"hidden": true,
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
"installDir": "${sourceDir}/build/${presetName}/install",
|
|
"cacheVariables": {
|
|
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-debug",
|
|
"displayName": "Linux Debug (Clang)",
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" },
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"CMAKE_C_COMPILER": "clang",
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "linux-release",
|
|
"displayName": "Linux Release (Clang)",
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" },
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"CMAKE_C_COMPILER": "clang",
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "macos-debug",
|
|
"displayName": "macOS Debug",
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" },
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "macos-release",
|
|
"displayName": "macOS Release",
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" },
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "windows-debug",
|
|
"displayName": "Windows Debug (MSVC + Ninja)",
|
|
"inherits": "base",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
},
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" }
|
|
},
|
|
{
|
|
"name": "windows-release",
|
|
"displayName": "Windows Release (MSVC + Ninja)",
|
|
"inherits": "base",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Release",
|
|
"ENGINE_BUILD_TESTS": "ON"
|
|
},
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" }
|
|
},
|
|
{
|
|
"name": "ci-linux",
|
|
"displayName": "CI Linux",
|
|
"inherits": "linux-release",
|
|
"cacheVariables": {
|
|
"ENGINE_WERROR": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "ci-macos",
|
|
"displayName": "CI macOS",
|
|
"inherits": "macos-release",
|
|
"cacheVariables": {
|
|
"ENGINE_WERROR": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "ci-windows",
|
|
"displayName": "CI Windows",
|
|
"inherits": "windows-release",
|
|
"cacheVariables": {
|
|
"ENGINE_WERROR": "ON"
|
|
}
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{ "name": "linux-debug", "configurePreset": "linux-debug" },
|
|
{ "name": "linux-release", "configurePreset": "linux-release" },
|
|
{ "name": "macos-debug", "configurePreset": "macos-debug" },
|
|
{ "name": "macos-release", "configurePreset": "macos-release" },
|
|
{ "name": "windows-debug", "configurePreset": "windows-debug" },
|
|
{ "name": "windows-release","configurePreset": "windows-release" },
|
|
{ "name": "ci-linux", "configurePreset": "ci-linux" },
|
|
{ "name": "ci-macos", "configurePreset": "ci-macos" },
|
|
{ "name": "ci-windows", "configurePreset": "ci-windows" }
|
|
],
|
|
"testPresets": [
|
|
{
|
|
"name": "default",
|
|
"configurePreset": "linux-debug",
|
|
"output": { "outputOnFailure": true }
|
|
},
|
|
{ "name": "ci-linux", "configurePreset": "ci-linux" },
|
|
{ "name": "ci-macos", "configurePreset": "ci-macos" },
|
|
{ "name": "ci-windows", "configurePreset": "ci-windows" }
|
|
]
|
|
}
|