mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
Page:
CMake Build Options
Pages
CMake Build Options
Community Resources
Compile for OSX
Create Visual Studio 2019 Project
Create Visual Studio Project
Creating Discord Activities with raylib
Frequently Asked Questions
Home
Install and configure Touchscreen Drivers (RPi)
Quick Setup for Windows with Visual Studio 2022, GCC, or MinGW
Redirect raylib output to Framebuffer 1
Screen Recording
Use multiple windows
Use raylib with Code Blocks
Use raylib with Eclipse
Use raylib with Sublime Text
Using BMFonts
Using SPI Displays with raylib
Using raylib in VSCode
Using raylib with Cpp
Visual Studio C# Setup
Working for Android (on Linux)
Working for Android (on macOS)
Working for Android
Working for Web (HTML5)
Working on Chrome OS
Working on FreeBSD
Working on GNU Linux
Working on Raspberry Pi
Working on Windows
Working on exaequOS
Working on macOS
Working with CMake
raylib GLFW dependency
raylib architecture
raylib coding conventions
raylib data structures
raylib default shader
raylib dependencies
raylib enumerated types
raylib generic uber shader and custom shaders
raylib input system
raylib integration with other libraries
raylib libc dependency
raylib platforms and graphics
raylib syntax analysis
raylib templates
Clone
18
CMake Build Options
PastMoments edited this page 2025-11-03 12:27:01 -08:00
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 | OFF |
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 |
... | OFF |
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 |
Frequently Asked Questions
Library Design
- 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
Development Platforms
- 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
IDE Configurations
- 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
Misc Help
www.raylib.com | itch.io | GitHub | Discord | YouTube