58 lines
1.6 KiB
Markdown
58 lines
1.6 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
Mosis Designer is a Windows desktop application for previewing RML/RCSS files using the RmlUi library. It provides live reloading when files change in the assets directory.
|
|
|
|
## Build Commands
|
|
|
|
```bash
|
|
# Configure the build (requires vcpkg toolchain for dependencies)
|
|
cmake -B build -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake
|
|
|
|
# Build debug
|
|
cmake --build build --config Debug
|
|
|
|
# Build release
|
|
cmake --build build --config Release
|
|
|
|
# Build with parallel jobs
|
|
cmake --build build --parallel 4
|
|
```
|
|
|
|
## Running the Application
|
|
|
|
```bash
|
|
# Run with an RML file
|
|
./build/Debug/mosis-designer.exe assets/demo.rml
|
|
```
|
|
|
|
The application watches the parent directory of the loaded file for changes and automatically reloads.
|
|
|
|
## Architecture
|
|
|
|
Single-file C++23 application (`main.cpp`) that:
|
|
- Uses RmlUi for rendering HTML/CSS-like markup (RML/RCSS)
|
|
- Uses RmlUi Lua bindings for scripting support in RML documents
|
|
- Uses GLFW + OpenGL 3 backend from RmlUi
|
|
- Windows-specific file watching via `FindFirstChangeNotification`
|
|
- Automatically loads all `.ttf` fonts from the RML file's directory
|
|
|
|
## Dependencies
|
|
|
|
- **RmlUi**: Fetched via CMake FetchContent from GitHub (with Lua bindings enabled)
|
|
- **GLFW3**: Via vcpkg
|
|
- **FreeType**: Via vcpkg
|
|
- **Lua**: Via vcpkg (5.4.x)
|
|
|
|
## Code Style
|
|
|
|
- C++23 standard
|
|
- 4 spaces indentation
|
|
- snake_case for variables, camelCase for functions/classes
|
|
- UPPER_CASE for constants and enums
|
|
- Early returns preferred over nested conditionals
|
|
- Smart pointers over raw pointers
|