# Build Instructions Debug build: cmake -S . -B build cmake --build build Size-optimized build: cmake -S . -B build -DDEMO_SIZE_OPT=ON cmake --build build ## Windows Cross-Compilation (from macOS) Requires `mingw-w64` and `wine-stable` (for testing). 1. Fetch Windows binaries: ```bash ./scripts/fetch_win_deps.sh ``` 2. Build for Windows: ```bash ./scripts/build_win.sh ``` This will produce `build_win/demo64k_packed.exe`. 3. Run with Wine: ```bash ./scripts/run_win.sh ``` # Building the Project with Xcode This document provides instructions for building the 64k Demo project using Xcode on macOS. ## Prerequisites - **Xcode:** Ensure you have Xcode installed. You can download it from the Mac App Store. - **CMake:** This project uses CMake as its build system. Ensure CMake is installed on your system. ## Build Steps 1. **Open Terminal:** Navigate to the root directory of the project (`/Users/skal/demo`). 2. **Create Build Directory:** It is recommended to build out-of-source. Create a build directory: ```bash mkdir build cd build ``` 3. **Configure with CMake for Xcode:** Generate the Xcode project files using CMake. For Xcode, you typically specify the generator as `Xcode`. ```bash cmake .. -G "Xcode" ``` This command will configure the project and create an `.xcodeproj` file within the `build` directory. 4. **Open Xcode Project:** Open the generated `.xcodeproj` file in Xcode: ```bash open YourProjectName.xcodeproj ``` (Replace `YourProjectName.xcodeproj` with the actual name of the generated project file, usually `demo.xcodeproj` or similar). 5. **Build and Run in Xcode:** * Select your desired target (e.g., `demo64k`, `test_3d_render`). * Choose a build scheme (e.g., `Debug` or `Release`) * Click the "Run" button (or press `Cmd+R`) to build and launch the application. ## GPU Performance Capture (Future Task) To enable future GPU performance analysis, a conditional compilation macro `ENABLE_GPU_PERF_CAPTURE` can be defined. This can be controlled via CMake build types or specific flags when configuring the project: ```bash # Example of defining the macro via CMake (add to CMakeLists.txt) # if (MY_GPU_PERF_BUILD) # target_compile_definitions(demo64k PRIVATE ENABLE_GPU_PERF_CAPTURE=1) # endif ``` This macro can then be used within the code (e.g., in `gpu.h` or `platform.h`) to conditionally compile performance monitoring or capture code. ## Shader Performance Analysis Task For detailed shader performance analysis on macOS, **Xcode's Metal debugger** is the recommended tool. A task has been added to `TODO.md` to integrate this into our workflow for future optimization efforts.