From 3f097263310c3993a742891bce4dc00892aa5c3d Mon Sep 17 00:00:00 2001 From: Ahmad Fatoum Date: Sat, 28 Jul 2018 16:08:41 +0200 Subject: 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. --- cmake/PopulateConfigVariablesLocally.cmake | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 cmake/PopulateConfigVariablesLocally.cmake (limited to 'cmake/PopulateConfigVariablesLocally.cmake') diff --git a/cmake/PopulateConfigVariablesLocally.cmake b/cmake/PopulateConfigVariablesLocally.cmake new file mode 100644 index 00000000..151070ea --- /dev/null +++ b/cmake/PopulateConfigVariablesLocally.cmake @@ -0,0 +1,11 @@ +macro(populate_config_variables_locally target) + get_property(raylib_INCLUDE_DIRS TARGET ${target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES) + #get_property(raylib_LIBRARIES TARGET ${target} PROPERTY LOCATION) # only works for SHARED + get_property(raylib_LDFLAGS TARGET ${target} PROPERTY INTERFACE_LINK_LIBRARIES) + get_property(raylib_DEFINITIONS TARGET ${target} PROPERTY DEFINITIONS) + + set(raylib_INCLUDE_DIRS "${raylib_INCLUDE_DIRS}" PARENT_SCOPE) + #set(raylib_LIBRARIES "${raylib_INCLUDE_DIRS}" PARENT_SCOPE) + set(raylib_LDFLAGS "${raylib_LDFLAGS}" PARENT_SCOPE) + set(raylib_DEFINITIONS "${raylib_DEFINITIONS}" PARENT_SCOPE) +endmacro() -- cgit v1.2.3