Files
rgbds/ARCHITECTURE.md
Rangi42 5a7ffd19b0 Move or remove some redundant information from the README
* Move the folder structure to ARCHITECTURE.md (which can be
  expanded as per #707)

* Move the acknowledgements to CONTRIBUTORS.md

* Remove the history (it's a copy of man/rgbds.7)
2025-08-02 22:09:09 -04:00

2.3 KiB

RGBDS Architecture

Folder Organization

The RGBDS source code file structure is as follows:

.
├── .github/
│   ├── scripts/
│   │   └── ...
│   └── workflows/
│       └── ...
├── contrib/
│   ├── zsh_compl/
│   │   └── ...
│   └── ...
├── include/
│   └── ...
├── man/
│   └── ...
├── src/
│   ├── asm/
│   │   └── ...
│   ├── extern/
│   │   └── ...
│   ├── fix/
│   │   └── ...
│   ├── gfx/
│   │   └── ...
│   ├── link/
│   │   └── ...
│   ├── CMakeLists.txt
│   └── ...
├── test/
│   ├── ...
│   └── run-tests.sh
├── .clang-format
├── CMakeLists.txt
├── compile_flags.txt
├── Dockerfile
└── Makefile
  • .github/ - files and scripts related to the integration of the RGBDS codebase with GitHub.
    • scripts/ - scripts used by workflow files.
    • workflows/ - CI workflow description files.
  • contrib/ - scripts and other resources which may be useful to users and developers of RGBDS.
    • zsh_compl - contains tab completion scripts for use with zsh. Put them somewhere in your fpath, and they should auto-load.
    • bash_compl - contains tab completion scripts for use with bash. Run them with source somewhere in your .bashrc, and they should load every time you open a shell.
  • include/ - header files for the respective source files in src.
  • man/ - manual pages.
  • src/ - source code of RGBDS.
    • Note that the code unique to each RGBDS tool is stored in its respective subdirectory (RGBASM's code is in src/asm/, for example). src/extern/ contains code imported from external sources.
  • test/ - testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS.
  • .clang-format - code style for automated C++ formatting with clang-format.
  • CMakeLists.txt - defines how to build RGBDS with CMake.
  • compile_flags.txt - compiler flags for C++ static analysis with clang-tidy.
  • Dockerfile - defines how to build RGBDS with Docker.
  • Makefile - defines how to build RGBDS with make.