62 lines
1.6 KiB
CMake
62 lines
1.6 KiB
CMake
# Findraylib.cmake — minimal: system paths → FetchContent
|
|
# Exposes: raylib::raylib, raylib_FOUND
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
set(_RAYLIB_TAG "5.5")
|
|
set(_RAYLIB_URL "https://github.com/raysan5/raylib/archive/refs/tags/${_RAYLIB_TAG}.tar.gz")
|
|
set(_RAYLIB_ROOT "")
|
|
|
|
# Try system install first
|
|
find_path(_RAYLIB_INCLUDE_DIR raylib.h
|
|
HINTS "${_RAYLIB_ROOT}/include"
|
|
PATHS /usr/include /usr/local/include
|
|
PATH_SUFFIXES raylib
|
|
)
|
|
find_library(_RAYLIB_LIBRARY raylib
|
|
HINTS "${_RAYLIB_ROOT}/lib" "${_RAYLIB_ROOT}/lib64"
|
|
PATHS /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64
|
|
)
|
|
|
|
if (_RAYLIB_INCLUDE_DIR AND _RAYLIB_LIBRARY)
|
|
add_library(raylib UNKNOWN IMPORTED)
|
|
set_target_properties(raylib PROPERTIES
|
|
IMPORTED_LOCATION "${_RAYLIB_LIBRARY}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${_RAYLIB_INCLUDE_DIR}"
|
|
)
|
|
else()
|
|
include(FetchContent)
|
|
|
|
# Fix CMP0135 warning
|
|
if(POLICY CMP0135)
|
|
cmake_policy(SET CMP0135 NEW)
|
|
endif()
|
|
|
|
if (DEFINED FETCHCONTENT_SOURCE_DIR_RAYLIB AND
|
|
NOT EXISTS "${FETCHCONTENT_SOURCE_DIR_RAYLIB}")
|
|
unset(FETCHCONTENT_SOURCE_DIR_RAYLIB CACHE)
|
|
endif()
|
|
|
|
set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
|
set(BUILD_GAMES OFF CACHE BOOL "" FORCE)
|
|
set(RAYLIB_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
|
set(RAYLIB_BUILD_GAMES OFF CACHE BOOL "" FORCE)
|
|
|
|
FetchContent_Declare(raylib
|
|
URL "${_RAYLIB_URL}"
|
|
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
|
|
)
|
|
FetchContent_MakeAvailable(raylib)
|
|
|
|
if (NOT TARGET raylib)
|
|
message(FATAL_ERROR "raylib target not defined after fetch.")
|
|
endif()
|
|
endif()
|
|
|
|
# Normalize exported target
|
|
if (NOT TARGET raylib::raylib)
|
|
add_library(raylib::raylib ALIAS raylib)
|
|
endif()
|
|
|
|
set(raylib_FOUND TRUE)
|