|
@ -1,16 +1,27 @@ |
|
|
Besides the `games/` and `examples/` that are built along raylib by default, there's also a sample CMake project at `projects/CMake`: |
|
|
|
|
|
|
|
|
## Requiring raylib to be installed |
|
|
|
|
|
If you know that anyone who builds your project, has raylib already installed, a simple `CMakeLists.txt` could look like this: |
|
|
|
|
|
```cmake |
|
|
|
|
|
cmake_minimum_required(VERSION 3.15) |
|
|
|
|
|
project(my_project) |
|
|
|
|
|
|
|
|
|
|
|
find_package(raylib REQUIRED) # Uses the latest installed version |
|
|
|
|
|
|
|
|
|
|
|
set(CMAKE_C_STANDARD 11) |
|
|
|
|
|
|
|
|
|
|
|
add_executable(my_project main.c) |
|
|
|
|
|
|
|
|
|
|
|
target_link_libraries(my_project main raylib) |
|
|
``` |
|
|
``` |
|
|
cd projects/CMake # You can also just download the CMakeLists.txt and the core_basic_window.c file separately |
|
|
|
|
|
mkdir build # Create an out-of-tree build directory. That way build artifacts aren't mixed with source code |
|
|
|
|
|
cd build # enter it |
|
|
|
|
|
cmake .. # run cmake on the parent directory |
|
|
|
|
|
cmake --build . # kick off the build process |
|
|
|
|
|
|
|
|
To build, use these commands: |
|
|
|
|
|
```cmake |
|
|
|
|
|
mkdir build # Create a build directory |
|
|
|
|
|
cd build && cmake .. # Build from that directory so the build files are in one place |
|
|
|
|
|
cmake --build . # Actually build the project |
|
|
``` |
|
|
``` |
|
|
|
|
|
|
|
|
The `CMakeLists.txt` is self contained and will arrange to probe whether raylib has been installed and if not, it's downloaded, built and linked statically into the `core_basic_window` example application. |
|
|
|
|
|
|
|
|
|
|
|
If you want to conserve bandwidth by not downloading raylib for each project, consider installing raylib systemwide by running `cmake --build . --target install` in the raylib build directory. |
|
|
|
|
|
|
|
|
## Loading raylib inside cmake |
|
|
|
|
|
If you want someone who builds your project to be able to download and build raylib with it, the [CMakeLists.txt at projects/CMake](https://github.com/raysan5/raylib/blob/master/projects/CMake/CMakeLists.txt) |
|
|
|
|
|
will help you. |
|
|
|
|
|
|
|
|
## Use from within an IDE |
|
|
## Use from within an IDE |
|
|
|
|
|
|