From 5c9651f7cd8fac15b374bee642d8436e32b2b49f Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Sun, 25 Sep 2016 22:25:20 +0300 Subject: Export raylib CMake configuration --- src/CMakeLists.txt | 51 +++++++++++++++++++++++++++++++++++++---------- src/raylibConfig.cmake.in | 1 + 2 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 src/raylibConfig.cmake.in 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) -- cgit v1.2.3