-
- Notifications
You must be signed in to change notification settings - Fork 2.7k
CMake Build Options
jestarray edited this page Jun 6, 2025 · 17 revisions
raylib is configurable and can be built in a variety of ways. Following is a listing of available CMake options and values, extracted from src/CMakeOptions.txt
and src/config.h
You must set CUSTOMIZE_BUILD
to ON in order for many of these options to apply.
TIP: You can use the curses UI provided by
ccmake(1)
for interactively configuring raylib.
Option | Description | Possible Values (first is default) |
---|---|---|
USE_EXTERNAL_GLFW | Link raylib against system GLFW instead of embedded one | OFF ON IF_POSSIBLE |
PLATFORM | Platform to build for. | Desktop Web Android Raspberry Pi SDL |
OPENGL_VERSION | Force a specific OpenGL Version? | OFF 4.3 3.3 2.1 1.1 ES 2.0 ES 3.0 |
BUILD_EXAMPLES | Build examples | OFF ON |
Binary Option | Description | Default Value |
---|---|---|
GLFW_BUILD_WAYLAND | Build the bundled GLFW with Wayland support | OFF |
GLFW_BUILD_X11 | Build the bundled GLFW with X11 support | OFF |
WITH_PIC | Compile static library as position-independent code | OFF |
BUILD_SHARED_LIBS | Build raylib as a dynamic or static library | OFF |
INCLUDE_EVERYTHING | Include all optional off-by-default formats in build | OFF |
USE_AUDIO | Build raylib with audio module | ON |
SUPPORT_MODULE_RSHAPES | ... | ON |
SUPPORT_MODULE_RTEXTURES | ... | ON |
SUPPORT_MODULE_RTEXT | WARNING: It requires SUPPORT_MODULE_RTEXTURES to load sprite font textures | ON |
SUPPORT_MODULE_RMODELS | ... | ON |
SUPPORT_MODULE_RAUDIO | ... | ON |
SUPPORT_BUSY_WAIT_LOOP | Use busy wait loop for timing sync instead of a high-resolution timer | ON |
SUPPORT_CAMERA_SYSTEM | Provide camera module (camera.h) with multiple predefined cameras: free, 1st/3rd person, orbital | ON |
SUPPORT_GESTURES_SYSTEM | Gestures module is included (gestures.h) to support gestures detection: tap, hold, swipe, drag | ON |
SUPPORT_RPRAND_GENERATOR | pseudo-random numbers generator (rprand.h), based on Xoshiro128** and SplitMix64 | ON |
SUPPORT_MOUSE_GESTURES | Mouse gestures are directly mapped like touches and processed by gestures system | ON |
SUPPORT_SSH_KEYBOARD_RPI | ... | ON |
SUPPORT_WINMM_HIGHRES_TIMER | ... | ON |
SUPPORT_PARTIALBUSY_WAIT_LOOP | ... | ON |
SUPPORT_GIF_RECORDING | Allow automatic gif recording of current screen pressing CTRL+F12, defined in KeyCallback() | ON |
SUPPORT_COMPRESSION_API | ... | ON |
SUPPORT_AUTOMATION_EVENTS | ... | ON |
SUPPORT_CUSTOM_FRAME_CONTROL | ... | ON |
SUPPORT_CLIPBOARD_IMAGE | ... | ON |
SUPPORT_QUADS_DRAW_MODE | Use QUADS instead of TRIANGLES for drawing when possible. Some lines-based shapes could still use lines | ON |
SUPPORT_FILEFORMAT_PNG | Support loading PNG as textures | ON |
SUPPORT_FILEFORMAT_BMP | Support loading BMP as textures | OFF |
SUPPORT_FILEFORMAT_TGA | Support loading TGA as textures | OFF |
SUPPORT_FILEFORMAT_JPG | Support loading JPG as textures | OFF |
SUPPORT_FILEFORMAT_GIF | Support loading GIF as textures | ON |
SUPPORT_FILEFORMAT_QOI | Support loading QOI as textures | ON |
SUPPORT_FILEFORMAT_PSD | Support loading PSD as textures | OFF |
SUPPORT_FILEFORMAT_DDS | Support loading DDS as textures | ON |
SUPPORT_FILEFORMAT_HDR | Support loading HDR as textures | OFF |
SUPPORT_FILEFORMAT_PIC | Support loading PIC as textures | OFF |
SUPPORT_FILEFORMAT_KTX | Support loading KTX as textures | OFF |
SUPPORT_FILEFORMAT_ASTC | Support loading ASTC as textures | OFF |
SUPPORT_FILEFORMAT_PKM | Support loading PKM as textures | OFF |
SUPPORT_FILEFORMAT_PVR | Support loading PVR as textures | OFF |
SUPPORT_IMAGE_EXPORT | ... | ON |
SUPPORT_IMAGE_GENERATION | Support procedural image generation functionality (gradient, spot, perlin-noise, cellular) | ON |
SUPPORT_IMAGE_MANIPULATION | Support multiple image editing functions to scale, adjust colors, flip, draw on images, crop... If not defined only three image editing functions supported: ImageFormat(), ImageAlphaMask(), ImageToPOT() | ON |
SUPPORT_DEFAULT_FONT | Default font is loaded on window initialization to be available for the user to render simple text. If enabled, uses external module functions to load default raylib font (module: text) | ON |
SUPPORT_FILEFORMAT_TTF | Support loading fonts in TTF format | ON |
SUPPORT_FILEFORMAT_FNT | Support loading fonts in FNT format | ON |
SUPPORT_FILEFORMAT_BDF | Support loading fonts in BDF format | OFF |
SUPPORT_TEXT_MANIPULATION | ... | ON |
SUPPORT_FONT_ATLAS_WHITE_REC | Draw rectangle shapes using font texture white character instead of default white texture. Allows drawing rectangles and text with a single draw call, very useful for GUI systems! | ON |
SUPPORT_FILEFORMAT_OBJ | Support loading OBJ file format | ON |
SUPPORT_FILEFORMAT_MTL | Support loading MTL file format | ON |
SUPPORT_FILEFORMAT_IQM | Support loading IQM file format | ON |
SUPPORT_FILEFORMAT_GLTF | Support loading GLTF file format | ON |
SUPPORT_FILEFORMAT_VOX | Support loading VOX file format | ON |
SUPPORT_FILEFORMAT_M3D | Support loading M3D file format | ON |
SUPPORT_MESH_GENERATION | Support procedural mesh generation functions, uses external par_shapes.h library. NOTE: Some generated meshes DO NOT include generated texture coordinates | ON |
SUPPORT_FILEFORMAT_WAV | Support loading WAV for sound | ON |
SUPPORT_FILEFORMAT_OGG | Support loading OGG for sound | ON |
SUPPORT_FILEFORMAT_MP3 | Support loading MP3 for sound | ON |
SUPPORT_FILEFORMAT_QOA | Support loading QOA for sound | ON |
SUPPORT_FILEFORMAT_FLAC | Support loading FLAC for sound | OFF |
SUPPORT_FILEFORMAT_XM | Support loading XM for sound | ON |
SUPPORT_FILEFORMAT_MOD | Support loading MOD for sound | ON |
SUPPORT_STANDARD_FILEIO | Standard file io library (stdio.h) included. Warning: If off, raylib can't read files | ON |
SUPPORT_SAVE_PNG | Support saving image data in PNG file format | ON |
SUPPORT_SAVE_BMP | Support saving image data in BMP file format | OFF |
SUPPORT_TRACELOG | Show TraceLog() output messages. NOTE: By default LOG_DEBUG traces not shown | ON |
SUPPORT_SCREEN_CAPTURE | Allow automatic screen capture of current screen pressing F12, defined in KeyCallback() | ON |
www.raylib.com | itch.io | GitHub | Discord | YouTube
- Architecture
- Syntax analysis
- Data structures
- Enumerated types
- External dependencies
- GLFW dependency
- libc dependency
- Platforms and graphics
- Input system
- Default shader
- Custom shaders
- Coding conventions
- Integration with other libs
- Working on Windows
- Working on macOS
- Working on GNU Linux
- Working on Chrome OS
- Working on FreeBSD
- Working on Raspberry Pi
- Working for Android
- Working for Web (HTML5)
- Working on exaequOS Web Computer
- Creating Discord Activities
- Working anywhere with CMake
- CMake Build Options
- raylib templates: Get started easily
- How To: Quick C/C++ Setup in Visual Studio 2022, GCC or MinGW
- How To: C# Visual Studio Setup
- How To: VSCode
- How To: Eclipse
- How To: Sublime Text
- How To: Code::Blocks