diff options
| author | Ahmad Fatoum <[email protected]> | 2018-07-28 16:08:41 +0200 |
|---|---|---|
| committer | Ahmad Fatoum <[email protected]> | 2018-07-29 12:35:35 +0200 |
| commit | 3f097263310c3993a742891bce4dc00892aa5c3d (patch) | |
| tree | 0edbf1dec83be178ebe2978aecd29dcf5828030a /examples | |
| parent | 3e5093eab0ef4949e9e08fda5de0cd3d31b7e2c1 (diff) | |
| download | raylib-3f097263310c3993a742891bce4dc00892aa5c3d.tar.gz raylib-3f097263310c3993a742891bce4dc00892aa5c3d.zip | |
CMake: Major cleanup to support find_package(raylib)
Remove that link_libraries_to_executable() hack and defines a proper
raylib target that can be used with target_link_libraries.
The same target is also available for external (user) code by using
find_package(raylib).
This results in:
- Remove hardcoded build directories from examples and games CMakeLists.txt
- Allow rlgl_standalone and other special examples to be built easily
- Allow CMake projects to find_package(raylib instead of fiddling with pkg-config
- Makes code a little more maintainable
- Fixes #471, #606.
- Makes code less confusing by removing the double use of PLATFORM (#584).
Note that this is still not _The Right Way_(TM), because normally
raylib-config.cmake (or its includes) would be automatically generated.
I didn't manage to get that to work though, so I went the easier route
of just wrapping pkg_check_modules for consumption by find_package.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/CMakeLists.txt | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a214c171..708c08c6 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,15 +1,6 @@ # Setup the project and settings project(examples) -include("../cmake/utils.cmake") - -# Make sure raylib has been built -# TODO `build` directory should maybe be something else... -# TODO place somewhere else? -include_directories("../build/release") -include_directories("../src/external") -include_directories("../src/external/glfw/include") - # Get the sources together set(example_dirs audio core models others shaders shapes text textures) set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=199309L) @@ -64,6 +55,9 @@ elseif(${PLATFORM} MATCHES "Web") set(OUTPUT_EXT ".html") endif() +if (NOT TARGET raylib) + find_package(raylib 2.0 REQUIRED) +endif() # Do each example foreach(example_source ${example_sources}) @@ -75,7 +69,7 @@ foreach(example_source ${example_sources}) add_executable(${example_name} ${example_source}) # Link the libraries - link_libraries_to_executable(${example_name}) + target_link_libraries(${example_name} raylib) endforeach() # Copy all of the resource files to the destination |
