summaryrefslogtreecommitdiffhomepage
path: root/games/CMakeLists.txt
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 /games/CMakeLists.txt
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 'games/CMakeLists.txt')
-rw-r--r--games/CMakeLists.txt15
1 files changed, 5 insertions, 10 deletions
diff --git a/games/CMakeLists.txt b/games/CMakeLists.txt
index 563dbb61..d3f9d9fc 100644
--- a/games/CMakeLists.txt
+++ b/games/CMakeLists.txt
@@ -1,17 +1,9 @@
# Setup the project and settings
project(games)
-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")
-
# Get the source toegher
file(GLOB sources *.c)
-message("PLATFORM = ${PLATFORM}")
set(OUTPUT_EXT)
if(${PLATFORM} MATCHES "Web")
@@ -20,18 +12,21 @@ if(${PLATFORM} MATCHES "Web")
set(OUTPUT_EXT ".html")
endif()
+if (NOT TARGET raylib)
+ find_package(raylib 2.0 REQUIRED)
+endif()
# Do each game
foreach(game_source ${sources})
# Create the basename for the game
get_filename_component(game_name ${game_source} NAME)
string(REPLACE ".c" "${OUTPUT_EXT}" game_name ${game_name})
-
+
# Setup the game
add_executable(${game_name} ${game_source})
# Link the libraries
- link_libraries_to_executable(${game_name})
+ target_link_libraries(${game_name} raylib)
endforeach()
# Do the games with subdirectories