summaryrefslogtreecommitdiffhomepage
path: root/examples
diff options
context:
space:
mode:
authorAhmad Fatoum <[email protected]>2018-07-28 16:08:41 +0200
committerAhmad Fatoum <[email protected]>2018-07-29 12:35:35 +0200
commit3f097263310c3993a742891bce4dc00892aa5c3d (patch)
tree0edbf1dec83be178ebe2978aecd29dcf5828030a /examples
parent3e5093eab0ef4949e9e08fda5de0cd3d31b7e2c1 (diff)
downloadraylib-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.txt14
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