Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 3 | pmbaty | 1 | # SDL2 CMake configuration file: |
| 2 | # This file is meant to be placed in Resources/CMake of a SDL2 framework |
||
| 3 | |||
| 4 | # INTERFACE_LINK_OPTIONS needs CMake 3.12 |
||
| 5 | cmake_minimum_required(VERSION 3.12) |
||
| 6 | |||
| 7 | include(FeatureSummary) |
||
| 8 | set_package_properties(SDL2 PROPERTIES |
||
| 9 | URL "https://www.libsdl.org/" |
||
| 10 | DESCRIPTION "low level access to audio, keyboard, mouse, joystick, and graphics hardware" |
||
| 11 | ) |
||
| 12 | |||
| 13 | # Copied from `configure_package_config_file` |
||
| 14 | macro(set_and_check _var _file) |
||
| 15 | set(${_var} "${_file}") |
||
| 16 | if(NOT EXISTS "${_file}") |
||
| 17 | message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") |
||
| 18 | endif() |
||
| 19 | endmacro() |
||
| 20 | |||
| 21 | # Copied from `configure_package_config_file` |
||
| 22 | macro(check_required_components _NAME) |
||
| 23 | foreach(comp ${${_NAME}_FIND_COMPONENTS}) |
||
| 24 | if(NOT ${_NAME}_${comp}_FOUND) |
||
| 25 | if(${_NAME}_FIND_REQUIRED_${comp}) |
||
| 26 | set(${_NAME}_FOUND FALSE) |
||
| 27 | endif() |
||
| 28 | endif() |
||
| 29 | endforeach() |
||
| 30 | endmacro() |
||
| 31 | |||
| 32 | set(SDL2_FOUND TRUE) |
||
| 33 | |||
| 34 | string(REGEX REPLACE "SDL2\\.framework.*" "SDL2.framework" SDL2_FRAMEWORK_PATH "${CMAKE_CURRENT_LIST_DIR}") |
||
| 35 | string(REGEX REPLACE "SDL2\\.framework.*" "" SDL2_FRAMEWORK_PARENT_PATH "${CMAKE_CURRENT_LIST_DIR}") |
||
| 36 | |||
| 37 | # For compatibility with autotools sdl2-config.cmake, provide SDL2_* variables. |
||
| 38 | |||
| 39 | set_and_check(SDL2_PREFIX "${SDL2_FRAMEWORK_PATH}") |
||
| 40 | set_and_check(SDL2_EXEC_PREFIX "${SDL2_FRAMEWORK_PATH}") |
||
| 41 | set_and_check(SDL2_INCLUDE_DIR "${SDL2_FRAMEWORK_PATH}/Headers") |
||
| 42 | set(SDL2_INCLUDE_DIRS "${SDL2_INCLUDE_DIR};${SDL2_FRAMEWORK_PATH}") |
||
| 43 | set_and_check(SDL2_BINDIR "${SDL2_FRAMEWORK_PATH}") |
||
| 44 | set_and_check(SDL2_LIBDIR "${SDL2_FRAMEWORK_PATH}") |
||
| 45 | |||
| 46 | set(SDL2_LIBRARIES "SDL2::SDL2") |
||
| 47 | |||
| 48 | # All targets are created, even when some might not be requested though COMPONENTS. |
||
| 49 | # This is done for compatibility with CMake generated SDL2-target.cmake files. |
||
| 50 | |||
| 51 | if(NOT TARGET SDL2::SDL2) |
||
| 52 | add_library(SDL2::SDL2 INTERFACE IMPORTED) |
||
| 53 | set_target_properties(SDL2::SDL2 |
||
| 54 | PROPERTIES |
||
| 55 | INTERFACE_COMPILE_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\"" |
||
| 56 | INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" |
||
| 57 | INTERFACE_LINK_OPTIONS "SHELL:-F \"${SDL2_FRAMEWORK_PARENT_PATH}\";SHELL:-framework SDL2" |
||
| 58 | COMPATIBLE_INTERFACE_BOOL "SDL2_SHARED" |
||
| 59 | INTERFACE_SDL2_SHARED "ON" |
||
| 60 | COMPATIBLE_INTERFACE_STRING "SDL_VERSION" |
||
| 61 | INTERFACE_SDL_VERSION "SDL2" |
||
| 62 | ) |
||
| 63 | endif() |
||
| 64 | set(SDL2_SDL2_FOUND TRUE) |
||
| 65 | |||
| 66 | if(NOT TARGET SDL2::SDL2main) |
||
| 67 | add_library(SDL2::SDL2main INTERFACE IMPORTED) |
||
| 68 | endif() |
||
| 69 | set(SDL2_SDL2main_FOUND TRUE) |
||
| 70 | |||
| 71 | check_required_components(SDL2) |