This repository now uses a target-oriented CMake layout with optional backend modules and vcpkg manifest integration.
- Replaced recursive, catch-all module globbing with explicit target definitions.
- Split the portable modern graph from the legacy SKEngine2 path.
- Added platform compile definitions at the project interface layer.
- Added optional backend toggles for D3D11, D3D12, OpenGL, and Vulkan.
- Added install/export rules so Skylark libraries can be consumed as exported CMake targets.
- Added
vcpkg.jsonandCMakePresets.jsonfor reproducible Windows/Linux workflows. - Added an optional smoke test executable (
SkylarkSmoke) to verify the link graph.
skylark-cidefault matrix only covers the portable/stable lanes that are expected to stay green on GitHub-hosted runners:linux-debugandwindows-msvc-debug.- Backend-specific jobs such as
windows-d3d11-debugare kept in the same workflow under theexperimental-backendsjob and run onworkflow_dispatch, so backend bring-up does not block the main repository health signal.
- CMake 3.23 or newer
- A C++20-capable compiler
- Ninja recommended
- vcpkg recommended for dependency-managed builds
Set VCPKG_ROOT before using the vcpkg presets.
export VCPKG_ROOT=/path/to/vcpkg
cmake --preset linux-debug
cmake --build --preset linux-debug$env:VCPKG_ROOT="C:\dev\vcpkg"
cmake --preset windows-msvc
cmake --build --preset windows-msvc-debugBootstrap presets without a vcpkg toolchain:
dev-linux-debugdev-linux-release
vcpkg-backed Linux presets:
linux-debuglinux-releaselinux-vulkan-debuglinux-opengl-debug
vcpkg-backed Windows presets:
windows-msvcwindows-d3d11windows-d3d12windows-openglwindows-vulkan
SK_ENABLE_D3D11SK_ENABLE_D3D12SK_ENABLE_OPENGLSK_ENABLE_VULKANSK_BUILD_LEGACYSK_BUILD_SMOKE_TEST
The default configuration is intentionally conservative: portable modern modules are enabled, legacy SKEngine2 is disabled, and graphics backends are opt-in.