aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2016-09-25 22:25:20 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2016-09-26 19:58:48 +0300
commit5c9651f7cd8fac15b374bee642d8436e32b2b49f (patch)
tree3f267fc24d4b72a84fbff31d5b602e5907fdc324
parent5145705722c48dde7a2f19b2c1411ae783f600b7 (diff)
downloadraylib-5c9651f7cd8fac15b374bee642d8436e32b2b49f.tar.gz
raylib-5c9651f7cd8fac15b374bee642d8436e32b2b49f.zip
Export raylib CMake configuration
-rw-r--r--src/CMakeLists.txt51
-rw-r--r--src/raylibConfig.cmake.in1
2 files changed, 42 insertions, 10 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 18778b08..6f8fbc9c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,8 +1,13 @@
-ADD_SUBDIRECTORY(external)
+IF(BOOTSTRAP)
+ ADD_SUBDIRECTORY(external)
+ RETURN()
+ENDIF()
SET(PLATFORM_TO_USE "PLATFORM_DESKTOP" CACHE STRING "Platform to compile for")
SET_PROPERTY(CACHE PLATFORM_TO_USE PROPERTY STRINGS PLATFORM_DESKTOP PLATFORM_RPI PLATFORM_WEB)
+SET(CMAKE_INCLUDE_CURRENT_DIR ON)
+
SET(SOURCES
audio.c
camera.c
@@ -20,10 +25,17 @@ SET(SOURCES
ADD_LIBRARY(raylib STATIC ${SOURCES})
-ADD_DEPENDENCIES(raylib glfw3)
+FIND_PACKAGE(glfw3 REQUIRED)
+TARGET_LINK_LIBRARIES(raylib PUBLIC glfw)
+
+INSTALL(TARGETS raylib EXPORT raylibTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES DESTINATION include
+)
-INSTALL(TARGETS raylib DESTINATION lib)
-INSTALL(FILES raylib.h DESTINATION include)
+INSTALL(FILES raylib.h raymath.h DESTINATION include/raylib)
IF(CMAKE_COMPILER_IS_GNUCC)
TARGET_COMPILE_OPTIONS(raylib PRIVATE -O1 -Wall -std=gnu99 -fgnu89-inline
@@ -35,18 +47,23 @@ ENDIF()
IF(${PLATFORM_TO_USE} MATCHES "PLATFORM_DESKTOP")
TARGET_COMPILE_DEFINITIONS(raylib PUBLIC -DPLATFORM_DESKTOP -DGRAPHICS_API_OPENGL_33)
- TARGET_INCLUDE_DIRECTORIES(raylib PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}
+ TARGET_INCLUDE_DIRECTORIES(raylib PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/external/openal_soft/include
${CMAKE_INSTALL_PREFIX}/include)
+ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ TARGET_LINK_LIBRARIES(raylib PUBLIC m dl pthread X11 Xrandr Xinerama
+ Xi Xxf86vm Xcursor)
+ ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ TARGET_LINK_LIBRARIES(raylib PUBLIC gdi32)
+ ENDIF()
+
ENDIF()
IF(${PLATFORM_TO_USE} MATCHES "PLATFORM_RPI")
TARGET_COMPILE_DEFINITIONS(raylib PUBLIC -DPLATFORM_RPI -GRAPHICS_API_OPENGL_ES2)
- TARGET_INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}
+ TARGET_INCLUDE_DIRECTORIES(raylib PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/external
"/opt/vc/include"
"/opt/vc/include/interface/vmcs_host/linux"
@@ -57,10 +74,24 @@ ENDIF()
IF(${PLATFORM_TO_USE} MATCHES "PLATFORM_WEB")
TARGET_COMPILE_DEFINITIONS(raylib PUBLIC -DPLATFORM_WEB -GRAPHICS_API_OPENGL_ES2)
- TARGET_INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}
+ TARGET_INCLUDE_DIRECTORIES(raylib PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/external
${CMAKE_CURRENT_SOURCE_DIR}/external/openal_soft/include
${CMAKE_INSTALL_PREFIX}/include)
ENDIF()
+
+INCLUDE(CMakePackageConfigHelpers)
+CONFIGURE_PACKAGE_CONFIG_FILE(raylibConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/raylibConfig.cmake
+ INSTALL_DESTINATION lib/cmake/raylib
+)
+
+INSTALL(EXPORT raylibTargets
+ DESTINATION lib/cmake/raylib
+)
+
+INSTALL(FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/raylibConfig.cmake
+ DESTINATION lib/cmake/raylib
+)
diff --git a/src/raylibConfig.cmake.in b/src/raylibConfig.cmake.in
new file mode 100644
index 00000000..09a4fdb4
--- /dev/null
+++ b/src/raylibConfig.cmake.in
@@ -0,0 +1 @@
+INCLUDE(${CMAKE_CURRENT_LIST_DIR}/raylibTargets.cmake)