Files
game-engine/CMakePresets.json
T
f88f9f8ffa [M1-01] Initialize Monorepo, CMake C++20 Build, and .slnx Workspace (#22)
* [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]>
2026-10-28 00:58:04 -04:00

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" }
]
}