Updated raylib dependencies (markdown)

master
Ray 4 年之前
父節點
當前提交
01e57fc4a9
共有 1 個文件被更改,包括 20 次插入14 次删除
  1. +20
    -14
      raylib-dependencies.md

+ 20
- 14
raylib-dependencies.md

@ -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.
- `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).
- `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.
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_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.
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.
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.

Loading…
取消
儲存