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) |