Skip to content

Commit 13e5fa8

Browse files
committed
[cmake] export automatically raylib definitions and compile/link options
1 parent 5a54fc1 commit 13e5fa8

3 files changed

Lines changed: 13 additions & 83 deletions

File tree

cmake/InstallConfigurations.cmake

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,18 @@ join_paths(libdir_for_pc_file "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}")
1919
join_paths(includedir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
2020
configure_file(../raylib.pc.in raylib.pc @ONLY)
2121
configure_file(../cmake/raylib-config-version.cmake raylib-config-version.cmake @ONLY)
22+
configure_file(../cmake/raylib-config.cmake raylib-config.cmake @ONLY)
2223
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
2324
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
24-
install(FILES ${PROJECT_SOURCE_DIR}/../cmake/raylib-config.cmake DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/raylib")
25+
install(FILES
26+
"${CMAKE_CURRENT_BINARY_DIR}/raylib-config-version.cmake"
27+
"${CMAKE_CURRENT_BINARY_DIR}/raylib-config.cmake"
28+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/raylib
29+
)
30+
install(EXPORT raylib-targets
31+
FILE raylib-targets.cmake
32+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/raylib
33+
)
2534

2635
# populates raylib_{FOUND, INCLUDE_DIRS, LIBRARIES, LDFLAGS, DEFINITIONS}
2736
include(PopulateConfigVariablesLocally)

cmake/raylib-config.cmake

Lines changed: 2 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,2 @@
1-
# - Try to find raylib
2-
# Options:
3-
# raylib_USE_STATIC_LIBS - ON by default
4-
# raylib_VERBOSE - OFF by default
5-
# Once done, this defines a raylib target that can be passed to
6-
# target_link_libraries as well as following variables:
7-
#
8-
# raylib_FOUND - System has raylib installed
9-
# raylib_INCLUDE_DIRS - The include directories for the raylib header(s)
10-
# raylib_LIBRARIES - The libraries needed to use raylib
11-
# raylib_LDFLAGS - The linker flags needed with raylib
12-
# raylib_DEFINITIONS - Compiler switches required for using raylib
13-
14-
option(raylib_USE_STATIC_LIBS "Use static libs" ON)
15-
option(raylib_VERBOSE "Show raylib verbose messages" OFF)
16-
17-
if (NOT TARGET raylib)
18-
set(XPREFIX PC_RAYLIB)
19-
20-
find_package(PkgConfig QUIET)
21-
pkg_check_modules(${XPREFIX} QUIET raylib)
22-
23-
if (raylib_USE_STATIC_LIBS)
24-
set(XPREFIX ${XPREFIX}_STATIC)
25-
endif()
26-
27-
set(raylib_DEFINITIONS ${${XPREFIX}_CFLAGS})
28-
29-
find_path(raylib_INCLUDE_DIR
30-
NAMES raylib.h
31-
HINTS ${${XPREFIX}_INCLUDE_DIRS} ${raylib_DIR}/../../../include/
32-
)
33-
34-
35-
if (raylib_USE_STATIC_LIBS)
36-
set(RAYLIB_NAMES libraylib.a raylib.lib)
37-
else ()
38-
set(RAYLIB_NAMES raylib)
39-
endif ()
40-
41-
find_library(raylib_LIBRARY
42-
NAMES ${RAYLIB_NAMES}
43-
HINTS ${${XPREFIX}_LIBRARY_DIRS} ${raylib_DIR}/../../
44-
)
45-
46-
set(raylib_LIBRARIES ${raylib_LIBRARY})
47-
set(raylib_INCLUDE_DIRS ${raylib_INCLUDE_DIR})
48-
set(raylib_LDFLAGS ${${XPREFIX}_LDFLAGS})
49-
50-
include(FindPackageHandleStandardArgs)
51-
find_package_handle_standard_args(raylib DEFAULT_MSG
52-
raylib_LIBRARY
53-
raylib_INCLUDE_DIR
54-
)
55-
56-
mark_as_advanced(raylib_LIBRARY raylib_INCLUDE_DIR)
57-
58-
if (raylib_USE_STATIC_LIBS)
59-
add_library(raylib STATIC IMPORTED GLOBAL)
60-
else()
61-
add_library(raylib SHARED IMPORTED GLOBAL)
62-
endif()
63-
string (REPLACE ";" " " raylib_LDFLAGS "${raylib_LDFLAGS}")
64-
65-
set_target_properties(raylib
66-
PROPERTIES
67-
IMPORTED_LOCATION "${raylib_LIBRARIES}"
68-
IMPORTED_IMPLIB "${raylib_LIBRARIES}"
69-
INTERFACE_INCLUDE_DIRECTORIES "${raylib_INCLUDE_DIRS}"
70-
INTERFACE_LINK_LIBRARIES "${raylib_LDFLAGS}"
71-
INTERFACE_COMPILE_OPTIONS "${raylib_DEFINITIONS}"
72-
)
73-
74-
if (raylib_VERBOSE)
75-
message(STATUS "raylib_FOUND: ${raylib_FOUND}")
76-
message(STATUS "raylib_INCLUDE_DIRS: ${raylib_INCLUDE_DIRS}")
77-
message(STATUS "raylib_LIBRARIES: ${raylib_LIBRARIES}")
78-
message(STATUS "raylib_LDFLAGS: ${raylib_LDFLAGS}")
79-
message(STATUS "raylib_DEFINITIONS: ${raylib_DEFINITIONS}")
80-
endif()
81-
endif()
1+
@PACKAGE_INIT@
2+
include("${CMAKE_CURRENT_LIST_DIR}/raylib-targets.cmake")

src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ if (BUILD_SHARED_LIBS)
9191
set_property(TARGET raylib PROPERTY C_VISIBILITY_PRESET hidden)
9292
endif ()
9393

94-
target_link_libraries(raylib "${LIBS_PRIVATE}")
94+
target_link_libraries(raylib PRIVATE $<BUILD_INTERFACE:${LIBS_PRIVATE}>)
9595

9696
# Sets some compile time definitions for the pre-processor
9797
# If CUSTOMIZE_BUILD option is on you will not use config.h by default

0 commit comments

Comments
 (0)