mirror of
https://github.com/raysan5/raylib.git
synced 2025-12-25 10:22:33 -05:00
Updated raylib dependencies (markdown)
@ -1,6 +1,4 @@
|
||||
While raylib uses libraries that were developed by other people (for specific tasks, like supporting a particular file format), this is all internal. raylib has no *external* dependencies. All of the required libraries are [bundled with the raylib sources](https://github.com/raysan5/raylib/tree/master/src/external).
|
||||
|
||||
The following table lists the raylib dependencies. Most are [single-header, public-domain libraries](https://github.com/nothings/stb).
|
||||
The following table lists the raylib dependencies. Most of them are single-file header-only public-domain libraries. All those libraries are included with raylib in [`src/external`](https://github.com/raysan5/raylib/tree/master/src/external) directory and they are compiled with raylib.
|
||||
|
||||
**NOTE**: *Last updated on 14th April 2021 for the raylib 3.7 release.*
|
||||
|
||||
@ -28,21 +26,29 @@ Library | Version | raylib module | Notes
|
||||
[tinyobj_loader_c](https://github.com/raysan5/raylib/blob/master/src/external/tinyobj_loader_c.h) | ? (Ray) | [models](https://github.com/raysan5/raylib/blob/master/src/models.c) | OBJ/MTL data loading (*)
|
||||
[cgltf](https://github.com/raysan5/raylib/blob/master/src/external/cgltf.h) | 1.10 | [models](https://github.com/raysan5/raylib/blob/master/src/models.c) | glTF models data loading
|
||||
|
||||
Note that some of the dependencies listed above are specific to one of the platforms that raylib supports.
|
||||
Note that some of the dependencies listed above are specific to only one of the platforms that raylib supports.
|
||||
|
||||
As mentioned above, some of the listed libraries are included with raylib as single-file, header-only libraries, and only depend on the C standard library for the target platform (msvcrt, libc, bionic, ...). They are compiled together with raylib (no need to manually link libraries).
|
||||
- `PLATFORM_DESKTOP`: raylib uses on [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module the outstanding [GLFW3](http://www.glfw.org/) library, embedded in the form of [rglfw](https://github.com/raysan5/raylib/blob/master/src/rglfw.c).
|
||||
|
||||
Though raylib has no external dependencies, there are some platform-specific system libraries that do need to be linked when compiling [the collection of examples](https://github.com/raysan5/raylib/tree/master/examples). The following table lists the required libraries.
|
||||
- `PLATFORM_ANDROID`: raylib uses on [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module the `native_app_glue` library (provided by Android NDK). Also, native Android libraries are used to manage window/context, inputs and activity life cycle.
|
||||
|
||||
- `PLATFORM_RPI (RPI 0,1,2,3 - native)`: raylib uses on [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module the native `VideoCore` library and `EGL` for window/context management. Inputs are processed using directly `evdev` Linux libraries.
|
||||
|
||||
- `PLATFORM_DRM (RPI 4 - native)`: raylib uses on [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module the native `DRM subsystem` and `GBM API` libraries for window/context management. Inputs are processed using `evdev` Linux libraries.
|
||||
|
||||
- `PLATFORM_WEB (HTML5)`: raylib uses on [core](https://github.com/raysan5/raylib/blob/master/src/core.c) module the `emscripten SDK` provided libraries for several input events management, specially noticeable the touch events support.
|
||||
|
||||
There are also some platform-specific system libraries that do need to be linked when compiling [raylib examples](https://github.com/raysan5/raylib/tree/master/examples). The following table lists the required system libraries.
|
||||
|
||||
PLATFORM | platform dependencies | Notes
|
||||
--- | :---: | ---
|
||||
DESKTOP:Windows | `OpenGL`, `winmm`, `gdi32`, `user32`, `kernel32` | Required for window creation
|
||||
DESKTOP:Linux | `OpenGL`, `X11` | Also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading) and `X11` window system specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
|
||||
DESKTOP:FreeBSD | `OpenGL`, `X11` | Also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading) and `X11` window system specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
|
||||
DESKTOP:macOS | `OpenGL`, `Cocoa` | Required for window creation
|
||||
ANDROID | `EGL`, `OpenGLES2.0`, `OpenSLES` | Code must be compiled using `Android NDK` libraries. Requires linkage with `native_app_glue`, `log`, `android`, `atomic`, `libc`, `libm`(math) and `dl`(dynamic loading)
|
||||
RASPBERRY_PI | `EGL`, `OpenGLES2.0`, `bcm_host` | Graphics run in native mode using `bcm_host` (no `XWindows` required) and inputs are also natively read (no `XWindows` input events), also requires linkage with `libm`(math), `pthreads`(POSIX threads) and `dl`(dynamic loading).
|
||||
RASPBERRY_PI:DRM | `EGL`, `OpenGLES2.0`, `DRM`, `GBM` | Graphics run in native mode using `DRM` (no `XWindows` required) and inputs are also natively read (no `XWindows` input events), also requires linkage with `libm`(math), `pthreads`(POSIX threads) and `dl`(dynamic loading).
|
||||
WEB (HTML5) | `WebGL` | Code must be compiled using `emscripten SDK`, dependencies linkage is automatically detected.
|
||||
`PLATFORM_DESKTOP:Windows` | `OpenGL`, `WinMM`, `GDI32`, `user32`, `kernel32` | Required for window creation. Note that `WinMM` is only used to get a hi-res timer and it can be avoided commenting [`SUPPORT_WINMM_HIGHRES_TIMER`](https://github.com/raysan5/raylib/blob/master/src/config.h#L45) config flag.
|
||||
`PLATFORM_DESKTOP:Linux` | `OpenGL`, `X11` | Also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading) and `X11` window system specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
|
||||
`PLATFORM_DESKTOP:FreeBSD` | `OpenGL`, `X11` | Also requires linkage with `libm`(math), `pthreads`(POSIX threads), `dl`(dynamic loading) and `X11` window system specific libs: `X11`, `Xrandr`, `Xinerama`, `Xi`, `Xxf86vm` and `Xcursor`
|
||||
`PLATFORM_DESKTOP:macOS` | `OpenGL`, `Cocoa` | Required for window creation
|
||||
`PLATFORM_ANDROID` | `EGL`, `OpenGLES2.0`, `OpenSLES` | Code must be compiled using `Android NDK` libraries. Requires linkage with `native_app_glue`, `log`, `android`, `atomic`, `libc`, `libm`(math) and `dl`(dynamic loading)
|
||||
`PLATFORM_RPI` | `EGL`, `OpenGLES2.0`, `bcm_host` | Graphics run in native mode using `bcm_host` (no `XWindows` required) and inputs are also natively read (no `XWindows` input events), also requires linkage with `libm`(math), `pthreads`(POSIX threads) and `dl`(dynamic loading).
|
||||
`PLATFORM_DRM` | `EGL`, `OpenGLES2.0`, `DRM`, `GBM` | Graphics run in native mode using `DRM` (no `XWindows` required) and inputs are also natively read (no `XWindows` input events), also requires linkage with `libm`(math), `pthreads`(POSIX threads) and `dl`(dynamic loading).
|
||||
`PLATFORM_WEB (HTML5)` | `WebGL` | Code must be compiled using `emscripten SDK`, dependencies linkage is automatically detected.
|
||||
|
||||
raylib is [highly modular by design](https://github.com/raysan5/raylib/wiki/raylib-architecture). Many modules can be omitted when they are not being used, and consequently, the libraries used by those modules will also be redundant.
|
||||
Reference in New Issue
Block a user