annotate cmake/FindSDL2.cmake @ 483:6c06c82d276a

misc: objects can no longer be transformed to action/drawable It is not convenient if the user wants to provide its own variant of a function as it will be unable to use its own data and the underlying data as well.
author David Demelier <markand@malikania.fr>
date Mon, 27 Feb 2023 18:19:38 +0100
parents e1fa1b867281
children f3d9e10bcaf8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
447
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # FindSDL2
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # --------
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Find SDL2 library and components, this modules defines:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # SDL2_LIBRARY, the name of the library to link against.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # SDL2_MAIN_LIBRARY, for SDL2main (if present).
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # SDL2_LIBRARIES, alias to SDL2_LIBRARY.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # SDL2_FOUND, true if found.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # SDL2_INCLUDE_DIR, where to find SDL.h.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # The following imported targets will be defined:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 # SDL2::SDL2
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # SDL2::SDL2main (if present)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 # This module also handle the following official SDL addons:
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 # - image
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # - mixer
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 # - net
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 # - ttf
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 # And thus, variables SDL2_<C>_LIBRARY, SDL2_<C>_INCLUDE_DIRS and SDL2::<C>
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 # imported targets will be defined if they are found.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 include(FindPackageHandleStandardArgs)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 # The official include convention is <SDL.h> not <SDL/SDL.h>.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 find_path(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 SDL2_INCLUDE_DIR
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 NAMES SDL.h
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 PATH_SUFFIXES include/SDL2 include
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
36
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 find_library(SDL2_LIBRARY NAMES SDL2 libSDL2 SDL2d libSDL2d)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 find_library(SDL2_MAIN_LIBRARY NAMES SDL2main libSDL2main SDL2maind libSDL2maind)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 # Standard components.
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 foreach (c ${SDL2_FIND_COMPONENTS})
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 find_path(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 SDL2_${c}_INCLUDE_DIR
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 NAMES SDL.h
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 PATH_SUFFIXES include/SDL2 include
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
47
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 find_library(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 SDL2_${c}_LIBRARY
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 NAMES SDL2_${c} libSDL2_${c}
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
52
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 if (NOT TARGET SDL2::${c} AND SDL2_${c}_LIBRARY)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 set(SDL2_${c}_FOUND TRUE)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 add_library(SDL2::${c} UNKNOWN IMPORTED)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 set_target_properties(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 SDL2::${c}
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 PROPERTIES
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 IMPORTED_LOCATION "${SDL2_${c}_LIBRARY}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_${c}_INCLUDE_DIRS}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 endif ()
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
64
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 mark_as_advanced(SDL2_${c}_INCLUDE_DIR SDL2_${c}_LIBRARY)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 endforeach ()
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 find_package_handle_standard_args(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 SDL2
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 HANDLE_COMPONENTS
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
73
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 if (SDL2_FOUND)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 set(SDL2_LIBRARIES ${SDL2_LIBRARY})
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 if (NOT TARGET SDL2::SDL2)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 add_library(SDL2::SDL2 UNKNOWN IMPORTED)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 set_target_properties(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 SDL2::SDL2
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 PROPERTIES
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 IMPORTED_LOCATION "${SDL2_LIBRARY}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 endif ()
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 if (NOT TARGET SDL2::main AND SDL2_MAIN_LIBRARY)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 add_library(SDL2::main UNKNOWN IMPORTED)
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 set_target_properties(
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 SDL2::main
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 PROPERTIES
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 IMPORTED_LOCATION "${SDL2_MAIN_LIBRARY}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}"
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 )
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 endif ()
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 endif ()
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
100
e1fa1b867281 cmake: resurrection
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 mark_as_advanced(SDL2_INCLUDE_DIR SDL2_LIBRARY)