Mercurial > molko
annotate cmake/FindSDL2.cmake @ 295:aec448037320
rpg: add support for compressed tilesets/maps
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 10 Mar 2021 16:40:02 +0100 |
parents | 71b3b7036de7 |
children |
rev | line source |
---|---|
243
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
1 # |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
2 # FindSDL2.cmake -- find SDL2 library and addons |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
3 # |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr> |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
5 # |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
9 # |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
71b3b7036de7
misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents:
116
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
116
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 # Find SDL2 library and components, this modules defines: |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 # SDL2_LIBRARY, the name of the library to link against. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 # SDL2_MAIN_LIBRARY, for SDL2main (if present). |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 # SDL2_LIBRARIES, alias to SDL2_LIBRARY. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 # SDL2_FOUND, true if found. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 # SDL2_INCLUDE_DIR, where to find SDL.h. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 # The following imported targets will be defined: |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 # SDL2::SDL2 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 # SDL2::SDL2main (if present) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 # This module also handle the following official SDL addons: |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 # - image |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 # - mixer |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 # - net |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 # - ttf |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 # And thus, variables SDL2_<C>_LIBRARY, SDL2_<C>_INCLUDE_DIRS and SDL2::<C> |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 # imported targets will be defined if they are found. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 # |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 include(FindPackageHandleStandardArgs) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 # The official include convention is <SDL.h> not <SDL/SDL.h>. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 find_path( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 SDL2_INCLUDE_DIR |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 NAMES SDL.h |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 PATH_SUFFIXES include/SDL2 include |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 find_library(SDL2_LIBRARY NAMES SDL2 libSDL2) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 find_library(SDL2_MAIN_LIBRARY NAMES SDL2main libSDL2main) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 # Standard components. |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 foreach (c ${SDL2_FIND_COMPONENTS}) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 find_path( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 SDL2_${c}_INCLUDE_DIR |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 NAMES SDL.h |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 PATH_SUFFIXES include/SDL2 include |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 find_library( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 SDL2_${c}_LIBRARY |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 NAMES SDL2_${c} libSDL2_${c} |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 if (NOT TARGET SDL2::${c} AND SDL2_${c}_LIBRARY) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 set(SDL2_${c}_FOUND TRUE) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 add_library(SDL2::${c} UNKNOWN IMPORTED) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 set_target_properties( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 SDL2::${c} |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 PROPERTIES |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 IMPORTED_LINK_INTERFACE_LANGUAGES "C" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 IMPORTED_LOCATION "${SDL2_${c}_LIBRARY}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_${c}_INCLUDE_DIRS}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 endif () |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 mark_as_advanced(SDL2_${c}_INCLUDE_DIR SDL2_${c}_LIBRARY) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 endforeach () |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 find_package_handle_standard_args( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 SDL2 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 HANDLE_COMPONENTS |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 if (SDL2_FOUND) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 set(SDL2_LIBRARIES ${SDL2_LIBRARY}) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 if (NOT TARGET SDL2::SDL2) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 add_library(SDL2::SDL2 UNKNOWN IMPORTED) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 set_target_properties( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 SDL2::SDL2 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 PROPERTIES |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 IMPORTED_LINK_INTERFACE_LANGUAGES "C" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 IMPORTED_LOCATION "${SDL2_LIBRARY}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 endif () |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 if (NOT TARGET SDL2::main AND SDL2_MAIN_LIBRARY) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 add_library(SDL2::main UNKNOWN IMPORTED) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 set_target_properties( |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 SDL2::main |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 PROPERTIES |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 IMPORTED_LINK_INTERFACE_LANGUAGES "C" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 IMPORTED_LOCATION "${SDL2_MAIN_LIBRARY}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 INTERFACE_INCLUDE_DIRECTORIES "${SDL2_INCLUDE_DIRS}" |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 ) |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 endif () |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 endif () |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
0a6683615c73
cmake: change build system, continue #2487 @3h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 mark_as_advanced(SDL2_INCLUDE_DIR SDL2_LIBRARY) |