# Platform -- macOS `DUSK_TARGET_SYSTEM`: `macos` Source layer: `src/duskmacos/` (planned, does not exist yet) Status: **Planned -- not yet implemented** --- ## Overview macOS desktop is a planned target. No source layer, CMake target file, or toolchain exists yet. The intended architecture mirrors Linux: SDL2 for windowing/input, OpenGL (or Metal via MoltenVK/SDL2) for rendering. --- ## Expected macros (when implemented) | Macro | Expected | |-------|---------| | `DUSK_MACOS` | yes | | `DUSK_SDL2` | yes | | `DUSK_OPENGL` | yes | | `DUSK_DISPLAY_SIZE_DYNAMIC` | yes | | `DUSK_INPUT_KEYBOARD` | yes | | `DUSK_INPUT_POINTER` | yes | | `DUSK_INPUT_GAMEPAD` | yes | | `DUSK_PLATFORM_ENDIAN_LITTLE` | yes | | `DUSK_TIME_DYNAMIC` | yes | | `DUSK_THREAD_PTHREAD` | yes | --- ## Notes - Will be little-endian (Apple Silicon and Intel x86-64). - Apple deprecated OpenGL on macOS in 10.14 (Mojave). The implementation will need to either target the deprecated OpenGL path or use MoltenVK (Vulkan-over-Metal) with an SDL2 OpenGL layer. This decision is pending. - Save files will likely live in `~/Library/Application Support/`. - Expected to share `src/dusksdl2/` and `src/duskgl/` with Linux. - Toolchain: native Clang via Xcode Command Line Tools, or a cross-compile from Linux with osxcross. Update this document when the macOS target is implemented.