icculus@8017
|
1 |
macro(FindLibraryAndSONAME _LIB)
|
icculus@8017
|
2 |
string(TOUPPER ${_LIB} _UPPERLNAME)
|
icculus@8017
|
3 |
string(REGEX REPLACE "\\-" "_" _LNAME "${_UPPERLNAME}")
|
icculus@8017
|
4 |
|
icculus@8017
|
5 |
find_library(${_LNAME}_LIB ${_LIB})
|
icculus@8017
|
6 |
if(${_LNAME}_LIB)
|
icculus@8017
|
7 |
# reduce the library name for shared linking
|
icculus@8017
|
8 |
|
icculus@8017
|
9 |
get_filename_component(_LIB_REALPATH ${${_LNAME}_LIB} REALPATH) # resolves symlinks
|
icculus@8017
|
10 |
get_filename_component(_LIB_JUSTNAME ${_LIB_REALPATH} NAME)
|
icculus@8017
|
11 |
|
icculus@8017
|
12 |
if(APPLE)
|
icculus@8017
|
13 |
string(REGEX REPLACE "(\\.[0-9]*)\\.[0-9\\.]*dylib$" "\\1.dylib" _LIB_REGEXD "${_LIB_JUSTNAME}")
|
icculus@8017
|
14 |
else()
|
icculus@8017
|
15 |
string(REGEX REPLACE "(\\.[0-9]*)\\.[0-9\\.]*$" "\\1" _LIB_REGEXD "${_LIB_JUSTNAME}")
|
icculus@8017
|
16 |
endif()
|
icculus@8017
|
17 |
|
icculus@8017
|
18 |
SET(_DEBUG_FindSONAME FALSE)
|
icculus@8017
|
19 |
if(_DEBUG_FindSONAME)
|
icculus@8017
|
20 |
message_warn("DYNLIB OUTPUTVAR: ${_LIB} ... ${_LNAME}_LIB")
|
icculus@8017
|
21 |
message_warn("DYNLIB ORIGINAL LIB: ${_LIB} ... ${${_LNAME}_LIB}")
|
icculus@8017
|
22 |
message_warn("DYNLIB REALPATH LIB: ${_LIB} ... ${_LIB_REALPATH}")
|
icculus@8017
|
23 |
message_warn("DYNLIB JUSTNAME LIB: ${_LIB} ... ${_LIB_JUSTNAME}")
|
icculus@8017
|
24 |
message_warn("DYNLIB REGEX'd LIB: ${_LIB} ... ${_LIB_REGEXD}")
|
icculus@8017
|
25 |
endif()
|
icculus@8017
|
26 |
|
icculus@8017
|
27 |
message(STATUS "dynamic lib${_LIB} -> ${_LIB_REGEXD}")
|
icculus@8017
|
28 |
set(${_LNAME}_LIB_SONAME ${_LIB_REGEXD})
|
icculus@8017
|
29 |
endif()
|
icculus@8017
|
30 |
endmacro()
|
icculus@8017
|
31 |
|
gabomdq@6674
|
32 |
macro(CheckDLOPEN)
|
gabomdq@6674
|
33 |
check_function_exists(dlopen HAVE_DLOPEN)
|
gabomdq@6674
|
34 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
35 |
foreach(_LIBNAME dl tdl)
|
gabomdq@6674
|
36 |
check_library_exists("${_LIBNAME}" "dlopen" "" DLOPEN_LIB)
|
gabomdq@6674
|
37 |
if(DLOPEN_LIB)
|
gabomdq@6674
|
38 |
list(APPEND EXTRA_LIBS ${_LIBNAME})
|
gabomdq@6674
|
39 |
set(_DLLIB ${_LIBNAME})
|
gabomdq@6674
|
40 |
set(HAVE_DLOPEN TRUE)
|
gabomdq@6674
|
41 |
break()
|
icculus@9277
|
42 |
endif()
|
gabomdq@6674
|
43 |
endforeach()
|
gabomdq@6674
|
44 |
endif()
|
gabomdq@6674
|
45 |
|
gabomdq@6674
|
46 |
if(HAVE_DLOPEN)
|
gabomdq@6674
|
47 |
if(_DLLIB)
|
gabomdq@6674
|
48 |
set(CMAKE_REQUIRED_LIBRARIES ${_DLLIB})
|
gabomdq@6674
|
49 |
endif()
|
gabomdq@6674
|
50 |
check_c_source_compiles("
|
gabomdq@6674
|
51 |
#include <dlfcn.h>
|
jorgen@7507
|
52 |
int main(int argc, char **argv) {
|
jorgen@7521
|
53 |
void *handle = dlopen(\"\", RTLD_NOW);
|
jorgen@7507
|
54 |
const char *loaderror = (char *) dlerror();
|
jorgen@7507
|
55 |
}" HAVE_DLOPEN)
|
gabomdq@6674
|
56 |
set(CMAKE_REQUIRED_LIBRARIES)
|
gabomdq@6674
|
57 |
endif()
|
gabomdq@6674
|
58 |
|
gabomdq@6674
|
59 |
if (HAVE_DLOPEN)
|
gabomdq@6674
|
60 |
set(SDL_LOADSO_DLOPEN 1)
|
gabomdq@6674
|
61 |
set(HAVE_SDL_DLOPEN TRUE)
|
gabomdq@6674
|
62 |
file(GLOB DLOPEN_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/dlopen/*.c)
|
gabomdq@6674
|
63 |
set(SOURCE_FILES ${SOURCE_FILES} ${DLOPEN_SOURCES})
|
gabomdq@6674
|
64 |
set(HAVE_SDL_LOADSO TRUE)
|
gabomdq@6674
|
65 |
endif()
|
icculus@9277
|
66 |
endmacro()
|
gabomdq@6674
|
67 |
|
gabomdq@6674
|
68 |
# Requires:
|
gabomdq@6674
|
69 |
# - n/a
|
gabomdq@6674
|
70 |
macro(CheckOSS)
|
gabomdq@6674
|
71 |
if(OSS)
|
gabomdq@6674
|
72 |
set(OSS_HEADER_FILE "sys/soundcard.h")
|
gabomdq@6674
|
73 |
check_c_source_compiles("
|
gabomdq@6674
|
74 |
#include <sys/soundcard.h>
|
gabomdq@6674
|
75 |
int main() { int arg = SNDCTL_DSP_SETFRAGMENT; }" OSS_FOUND)
|
gabomdq@6674
|
76 |
if(NOT OSS_FOUND)
|
gabomdq@6674
|
77 |
set(OSS_HEADER_FILE "soundcard.h")
|
gabomdq@6674
|
78 |
check_c_source_compiles("
|
gabomdq@6674
|
79 |
#include <soundcard.h>
|
gabomdq@6674
|
80 |
int main() { int arg = SNDCTL_DSP_SETFRAGMENT; }" OSS_FOUND)
|
icculus@9277
|
81 |
endif()
|
gabomdq@6674
|
82 |
|
gabomdq@6674
|
83 |
if(OSS_FOUND)
|
gabomdq@6674
|
84 |
set(HAVE_OSS TRUE)
|
gabomdq@6674
|
85 |
file(GLOB OSS_SOURCES ${SDL2_SOURCE_DIR}/src/audio/dsp/*.c)
|
gabomdq@6674
|
86 |
if(OSS_HEADER_FILE STREQUAL "soundcard.h")
|
gabomdq@6674
|
87 |
set(SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H 1)
|
icculus@9277
|
88 |
endif()
|
gabomdq@6674
|
89 |
set(SDL_AUDIO_DRIVER_OSS 1)
|
gabomdq@6674
|
90 |
set(SOURCE_FILES ${SOURCE_FILES} ${OSS_SOURCES})
|
gabomdq@6674
|
91 |
if(NETBSD OR OPENBSD)
|
gabomdq@6674
|
92 |
list(APPEND EXTRA_LIBS ossaudio)
|
icculus@9277
|
93 |
endif()
|
gabomdq@6674
|
94 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
95 |
endif()
|
icculus@9277
|
96 |
endif()
|
icculus@9277
|
97 |
endmacro()
|
gabomdq@6674
|
98 |
|
gabomdq@6674
|
99 |
# Requires:
|
gabomdq@6674
|
100 |
# - n/a
|
gabomdq@6674
|
101 |
# Optional:
|
gabomdq@6674
|
102 |
# - ALSA_SHARED opt
|
gabomdq@6674
|
103 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
104 |
macro(CheckALSA)
|
gabomdq@6674
|
105 |
if(ALSA)
|
gabomdq@6674
|
106 |
CHECK_INCLUDE_FILE(alsa/asoundlib.h HAVE_ASOUNDLIB_H)
|
gabomdq@6674
|
107 |
if(HAVE_ASOUNDLIB_H)
|
slouken@10490
|
108 |
CHECK_LIBRARY_EXISTS(asound snd_pcm_recover "" HAVE_LIBASOUND)
|
slouken@10490
|
109 |
endif()
|
slouken@10490
|
110 |
if(HAVE_LIBASOUND)
|
gabomdq@6674
|
111 |
set(HAVE_ALSA TRUE)
|
gabomdq@6674
|
112 |
file(GLOB ALSA_SOURCES ${SDL2_SOURCE_DIR}/src/audio/alsa/*.c)
|
gabomdq@6674
|
113 |
set(SOURCE_FILES ${SOURCE_FILES} ${ALSA_SOURCES})
|
gabomdq@6674
|
114 |
set(SDL_AUDIO_DRIVER_ALSA 1)
|
gabomdq@6674
|
115 |
if(ALSA_SHARED)
|
gabomdq@6674
|
116 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
117 |
message_warn("You must have SDL_LoadObject() support for dynamic ALSA loading")
|
gabomdq@6674
|
118 |
else()
|
icculus@8017
|
119 |
FindLibraryAndSONAME("asound")
|
icculus@8017
|
120 |
set(SDL_AUDIO_DRIVER_ALSA_DYNAMIC "\"${ASOUND_LIB_SONAME}\"")
|
gabomdq@6674
|
121 |
set(HAVE_ALSA_SHARED TRUE)
|
icculus@9277
|
122 |
endif()
|
icculus@9277
|
123 |
else()
|
gabomdq@6674
|
124 |
list(APPEND EXTRA_LIBS asound)
|
icculus@9277
|
125 |
endif()
|
gabomdq@6674
|
126 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
127 |
endif()
|
icculus@9277
|
128 |
endif()
|
icculus@9277
|
129 |
endmacro()
|
gabomdq@6674
|
130 |
|
gabomdq@6674
|
131 |
# Requires:
|
gabomdq@6674
|
132 |
# - PkgCheckModules
|
gabomdq@6674
|
133 |
# Optional:
|
gabomdq@6674
|
134 |
# - PULSEAUDIO_SHARED opt
|
gabomdq@6674
|
135 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
136 |
macro(CheckPulseAudio)
|
gabomdq@6674
|
137 |
if(PULSEAUDIO)
|
gabomdq@6674
|
138 |
pkg_check_modules(PKG_PULSEAUDIO libpulse-simple)
|
gabomdq@6674
|
139 |
if(PKG_PULSEAUDIO_FOUND)
|
gabomdq@6674
|
140 |
set(HAVE_PULSEAUDIO TRUE)
|
gabomdq@6674
|
141 |
file(GLOB PULSEAUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/pulseaudio/*.c)
|
gabomdq@6674
|
142 |
set(SOURCE_FILES ${SOURCE_FILES} ${PULSEAUDIO_SOURCES})
|
gabomdq@6674
|
143 |
set(SDL_AUDIO_DRIVER_PULSEAUDIO 1)
|
gabomdq@6674
|
144 |
list(APPEND EXTRA_CFLAGS ${PKG_PULSEAUDIO_CFLAGS})
|
gabomdq@6674
|
145 |
if(PULSEAUDIO_SHARED)
|
gabomdq@6674
|
146 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
147 |
message_warn("You must have SDL_LoadObject() support for dynamic PulseAudio loading")
|
gabomdq@6674
|
148 |
else()
|
icculus@8017
|
149 |
FindLibraryAndSONAME("pulse-simple")
|
icculus@8017
|
150 |
set(SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "\"${PULSE_SIMPLE_LIB_SONAME}\"")
|
gabomdq@6674
|
151 |
set(HAVE_PULSEAUDIO_SHARED TRUE)
|
icculus@9277
|
152 |
endif()
|
icculus@9277
|
153 |
else()
|
gabomdq@6674
|
154 |
list(APPEND EXTRA_LDFLAGS ${PKG_PULSEAUDIO_LDFLAGS})
|
icculus@9277
|
155 |
endif()
|
gabomdq@6674
|
156 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
157 |
endif()
|
icculus@9277
|
158 |
endif()
|
icculus@9277
|
159 |
endmacro()
|
gabomdq@6674
|
160 |
|
gabomdq@6674
|
161 |
# Requires:
|
gabomdq@6674
|
162 |
# - PkgCheckModules
|
gabomdq@6674
|
163 |
# Optional:
|
icculus@11081
|
164 |
# - JACK_SHARED opt
|
icculus@11081
|
165 |
# - HAVE_DLOPEN opt
|
icculus@11081
|
166 |
macro(CheckJACK)
|
icculus@11081
|
167 |
if(JACK)
|
icculus@11081
|
168 |
pkg_check_modules(PKG_JACK jack)
|
icculus@11081
|
169 |
if(PKG_JACK_FOUND)
|
icculus@11081
|
170 |
set(HAVE_JACK TRUE)
|
icculus@11081
|
171 |
file(GLOB JACK_SOURCES ${SDL2_SOURCE_DIR}/src/audio/jack/*.c)
|
icculus@11081
|
172 |
set(SOURCE_FILES ${SOURCE_FILES} ${JACK_SOURCES})
|
icculus@11081
|
173 |
set(SDL_AUDIO_DRIVER_JACK 1)
|
icculus@11081
|
174 |
list(APPEND EXTRA_CFLAGS ${PKG_JACK_CFLAGS})
|
icculus@11081
|
175 |
if(JACK_SHARED)
|
icculus@11081
|
176 |
if(NOT HAVE_DLOPEN)
|
icculus@11081
|
177 |
message_warn("You must have SDL_LoadObject() support for dynamic JACK audio loading")
|
icculus@11081
|
178 |
else()
|
icculus@11081
|
179 |
FindLibraryAndSONAME("jack")
|
icculus@11081
|
180 |
set(SDL_AUDIO_DRIVER_JACK_DYNAMIC "\"${JACK_LIB_SONAME}\"")
|
icculus@11081
|
181 |
set(HAVE_JACK_SHARED TRUE)
|
icculus@11081
|
182 |
endif()
|
icculus@11081
|
183 |
else()
|
icculus@11081
|
184 |
list(APPEND EXTRA_LDFLAGS ${PKG_JACK_LDFLAGS})
|
icculus@11081
|
185 |
endif()
|
icculus@11081
|
186 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@11081
|
187 |
endif()
|
icculus@11081
|
188 |
endif()
|
icculus@11081
|
189 |
endmacro()
|
icculus@11081
|
190 |
|
icculus@11081
|
191 |
# Requires:
|
icculus@11081
|
192 |
# - PkgCheckModules
|
icculus@11081
|
193 |
# Optional:
|
gabomdq@6674
|
194 |
# - ESD_SHARED opt
|
gabomdq@6674
|
195 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
196 |
macro(CheckESD)
|
gabomdq@6674
|
197 |
if(ESD)
|
gabomdq@6674
|
198 |
pkg_check_modules(PKG_ESD esound)
|
gabomdq@6674
|
199 |
if(PKG_ESD_FOUND)
|
gabomdq@6674
|
200 |
set(HAVE_ESD TRUE)
|
gabomdq@6674
|
201 |
file(GLOB ESD_SOURCES ${SDL2_SOURCE_DIR}/src/audio/esd/*.c)
|
gabomdq@6674
|
202 |
set(SOURCE_FILES ${SOURCE_FILES} ${ESD_SOURCES})
|
gabomdq@6674
|
203 |
set(SDL_AUDIO_DRIVER_ESD 1)
|
gabomdq@6674
|
204 |
list(APPEND EXTRA_CFLAGS ${PKG_ESD_CFLAGS})
|
gabomdq@6674
|
205 |
if(ESD_SHARED)
|
gabomdq@6674
|
206 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
207 |
message_warn("You must have SDL_LoadObject() support for dynamic ESD loading")
|
gabomdq@6674
|
208 |
else()
|
icculus@8017
|
209 |
FindLibraryAndSONAME(esd)
|
icculus@8017
|
210 |
set(SDL_AUDIO_DRIVER_ESD_DYNAMIC "\"${ESD_LIB_SONAME}\"")
|
gabomdq@6674
|
211 |
set(HAVE_ESD_SHARED TRUE)
|
icculus@9277
|
212 |
endif()
|
icculus@9277
|
213 |
else()
|
gabomdq@6674
|
214 |
list(APPEND EXTRA_LDFLAGS ${PKG_ESD_LDFLAGS})
|
icculus@9277
|
215 |
endif()
|
gabomdq@6674
|
216 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
217 |
endif()
|
icculus@9277
|
218 |
endif()
|
icculus@9277
|
219 |
endmacro()
|
gabomdq@6674
|
220 |
|
gabomdq@6674
|
221 |
# Requires:
|
gabomdq@6674
|
222 |
# - n/a
|
gabomdq@6674
|
223 |
# Optional:
|
gabomdq@6674
|
224 |
# - ARTS_SHARED opt
|
gabomdq@6674
|
225 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
226 |
macro(CheckARTS)
|
gabomdq@6674
|
227 |
if(ARTS)
|
gabomdq@6674
|
228 |
find_program(ARTS_CONFIG arts-config)
|
gabomdq@6674
|
229 |
if(ARTS_CONFIG)
|
gabomdq@6674
|
230 |
execute_process(CMD_ARTSCFLAGS ${ARTS_CONFIG} --cflags
|
gabomdq@6674
|
231 |
OUTPUT_VARIABLE ARTS_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
gabomdq@6674
|
232 |
list(APPEND EXTRA_CFLAGS ${ARTS_CFLAGS})
|
gabomdq@6674
|
233 |
execute_process(CMD_ARTSLIBS ${ARTS_CONFIG} --libs
|
gabomdq@6674
|
234 |
OUTPUT_VARIABLE ARTS_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
|
gabomdq@6674
|
235 |
file(GLOB ARTS_SOURCES ${SDL2_SOURCE_DIR}/src/audio/arts/*.c)
|
gabomdq@6674
|
236 |
set(SOURCE_FILES ${SOURCE_FILES} ${ARTS_SOURCES})
|
gabomdq@6674
|
237 |
set(SDL_AUDIO_DRIVER_ARTS 1)
|
gabomdq@6674
|
238 |
set(HAVE_ARTS TRUE)
|
gabomdq@6674
|
239 |
if(ARTS_SHARED)
|
gabomdq@6674
|
240 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
241 |
message_warn("You must have SDL_LoadObject() support for dynamic ARTS loading")
|
gabomdq@6674
|
242 |
else()
|
gabomdq@6674
|
243 |
# TODO
|
icculus@8017
|
244 |
FindLibraryAndSONAME(artsc)
|
icculus@8017
|
245 |
set(SDL_AUDIO_DRIVER_ARTS_DYNAMIC "\"${ARTSC_LIB_SONAME}\"")
|
gabomdq@6674
|
246 |
set(HAVE_ARTS_SHARED TRUE)
|
icculus@9277
|
247 |
endif()
|
icculus@9277
|
248 |
else()
|
gabomdq@6674
|
249 |
list(APPEND EXTRA_LDFLAGS ${ARTS_LIBS})
|
icculus@9277
|
250 |
endif()
|
gabomdq@6674
|
251 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
252 |
endif()
|
icculus@9277
|
253 |
endif()
|
icculus@9277
|
254 |
endmacro()
|
gabomdq@6674
|
255 |
|
gabomdq@6674
|
256 |
# Requires:
|
gabomdq@6674
|
257 |
# - n/a
|
gabomdq@6674
|
258 |
# Optional:
|
gabomdq@6674
|
259 |
# - NAS_SHARED opt
|
gabomdq@6674
|
260 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
261 |
macro(CheckNAS)
|
gabomdq@6674
|
262 |
if(NAS)
|
gabomdq@6674
|
263 |
# TODO: set include paths properly, so the NAS headers are found
|
gabomdq@6674
|
264 |
check_include_file(audio/audiolib.h HAVE_NAS_H)
|
gabomdq@6674
|
265 |
find_library(D_NAS_LIB audio)
|
gabomdq@6674
|
266 |
if(HAVE_NAS_H AND D_NAS_LIB)
|
gabomdq@6674
|
267 |
set(HAVE_NAS TRUE)
|
gabomdq@6674
|
268 |
file(GLOB NAS_SOURCES ${SDL2_SOURCE_DIR}/src/audio/nas/*.c)
|
gabomdq@6674
|
269 |
set(SOURCE_FILES ${SOURCE_FILES} ${NAS_SOURCES})
|
gabomdq@6674
|
270 |
set(SDL_AUDIO_DRIVER_NAS 1)
|
gabomdq@6674
|
271 |
if(NAS_SHARED)
|
gabomdq@6674
|
272 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
273 |
message_warn("You must have SDL_LoadObject() support for dynamic NAS loading")
|
gabomdq@6674
|
274 |
else()
|
icculus@8017
|
275 |
FindLibraryAndSONAME("audio")
|
icculus@8017
|
276 |
set(SDL_AUDIO_DRIVER_NAS_DYNAMIC "\"${AUDIO_LIB_SONAME}\"")
|
gabomdq@6674
|
277 |
set(HAVE_NAS_SHARED TRUE)
|
icculus@9277
|
278 |
endif()
|
icculus@9277
|
279 |
else()
|
gabomdq@6674
|
280 |
list(APPEND EXTRA_LIBS ${D_NAS_LIB})
|
icculus@9277
|
281 |
endif()
|
gabomdq@6674
|
282 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
283 |
endif()
|
icculus@9277
|
284 |
endif()
|
icculus@9277
|
285 |
endmacro()
|
gabomdq@6674
|
286 |
|
gabomdq@6674
|
287 |
# Requires:
|
icculus@7367
|
288 |
# - n/a
|
icculus@7367
|
289 |
# Optional:
|
icculus@7367
|
290 |
# - SNDIO_SHARED opt
|
icculus@7367
|
291 |
# - HAVE_DLOPEN opt
|
icculus@7367
|
292 |
macro(CheckSNDIO)
|
icculus@7367
|
293 |
if(SNDIO)
|
icculus@7367
|
294 |
# TODO: set include paths properly, so the sndio headers are found
|
icculus@7367
|
295 |
check_include_file(sndio.h HAVE_SNDIO_H)
|
icculus@8017
|
296 |
find_library(D_SNDIO_LIB sndio)
|
icculus@7367
|
297 |
if(HAVE_SNDIO_H AND D_SNDIO_LIB)
|
icculus@7367
|
298 |
set(HAVE_SNDIO TRUE)
|
icculus@7367
|
299 |
file(GLOB SNDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sndio/*.c)
|
icculus@7367
|
300 |
set(SOURCE_FILES ${SOURCE_FILES} ${SNDIO_SOURCES})
|
icculus@7367
|
301 |
set(SDL_AUDIO_DRIVER_SNDIO 1)
|
icculus@7367
|
302 |
if(SNDIO_SHARED)
|
icculus@7367
|
303 |
if(NOT HAVE_DLOPEN)
|
icculus@7367
|
304 |
message_warn("You must have SDL_LoadObject() support for dynamic sndio loading")
|
icculus@7367
|
305 |
else()
|
icculus@8017
|
306 |
FindLibraryAndSONAME("sndio")
|
icculus@8017
|
307 |
set(SDL_AUDIO_DRIVER_SNDIO_DYNAMIC "\"${SNDIO_LIB_SONAME}\"")
|
icculus@7367
|
308 |
set(HAVE_SNDIO_SHARED TRUE)
|
icculus@9277
|
309 |
endif()
|
icculus@9277
|
310 |
else()
|
icculus@7367
|
311 |
list(APPEND EXTRA_LIBS ${D_SNDIO_LIB})
|
icculus@9277
|
312 |
endif()
|
icculus@7367
|
313 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
314 |
endif()
|
icculus@9277
|
315 |
endif()
|
icculus@9277
|
316 |
endmacro()
|
icculus@7367
|
317 |
|
icculus@7367
|
318 |
# Requires:
|
gabomdq@6674
|
319 |
# - PkgCheckModules
|
gabomdq@6674
|
320 |
# Optional:
|
gabomdq@6674
|
321 |
# - FUSIONSOUND_SHARED opt
|
gabomdq@6674
|
322 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
323 |
macro(CheckFusionSound)
|
gabomdq@6674
|
324 |
if(FUSIONSOUND)
|
gabomdq@6674
|
325 |
pkg_check_modules(PKG_FUSIONSOUND fusionsound>=1.0.0)
|
gabomdq@6674
|
326 |
if(PKG_FUSIONSOUND_FOUND)
|
gabomdq@6674
|
327 |
set(HAVE_FUSIONSOUND TRUE)
|
gabomdq@6674
|
328 |
file(GLOB FUSIONSOUND_SOURCES ${SDL2_SOURCE_DIR}/src/audio/fusionsound/*.c)
|
gabomdq@6674
|
329 |
set(SOURCE_FILES ${SOURCE_FILES} ${FUSIONSOUND_SOURCES})
|
gabomdq@6674
|
330 |
set(SDL_AUDIO_DRIVER_FUSIONSOUND 1)
|
gabomdq@6674
|
331 |
list(APPEND EXTRA_CFLAGS ${PKG_FUSIONSOUND_CFLAGS})
|
gabomdq@6674
|
332 |
if(FUSIONSOUND_SHARED)
|
gabomdq@6674
|
333 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
334 |
message_warn("You must have SDL_LoadObject() support for dynamic FusionSound loading")
|
gabomdq@6674
|
335 |
else()
|
icculus@8017
|
336 |
FindLibraryAndSONAME("fusionsound")
|
icculus@8017
|
337 |
set(SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC "\"${FUSIONSOUND_LIB_SONAME}\"")
|
gabomdq@6674
|
338 |
set(HAVE_FUSIONSOUND_SHARED TRUE)
|
icculus@9277
|
339 |
endif()
|
icculus@9277
|
340 |
else()
|
gabomdq@6674
|
341 |
list(APPEND EXTRA_LDFLAGS ${PKG_FUSIONSOUND_LDFLAGS})
|
icculus@9277
|
342 |
endif()
|
gabomdq@6674
|
343 |
set(HAVE_SDL_AUDIO TRUE)
|
icculus@9277
|
344 |
endif()
|
icculus@9277
|
345 |
endif()
|
icculus@9277
|
346 |
endmacro()
|
gabomdq@6674
|
347 |
|
gabomdq@6674
|
348 |
# Requires:
|
slouken@10777
|
349 |
# - LIBSAMPLERATE
|
slouken@10777
|
350 |
# Optional:
|
slouken@10777
|
351 |
# - LIBSAMPLERATE_SHARED opt
|
slouken@10777
|
352 |
# - HAVE_DLOPEN opt
|
slouken@10777
|
353 |
macro(CheckLibSampleRate)
|
slouken@10777
|
354 |
if(LIBSAMPLERATE)
|
slouken@10777
|
355 |
check_include_file(samplerate.h HAVE_LIBSAMPLERATE_H)
|
slouken@10777
|
356 |
if(HAVE_LIBSAMPLERATE_H)
|
slouken@10777
|
357 |
if(LIBSAMPLERATE_SHARED)
|
slouken@10777
|
358 |
if(NOT HAVE_DLOPEN)
|
slouken@10777
|
359 |
message_warn("You must have SDL_LoadObject() support for dynamic libsamplerate loading")
|
slouken@10777
|
360 |
else()
|
slouken@10777
|
361 |
FindLibraryAndSONAME("samplerate")
|
slouken@10777
|
362 |
set(SDL_LIBSAMPLERATE_DYNAMIC "\"${SAMPLERATE_LIB_SONAME}\"")
|
slouken@10777
|
363 |
endif()
|
slouken@10777
|
364 |
else()
|
slouken@10777
|
365 |
list(APPEND EXTRA_LDFLAGS -lsamplerate)
|
slouken@10777
|
366 |
endif()
|
slouken@10777
|
367 |
endif()
|
slouken@10777
|
368 |
endif()
|
slouken@10777
|
369 |
endmacro()
|
slouken@10777
|
370 |
|
slouken@10777
|
371 |
# Requires:
|
gabomdq@6674
|
372 |
# - n/a
|
gabomdq@6674
|
373 |
# Optional:
|
gabomdq@6674
|
374 |
# - X11_SHARED opt
|
gabomdq@6674
|
375 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
376 |
macro(CheckX11)
|
gabomdq@6674
|
377 |
if(VIDEO_X11)
|
gabomdq@6674
|
378 |
foreach(_LIB X11 Xext Xcursor Xinerama Xi Xrandr Xrender Xss Xxf86vm)
|
icculus@8017
|
379 |
FindLibraryAndSONAME("${_LIB}")
|
gabomdq@6674
|
380 |
endforeach()
|
gabomdq@6674
|
381 |
|
slouken@7835
|
382 |
find_path(X_INCLUDEDIR X11/Xlib.h)
|
slouken@7835
|
383 |
if(X_INCLUDEDIR)
|
slouken@7835
|
384 |
set(X_CFLAGS "-I${X_INCLUDEDIR}")
|
slouken@7835
|
385 |
endif()
|
slouken@7835
|
386 |
|
gabomdq@6674
|
387 |
check_include_file(X11/Xcursor/Xcursor.h HAVE_XCURSOR_H)
|
gabomdq@6674
|
388 |
check_include_file(X11/extensions/Xinerama.h HAVE_XINERAMA_H)
|
gabomdq@6674
|
389 |
check_include_file(X11/extensions/XInput2.h HAVE_XINPUT_H)
|
gabomdq@6674
|
390 |
check_include_file(X11/extensions/Xrandr.h HAVE_XRANDR_H)
|
gabomdq@6674
|
391 |
check_include_file(X11/extensions/Xrender.h HAVE_XRENDER_H)
|
gabomdq@6674
|
392 |
check_include_file(X11/extensions/scrnsaver.h HAVE_XSS_H)
|
gabomdq@6674
|
393 |
check_include_file(X11/extensions/shape.h HAVE_XSHAPE_H)
|
gabomdq@6674
|
394 |
check_include_files("X11/Xlib.h;X11/extensions/xf86vmode.h" HAVE_XF86VM_H)
|
icculus@7438
|
395 |
check_include_files("X11/Xlib.h;X11/Xproto.h;X11/extensions/Xext.h" HAVE_XEXT_H)
|
gabomdq@6674
|
396 |
|
gabomdq@6674
|
397 |
if(X11_LIB)
|
icculus@7438
|
398 |
if(NOT HAVE_XEXT_H)
|
icculus@7438
|
399 |
message_error("Missing Xext.h, maybe you need to install the libxext-dev package?")
|
icculus@7438
|
400 |
endif()
|
icculus@7438
|
401 |
|
gabomdq@6674
|
402 |
set(HAVE_VIDEO_X11 TRUE)
|
gabomdq@6674
|
403 |
set(HAVE_SDL_VIDEO TRUE)
|
gabomdq@6674
|
404 |
|
gabomdq@6674
|
405 |
file(GLOB X11_SOURCES ${SDL2_SOURCE_DIR}/src/video/x11/*.c)
|
gabomdq@6674
|
406 |
set(SOURCE_FILES ${SOURCE_FILES} ${X11_SOURCES})
|
gabomdq@6674
|
407 |
set(SDL_VIDEO_DRIVER_X11 1)
|
gabomdq@6674
|
408 |
|
gabomdq@6674
|
409 |
if(APPLE)
|
gabomdq@6674
|
410 |
set(X11_SHARED OFF)
|
icculus@9277
|
411 |
endif()
|
gabomdq@6674
|
412 |
|
gabomdq@6674
|
413 |
check_function_exists("shmat" HAVE_SHMAT)
|
gabomdq@6674
|
414 |
if(NOT HAVE_SHMAT)
|
gabomdq@6674
|
415 |
check_library_exists(ipc shmat "" HAVE_SHMAT)
|
gabomdq@6674
|
416 |
if(HAVE_SHMAT)
|
gabomdq@6674
|
417 |
list(APPEND EXTRA_LIBS ipc)
|
icculus@9277
|
418 |
endif()
|
gabomdq@6674
|
419 |
if(NOT HAVE_SHMAT)
|
gabomdq@6674
|
420 |
add_definitions(-DNO_SHARED_MEMORY)
|
slouken@7835
|
421 |
set(X_CFLAGS "${X_CFLAGS} -DNO_SHARED_MEMORY")
|
icculus@9277
|
422 |
endif()
|
icculus@9277
|
423 |
endif()
|
gabomdq@6674
|
424 |
|
gabomdq@6674
|
425 |
if(X11_SHARED)
|
gabomdq@6674
|
426 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
427 |
message_warn("You must have SDL_LoadObject() support for dynamic X11 loading")
|
gabomdq@6674
|
428 |
set(HAVE_X11_SHARED FALSE)
|
icculus@9277
|
429 |
else()
|
gabomdq@6674
|
430 |
set(HAVE_X11_SHARED TRUE)
|
gabomdq@6674
|
431 |
endif()
|
gabomdq@6674
|
432 |
if(HAVE_X11_SHARED)
|
icculus@8017
|
433 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC "\"${X11_LIB_SONAME}\"")
|
icculus@8017
|
434 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "\"${XEXT_LIB_SONAME}\"")
|
icculus@9277
|
435 |
else()
|
gabomdq@6674
|
436 |
list(APPEND EXTRA_LIBS ${X11_LIB} ${XEXT_LIB})
|
icculus@9277
|
437 |
endif()
|
icculus@9277
|
438 |
endif()
|
gabomdq@6674
|
439 |
|
slouken@7835
|
440 |
set(SDL_CFLAGS "${SDL_CFLAGS} ${X_CFLAGS}")
|
slouken@7835
|
441 |
|
gabomdq@6674
|
442 |
set(CMAKE_REQUIRED_LIBRARIES ${X11_LIB} ${X11_LIB})
|
gabomdq@6674
|
443 |
check_c_source_compiles("
|
gabomdq@6674
|
444 |
#include <X11/Xlib.h>
|
gabomdq@6674
|
445 |
#include <X11/Xproto.h>
|
gabomdq@6674
|
446 |
#include <X11/extensions/Xext.h>
|
gabomdq@6674
|
447 |
#include <X11/extensions/extutil.h>
|
gabomdq@6674
|
448 |
extern XExtDisplayInfo* XextAddDisplay(XExtensionInfo* a,Display* b,_Xconst char* c,XExtensionHooks* d,int e,XPointer f);
|
gabomdq@6674
|
449 |
int main(int argc, char **argv) {}" HAVE_CONST_XEXT_ADDDISPLAY)
|
gabomdq@6674
|
450 |
if(HAVE_CONST_XEXT_ADDDISPLAY)
|
gabomdq@6674
|
451 |
set(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1)
|
icculus@9277
|
452 |
endif()
|
gabomdq@6674
|
453 |
|
gabomdq@6674
|
454 |
check_c_source_compiles("
|
gabomdq@6674
|
455 |
#include <X11/Xlib.h>
|
gabomdq@6674
|
456 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
457 |
Display *display;
|
gabomdq@6674
|
458 |
XEvent event;
|
gabomdq@6674
|
459 |
XGenericEventCookie *cookie = &event.xcookie;
|
gabomdq@6674
|
460 |
XNextEvent(display, &event);
|
gabomdq@6674
|
461 |
XGetEventData(display, cookie);
|
gabomdq@6674
|
462 |
XFreeEventData(display, cookie); }" HAVE_XGENERICEVENT)
|
gabomdq@6674
|
463 |
if(HAVE_XGENERICEVENT)
|
gabomdq@6674
|
464 |
set(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1)
|
icculus@9277
|
465 |
endif()
|
gabomdq@6674
|
466 |
|
gabomdq@6674
|
467 |
check_function_exists(XkbKeycodeToKeysym SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM)
|
gabomdq@6674
|
468 |
|
gabomdq@6674
|
469 |
if(VIDEO_X11_XCURSOR AND HAVE_XCURSOR_H)
|
gabomdq@6674
|
470 |
set(HAVE_VIDEO_X11_XCURSOR TRUE)
|
gabomdq@6674
|
471 |
if(HAVE_X11_SHARED AND XCURSOR_LIB)
|
icculus@8017
|
472 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR "\"${XCURSOR_LIB_SONAME}\"")
|
icculus@9277
|
473 |
else()
|
gabomdq@6674
|
474 |
list(APPEND EXTRA_LIBS ${XCURSOR_LIB})
|
icculus@9277
|
475 |
endif()
|
gabomdq@6674
|
476 |
set(SDL_VIDEO_DRIVER_X11_XCURSOR 1)
|
icculus@9277
|
477 |
endif()
|
gabomdq@6674
|
478 |
|
gabomdq@6674
|
479 |
if(VIDEO_X11_XINERAMA AND HAVE_XINERAMA_H)
|
gabomdq@6674
|
480 |
set(HAVE_VIDEO_X11_XINERAMA TRUE)
|
gabomdq@6674
|
481 |
if(HAVE_X11_SHARED AND XINERAMA_LIB)
|
icculus@8017
|
482 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "\"${XINERAMA_LIB_SONAME}\"")
|
icculus@9277
|
483 |
else()
|
gabomdq@6674
|
484 |
list(APPEND EXTRA_LIBS ${XINERAMA_LIB})
|
icculus@9277
|
485 |
endif()
|
gabomdq@6674
|
486 |
set(SDL_VIDEO_DRIVER_X11_XINERAMA 1)
|
icculus@9277
|
487 |
endif()
|
gabomdq@6674
|
488 |
|
gabomdq@6674
|
489 |
if(VIDEO_X11_XINPUT AND HAVE_XINPUT_H)
|
gabomdq@6674
|
490 |
set(HAVE_VIDEO_X11_XINPUT TRUE)
|
gabomdq@6674
|
491 |
if(HAVE_X11_SHARED AND XI_LIB)
|
icculus@8017
|
492 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "\"${XI_LIB_SONAME}\"")
|
icculus@9277
|
493 |
else()
|
gabomdq@6674
|
494 |
list(APPEND EXTRA_LIBS ${XI_LIB})
|
icculus@9277
|
495 |
endif()
|
gabomdq@6674
|
496 |
set(SDL_VIDEO_DRIVER_X11_XINPUT2 1)
|
gabomdq@6674
|
497 |
|
gabomdq@6674
|
498 |
# Check for multitouch
|
gabomdq@6674
|
499 |
check_c_source_compiles("
|
gabomdq@6674
|
500 |
#include <X11/Xlib.h>
|
gabomdq@6674
|
501 |
#include <X11/Xproto.h>
|
gabomdq@6674
|
502 |
#include <X11/extensions/XInput2.h>
|
gabomdq@6674
|
503 |
int event_type = XI_TouchBegin;
|
gabomdq@6674
|
504 |
XITouchClassInfo *t;
|
gabomdq@6674
|
505 |
Status XIAllowTouchEvents(Display *a,int b,unsigned int c,Window d,int f)
|
gabomdq@6674
|
506 |
{
|
gabomdq@6674
|
507 |
return (Status)0;
|
gabomdq@6674
|
508 |
}
|
gabomdq@6674
|
509 |
int main(int argc, char **argv) {}" HAVE_XINPUT2_MULTITOUCH)
|
gabomdq@6674
|
510 |
if(HAVE_XINPUT2_MULTITOUCH)
|
gabomdq@6674
|
511 |
set(SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH 1)
|
icculus@9277
|
512 |
endif()
|
icculus@9277
|
513 |
endif()
|
gabomdq@6674
|
514 |
|
gabomdq@6674
|
515 |
if(VIDEO_X11_XRANDR AND HAVE_XRANDR_H)
|
gabomdq@6674
|
516 |
if(HAVE_X11_SHARED AND XRANDR_LIB)
|
icculus@8017
|
517 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "\"${XRANDR_LIB_SONAME}\"")
|
icculus@9277
|
518 |
else()
|
gabomdq@6674
|
519 |
list(APPEND EXTRA_LIBS ${XRANDR_LIB})
|
icculus@9277
|
520 |
endif()
|
gabomdq@6674
|
521 |
set(SDL_VIDEO_DRIVER_X11_XRANDR 1)
|
gabomdq@6674
|
522 |
set(HAVE_VIDEO_X11_XRANDR TRUE)
|
icculus@9277
|
523 |
endif()
|
gabomdq@6674
|
524 |
|
gabomdq@6674
|
525 |
if(VIDEO_X11_XSCRNSAVER AND HAVE_XSS_H)
|
gabomdq@6674
|
526 |
if(HAVE_X11_SHARED AND XSS_LIB)
|
icculus@8017
|
527 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "\"${XSS_LIB_SONAME}\"")
|
icculus@9277
|
528 |
else()
|
gabomdq@6674
|
529 |
list(APPEND EXTRA_LIBS ${XSS_LIB})
|
icculus@9277
|
530 |
endif()
|
gabomdq@6674
|
531 |
set(SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1)
|
gabomdq@6674
|
532 |
set(HAVE_VIDEO_X11_XSCRNSAVER TRUE)
|
icculus@9277
|
533 |
endif()
|
gabomdq@6674
|
534 |
|
gabomdq@6674
|
535 |
if(VIDEO_X11_XSHAPE AND HAVE_XSHAPE_H)
|
gabomdq@6674
|
536 |
set(SDL_VIDEO_DRIVER_X11_XSHAPE 1)
|
gabomdq@6674
|
537 |
set(HAVE_VIDEO_X11_XSHAPE TRUE)
|
icculus@9277
|
538 |
endif()
|
gabomdq@6674
|
539 |
|
gabomdq@6674
|
540 |
if(VIDEO_X11_XVM AND HAVE_XF86VM_H)
|
icculus@8120
|
541 |
if(HAVE_X11_SHARED AND XXF86VM_LIB)
|
icculus@8120
|
542 |
set(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "\"${XXF86VM_LIB_SONAME}\"")
|
icculus@9277
|
543 |
else()
|
icculus@8120
|
544 |
list(APPEND EXTRA_LIBS ${XXF86VM_LIB})
|
icculus@9277
|
545 |
endif()
|
gabomdq@6674
|
546 |
set(SDL_VIDEO_DRIVER_X11_XVIDMODE 1)
|
gabomdq@6674
|
547 |
set(HAVE_VIDEO_X11_XVM TRUE)
|
icculus@9277
|
548 |
endif()
|
gabomdq@6674
|
549 |
|
gabomdq@6674
|
550 |
set(CMAKE_REQUIRED_LIBRARIES)
|
icculus@9277
|
551 |
endif()
|
icculus@9277
|
552 |
endif()
|
icculus@9277
|
553 |
endmacro()
|
gabomdq@6674
|
554 |
|
icculus@9409
|
555 |
# Requires:
|
icculus@9409
|
556 |
# - EGL
|
icculus@9409
|
557 |
# - PkgCheckModules
|
icculus@9409
|
558 |
# Optional:
|
icculus@9409
|
559 |
# - MIR_SHARED opt
|
icculus@9409
|
560 |
# - HAVE_DLOPEN opt
|
icculus@8153
|
561 |
macro(CheckMir)
|
icculus@8153
|
562 |
if(VIDEO_MIR)
|
icculus@8153
|
563 |
find_library(MIR_LIB mirclient mircommon egl)
|
slouken@11209
|
564 |
pkg_check_modules(MIR_TOOLKIT mirclient>=0.26 mircommon)
|
icculus@8153
|
565 |
pkg_check_modules(EGL egl)
|
icculus@8153
|
566 |
pkg_check_modules(XKB xkbcommon)
|
icculus@8153
|
567 |
|
icculus@8153
|
568 |
if (MIR_LIB AND MIR_TOOLKIT_FOUND AND EGL_FOUND AND XKB_FOUND)
|
icculus@8153
|
569 |
set(HAVE_VIDEO_MIR TRUE)
|
icculus@8153
|
570 |
set(HAVE_SDL_VIDEO TRUE)
|
icculus@8153
|
571 |
|
icculus@8153
|
572 |
file(GLOB MIR_SOURCES ${SDL2_SOURCE_DIR}/src/video/mir/*.c)
|
icculus@8153
|
573 |
set(SOURCE_FILES ${SOURCE_FILES} ${MIR_SOURCES})
|
icculus@8153
|
574 |
set(SDL_VIDEO_DRIVER_MIR 1)
|
icculus@8153
|
575 |
|
slouken@11209
|
576 |
list(APPEND EXTRA_CFLAGS ${MIR_TOOLKIT_CFLAGS} ${EGL_CFLAGS} ${XKB_CFLAGS})
|
icculus@9409
|
577 |
|
icculus@9409
|
578 |
if(MIR_SHARED)
|
icculus@9409
|
579 |
if(NOT HAVE_DLOPEN)
|
icculus@9409
|
580 |
message_warn("You must have SDL_LoadObject() support for dynamic Mir loading")
|
icculus@9409
|
581 |
else()
|
icculus@9409
|
582 |
FindLibraryAndSONAME(mirclient)
|
icculus@9409
|
583 |
FindLibraryAndSONAME(xkbcommon)
|
icculus@9409
|
584 |
set(SDL_VIDEO_DRIVER_MIR_DYNAMIC "\"${MIRCLIENT_LIB_SONAME}\"")
|
icculus@9409
|
585 |
set(SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON "\"${XKBCOMMON_LIB_SONAME}\"")
|
icculus@9409
|
586 |
set(HAVE_MIR_SHARED TRUE)
|
icculus@9409
|
587 |
endif()
|
icculus@9409
|
588 |
else()
|
icculus@9409
|
589 |
set(EXTRA_LIBS ${MIR_TOOLKIT_LIBRARIES} ${EXTRA_LIBS})
|
icculus@9409
|
590 |
endif()
|
icculus@9409
|
591 |
endif()
|
icculus@9277
|
592 |
endif()
|
icculus@9277
|
593 |
endmacro()
|
icculus@8153
|
594 |
|
icculus@10511
|
595 |
macro(WaylandProtocolGen _SCANNER _XML _PROTL)
|
icculus@10511
|
596 |
set(_WAYLAND_PROT_C_CODE "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols/${_PROTL}-protocol.c")
|
icculus@10511
|
597 |
set(_WAYLAND_PROT_H_CODE "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols/${_PROTL}-client-protocol.h")
|
icculus@10511
|
598 |
|
icculus@10511
|
599 |
add_custom_command(
|
icculus@10511
|
600 |
OUTPUT "${_WAYLAND_PROT_H_CODE}"
|
icculus@10511
|
601 |
DEPENDS "${_XML}"
|
icculus@10511
|
602 |
COMMAND "${_SCANNER}"
|
icculus@10511
|
603 |
ARGS client-header "${_XML}" "${_WAYLAND_PROT_H_CODE}"
|
icculus@10511
|
604 |
)
|
icculus@10511
|
605 |
|
icculus@10511
|
606 |
add_custom_command(
|
icculus@10511
|
607 |
OUTPUT "${_WAYLAND_PROT_C_CODE}"
|
icculus@10511
|
608 |
DEPENDS "${_WAYLAND_PROT_H_CODE}"
|
icculus@10511
|
609 |
COMMAND "${_SCANNER}"
|
icculus@10511
|
610 |
ARGS code "${_XML}" "${_WAYLAND_PROT_C_CODE}"
|
icculus@10511
|
611 |
)
|
icculus@10511
|
612 |
|
icculus@10511
|
613 |
set(SOURCE_FILES ${SOURCE_FILES} "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols/${_PROTL}-protocol.c")
|
icculus@10511
|
614 |
endmacro()
|
icculus@10511
|
615 |
|
gabomdq@6674
|
616 |
# Requires:
|
gabomdq@8062
|
617 |
# - EGL
|
icculus@9409
|
618 |
# - PkgCheckModules
|
icculus@9409
|
619 |
# Optional:
|
icculus@9409
|
620 |
# - WAYLAND_SHARED opt
|
icculus@9409
|
621 |
# - HAVE_DLOPEN opt
|
gabomdq@8062
|
622 |
macro(CheckWayland)
|
gabomdq@8062
|
623 |
if(VIDEO_WAYLAND)
|
icculus@10511
|
624 |
pkg_check_modules(WAYLAND wayland-client wayland-scanner wayland-protocols wayland-egl wayland-cursor egl xkbcommon)
|
icculus@10511
|
625 |
|
icculus@10511
|
626 |
# We have to generate some protocol interface code for some various Wayland features.
|
icculus@10511
|
627 |
if(WAYLAND_FOUND)
|
icculus@10511
|
628 |
execute_process(
|
icculus@10511
|
629 |
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=pkgdatadir wayland-client
|
icculus@10511
|
630 |
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
icculus@10511
|
631 |
RESULT_VARIABLE WAYLAND_CORE_PROTOCOL_DIR_RC
|
icculus@10511
|
632 |
OUTPUT_VARIABLE WAYLAND_CORE_PROTOCOL_DIR
|
icculus@10511
|
633 |
ERROR_QUIET
|
icculus@10511
|
634 |
OUTPUT_STRIP_TRAILING_WHITESPACE
|
icculus@10511
|
635 |
)
|
icculus@10511
|
636 |
if(NOT WAYLAND_CORE_PROTOCOL_DIR_RC EQUAL 0)
|
icculus@10511
|
637 |
set(WAYLAND_FOUND FALSE)
|
icculus@10511
|
638 |
endif()
|
icculus@10511
|
639 |
endif()
|
icculus@10511
|
640 |
|
icculus@10511
|
641 |
if(WAYLAND_FOUND)
|
icculus@10511
|
642 |
execute_process(
|
icculus@10511
|
643 |
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=pkgdatadir wayland-protocols
|
icculus@10511
|
644 |
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
icculus@10511
|
645 |
RESULT_VARIABLE WAYLAND_PROTOCOLS_DIR_RC
|
icculus@10511
|
646 |
OUTPUT_VARIABLE WAYLAND_PROTOCOLS_DIR
|
icculus@10511
|
647 |
ERROR_QUIET
|
icculus@10511
|
648 |
OUTPUT_STRIP_TRAILING_WHITESPACE
|
icculus@10511
|
649 |
)
|
icculus@10511
|
650 |
if(NOT WAYLAND_PROTOCOLS_DIR_RC EQUAL 0)
|
icculus@10511
|
651 |
set(WAYLAND_FOUND FALSE)
|
icculus@10511
|
652 |
endif()
|
icculus@10511
|
653 |
endif()
|
icculus@10511
|
654 |
|
icculus@10511
|
655 |
if(WAYLAND_FOUND)
|
icculus@10511
|
656 |
execute_process(
|
icculus@10511
|
657 |
COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=wayland_scanner wayland-scanner
|
icculus@10511
|
658 |
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
icculus@10511
|
659 |
RESULT_VARIABLE WAYLAND_SCANNER_RC
|
icculus@10511
|
660 |
OUTPUT_VARIABLE WAYLAND_SCANNER
|
icculus@10511
|
661 |
ERROR_QUIET
|
icculus@10511
|
662 |
OUTPUT_STRIP_TRAILING_WHITESPACE
|
icculus@10511
|
663 |
)
|
icculus@10511
|
664 |
if(NOT WAYLAND_SCANNER_RC EQUAL 0)
|
icculus@10511
|
665 |
set(WAYLAND_FOUND FALSE)
|
icculus@10511
|
666 |
endif()
|
icculus@10511
|
667 |
endif()
|
icculus@10511
|
668 |
|
gabomdq@8062
|
669 |
if(WAYLAND_FOUND)
|
gabomdq@8062
|
670 |
link_directories(
|
gabomdq@8062
|
671 |
${WAYLAND_LIBRARY_DIRS}
|
gabomdq@8062
|
672 |
)
|
gabomdq@8062
|
673 |
include_directories(
|
gabomdq@8062
|
674 |
${WAYLAND_INCLUDE_DIRS}
|
gabomdq@8062
|
675 |
)
|
gabomdq@8062
|
676 |
set(HAVE_VIDEO_WAYLAND TRUE)
|
gabomdq@8062
|
677 |
set(HAVE_SDL_VIDEO TRUE)
|
gabomdq@8062
|
678 |
|
gabomdq@8062
|
679 |
file(GLOB WAYLAND_SOURCES ${SDL2_SOURCE_DIR}/src/video/wayland/*.c)
|
gabomdq@8062
|
680 |
set(SOURCE_FILES ${SOURCE_FILES} ${WAYLAND_SOURCES})
|
icculus@9409
|
681 |
|
icculus@10511
|
682 |
# We have to generate some protocol interface code for some unstable Wayland features.
|
icculus@10511
|
683 |
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols")
|
icculus@10511
|
684 |
include_directories("${CMAKE_CURRENT_BINARY_DIR}/wayland-generated-protocols")
|
icculus@10511
|
685 |
|
icculus@10511
|
686 |
WaylandProtocolGen("${WAYLAND_SCANNER}" "${WAYLAND_CORE_PROTOCOL_DIR}/wayland.xml" "wayland")
|
icculus@10511
|
687 |
|
icculus@10511
|
688 |
foreach(_PROTL relative-pointer-unstable-v1 pointer-constraints-unstable-v1)
|
icculus@10511
|
689 |
string(REGEX REPLACE "\\-unstable\\-.*$" "" PROTSUBDIR ${_PROTL})
|
icculus@10511
|
690 |
WaylandProtocolGen("${WAYLAND_SCANNER}" "${WAYLAND_PROTOCOLS_DIR}/unstable/${PROTSUBDIR}/${_PROTL}.xml" "${_PROTL}")
|
icculus@10511
|
691 |
endforeach()
|
icculus@10511
|
692 |
|
icculus@9409
|
693 |
if(VIDEO_WAYLAND_QT_TOUCH)
|
icculus@9409
|
694 |
set(SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH 1)
|
icculus@9409
|
695 |
endif()
|
icculus@9409
|
696 |
|
icculus@9409
|
697 |
if(WAYLAND_SHARED)
|
icculus@9409
|
698 |
if(NOT HAVE_DLOPEN)
|
icculus@9409
|
699 |
message_warn("You must have SDL_LoadObject() support for dynamic Wayland loading")
|
icculus@9409
|
700 |
else()
|
icculus@9409
|
701 |
FindLibraryAndSONAME(wayland-client)
|
icculus@9409
|
702 |
FindLibraryAndSONAME(wayland-egl)
|
icculus@9409
|
703 |
FindLibraryAndSONAME(wayland-cursor)
|
icculus@9409
|
704 |
FindLibraryAndSONAME(xkbcommon)
|
icculus@9409
|
705 |
set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC "\"${WAYLAND_CLIENT_LIB_SONAME}\"")
|
icculus@9409
|
706 |
set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL "\"${WAYLAND_EGL_LIB_SONAME}\"")
|
icculus@9409
|
707 |
set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR "\"${WAYLAND_CURSOR_LIB_SONAME}\"")
|
icculus@9409
|
708 |
set(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON "\"${XKBCOMMON_LIB_SONAME}\"")
|
icculus@9409
|
709 |
set(HAVE_WAYLAND_SHARED TRUE)
|
icculus@9409
|
710 |
endif()
|
icculus@9409
|
711 |
else()
|
icculus@9409
|
712 |
set(EXTRA_LIBS ${WAYLAND_LIBRARIES} ${EXTRA_LIBS})
|
icculus@9409
|
713 |
endif()
|
icculus@9409
|
714 |
|
gabomdq@8062
|
715 |
set(SDL_VIDEO_DRIVER_WAYLAND 1)
|
icculus@9277
|
716 |
endif()
|
icculus@9277
|
717 |
endif()
|
icculus@9277
|
718 |
endmacro()
|
gabomdq@8062
|
719 |
|
gabomdq@8062
|
720 |
# Requires:
|
gabomdq@6674
|
721 |
# - n/a
|
gabomdq@6674
|
722 |
#
|
gabomdq@6674
|
723 |
macro(CheckCOCOA)
|
gabomdq@6674
|
724 |
if(VIDEO_COCOA)
|
icculus@8244
|
725 |
if(APPLE) # Apple always has Cocoa.
|
icculus@8244
|
726 |
set(HAVE_VIDEO_COCOA TRUE)
|
icculus@9277
|
727 |
endif()
|
gabomdq@6674
|
728 |
if(HAVE_VIDEO_COCOA)
|
gabomdq@6674
|
729 |
file(GLOB COCOA_SOURCES ${SDL2_SOURCE_DIR}/src/video/cocoa/*.m)
|
slouken@7182
|
730 |
set_source_files_properties(${COCOA_SOURCES} PROPERTIES LANGUAGE C)
|
gabomdq@6674
|
731 |
set(SOURCE_FILES ${SOURCE_FILES} ${COCOA_SOURCES})
|
gabomdq@6674
|
732 |
set(SDL_VIDEO_DRIVER_COCOA 1)
|
gabomdq@6674
|
733 |
set(HAVE_SDL_VIDEO TRUE)
|
icculus@9277
|
734 |
endif()
|
icculus@9277
|
735 |
endif()
|
icculus@9277
|
736 |
endmacro()
|
gabomdq@6674
|
737 |
|
gabomdq@6674
|
738 |
# Requires:
|
gabomdq@6674
|
739 |
# - PkgCheckModules
|
gabomdq@6674
|
740 |
# Optional:
|
gabomdq@6674
|
741 |
# - DIRECTFB_SHARED opt
|
gabomdq@6674
|
742 |
# - HAVE_DLOPEN opt
|
gabomdq@6674
|
743 |
macro(CheckDirectFB)
|
gabomdq@6674
|
744 |
if(VIDEO_DIRECTFB)
|
gabomdq@6674
|
745 |
pkg_check_modules(PKG_DIRECTFB directfb>=1.0.0)
|
gabomdq@6674
|
746 |
if(PKG_DIRECTFB_FOUND)
|
gabomdq@6674
|
747 |
set(HAVE_VIDEO_DIRECTFB TRUE)
|
gabomdq@6674
|
748 |
file(GLOB DIRECTFB_SOURCES ${SDL2_SOURCE_DIR}/src/video/directfb/*.c)
|
gabomdq@6674
|
749 |
set(SOURCE_FILES ${SOURCE_FILES} ${DIRECTFB_SOURCES})
|
gabomdq@6674
|
750 |
set(SDL_VIDEO_DRIVER_DIRECTFB 1)
|
gabomdq@6674
|
751 |
set(SDL_VIDEO_RENDER_DIRECTFB 1)
|
gabomdq@6674
|
752 |
list(APPEND EXTRA_CFLAGS ${PKG_DIRECTFB_CFLAGS})
|
gabomdq@6674
|
753 |
if(DIRECTFB_SHARED)
|
gabomdq@6674
|
754 |
if(NOT HAVE_DLOPEN)
|
gabomdq@6674
|
755 |
message_warn("You must have SDL_LoadObject() support for dynamic DirectFB loading")
|
gabomdq@6674
|
756 |
else()
|
icculus@8017
|
757 |
FindLibraryAndSONAME("directfb")
|
icculus@8017
|
758 |
set(SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC "\"${DIRECTFB_LIB_SONAME}\"")
|
gabomdq@6674
|
759 |
set(HAVE_DIRECTFB_SHARED TRUE)
|
icculus@9277
|
760 |
endif()
|
icculus@9277
|
761 |
else()
|
gabomdq@6674
|
762 |
list(APPEND EXTRA_LDFLAGS ${PKG_DIRECTFB_LDFLAGS})
|
icculus@9277
|
763 |
endif()
|
gabomdq@6674
|
764 |
set(HAVE_SDL_VIDEO TRUE)
|
icculus@9277
|
765 |
endif()
|
icculus@9277
|
766 |
endif()
|
icculus@9277
|
767 |
endmacro()
|
gabomdq@6674
|
768 |
|
gabomdq@6674
|
769 |
# Requires:
|
denis@9127
|
770 |
# - n/a
|
slouken@9164
|
771 |
macro(CheckVivante)
|
slouken@9164
|
772 |
if(VIDEO_VIVANTE)
|
denis@9127
|
773 |
check_c_source_compiles("
|
slouken@9164
|
774 |
#include <gc_vdk.h>
|
slouken@9164
|
775 |
int main(int argc, char** argv) {}" HAVE_VIDEO_VIVANTE_VDK)
|
slouken@9164
|
776 |
check_c_source_compiles("
|
slouken@9164
|
777 |
#define LINUX
|
denis@9127
|
778 |
#define EGL_API_FB
|
denis@9127
|
779 |
#include <EGL/eglvivante.h>
|
slouken@9164
|
780 |
int main(int argc, char** argv) {}" HAVE_VIDEO_VIVANTE_EGL_FB)
|
slouken@9164
|
781 |
if(HAVE_VIDEO_VIVANTE_VDK OR HAVE_VIDEO_VIVANTE_EGL_FB)
|
slouken@9164
|
782 |
set(HAVE_VIDEO_VIVANTE TRUE)
|
denis@9127
|
783 |
set(HAVE_SDL_VIDEO TRUE)
|
denis@9127
|
784 |
|
slouken@9164
|
785 |
file(GLOB VIVANTE_SOURCES ${SDL2_SOURCE_DIR}/src/video/vivante/*.c)
|
slouken@9164
|
786 |
set(SOURCE_FILES ${SOURCE_FILES} ${VIVANTE_SOURCES})
|
slouken@9164
|
787 |
set(SDL_VIDEO_DRIVER_VIVANTE 1)
|
slouken@9164
|
788 |
if(HAVE_VIDEO_VIVANTE_VDK)
|
slouken@9164
|
789 |
set(SDL_VIDEO_DRIVER_VIVANTE_VDK 1)
|
slouken@9164
|
790 |
list(APPEND EXTRA_LIBS VDK VIVANTE)
|
philipp@9170
|
791 |
else()
|
slouken@9164
|
792 |
set(SDL_CFLAGS "${SDL_CFLAGS} -DLINUX -DEGL_API_FB")
|
slouken@9164
|
793 |
list(APPEND EXTRA_LIBS EGL)
|
slouken@9164
|
794 |
endif(HAVE_VIDEO_VIVANTE_VDK)
|
slouken@9164
|
795 |
endif(HAVE_VIDEO_VIVANTE_VDK OR HAVE_VIDEO_VIVANTE_EGL_FB)
|
slouken@9164
|
796 |
endif(VIDEO_VIVANTE)
|
slouken@9164
|
797 |
endmacro(CheckVivante)
|
denis@9127
|
798 |
|
denis@9127
|
799 |
# Requires:
|
gabomdq@6674
|
800 |
# - nada
|
gabomdq@6674
|
801 |
macro(CheckOpenGLX11)
|
gabomdq@6674
|
802 |
if(VIDEO_OPENGL)
|
gabomdq@6674
|
803 |
check_c_source_compiles("
|
gabomdq@6674
|
804 |
#include <GL/gl.h>
|
gabomdq@6674
|
805 |
#include <GL/glx.h>
|
gabomdq@6674
|
806 |
int main(int argc, char** argv) {}" HAVE_VIDEO_OPENGL)
|
gabomdq@6674
|
807 |
|
gabomdq@6674
|
808 |
if(HAVE_VIDEO_OPENGL)
|
gabomdq@6674
|
809 |
set(HAVE_VIDEO_OPENGL TRUE)
|
gabomdq@6674
|
810 |
set(SDL_VIDEO_OPENGL 1)
|
gabomdq@6674
|
811 |
set(SDL_VIDEO_OPENGL_GLX 1)
|
gabomdq@6674
|
812 |
set(SDL_VIDEO_RENDER_OGL 1)
|
icculus@9277
|
813 |
endif()
|
icculus@9277
|
814 |
endif()
|
icculus@9277
|
815 |
endmacro()
|
gabomdq@6674
|
816 |
|
gabomdq@6674
|
817 |
# Requires:
|
gabomdq@6674
|
818 |
# - nada
|
gabomdq@6674
|
819 |
macro(CheckOpenGLESX11)
|
gabomdq@6674
|
820 |
if(VIDEO_OPENGLES)
|
gabomdq@6674
|
821 |
check_c_source_compiles("
|
denis@9127
|
822 |
#define EGL_API_FB
|
gabomdq@6674
|
823 |
#include <EGL/egl.h>
|
gabomdq@7690
|
824 |
int main (int argc, char** argv) {}" HAVE_VIDEO_OPENGL_EGL)
|
gabomdq@7690
|
825 |
if(HAVE_VIDEO_OPENGL_EGL)
|
gabomdq@7690
|
826 |
set(SDL_VIDEO_OPENGL_EGL 1)
|
icculus@9277
|
827 |
endif()
|
gabomdq@7690
|
828 |
check_c_source_compiles("
|
gabomdq@7690
|
829 |
#include <GLES/gl.h>
|
gabomdq@7690
|
830 |
#include <GLES/glext.h>
|
gabomdq@7690
|
831 |
int main (int argc, char** argv) {}" HAVE_VIDEO_OPENGLES_V1)
|
gabomdq@7690
|
832 |
if(HAVE_VIDEO_OPENGLES_V1)
|
gabomdq@7690
|
833 |
set(HAVE_VIDEO_OPENGLES TRUE)
|
gabomdq@6674
|
834 |
set(SDL_VIDEO_OPENGL_ES 1)
|
gabomdq@6674
|
835 |
set(SDL_VIDEO_RENDER_OGL_ES 1)
|
icculus@9277
|
836 |
endif()
|
gabomdq@7690
|
837 |
check_c_source_compiles("
|
gabomdq@7690
|
838 |
#include <GLES2/gl2.h>
|
gabomdq@7690
|
839 |
#include <GLES2/gl2ext.h>
|
gabomdq@7690
|
840 |
int main (int argc, char** argv) {}" HAVE_VIDEO_OPENGLES_V2)
|
gabomdq@7690
|
841 |
if(HAVE_VIDEO_OPENGLES_V2)
|
gabomdq@7690
|
842 |
set(HAVE_VIDEO_OPENGLES TRUE)
|
gabomdq@6674
|
843 |
set(SDL_VIDEO_OPENGL_ES2 1)
|
gabomdq@6674
|
844 |
set(SDL_VIDEO_RENDER_OGL_ES2 1)
|
icculus@9277
|
845 |
endif()
|
gabomdq@7690
|
846 |
|
icculus@9277
|
847 |
endif()
|
icculus@9277
|
848 |
endmacro()
|
gabomdq@6674
|
849 |
|
icculus@9414
|
850 |
# Requires:
|
gabomdq@6674
|
851 |
# - nada
|
gabomdq@6674
|
852 |
# Optional:
|
gabomdq@6674
|
853 |
# - THREADS opt
|
gabomdq@6674
|
854 |
# Sets:
|
gabomdq@6674
|
855 |
# PTHREAD_CFLAGS
|
gabomdq@6674
|
856 |
# PTHREAD_LIBS
|
gabomdq@6674
|
857 |
macro(CheckPTHREAD)
|
gabomdq@6674
|
858 |
if(PTHREADS)
|
icculus@11208
|
859 |
if(ANDROID)
|
icculus@11208
|
860 |
# the android libc provides built-in support for pthreads, so no
|
icculus@11208
|
861 |
# additional linking or compile flags are necessary
|
icculus@11208
|
862 |
elseif(LINUX)
|
gabomdq@6674
|
863 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
gabomdq@7078
|
864 |
set(PTHREAD_LDFLAGS "-pthread")
|
gabomdq@6674
|
865 |
elseif(BSDI)
|
gabomdq@6674
|
866 |
set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
gabomdq@6674
|
867 |
set(PTHREAD_LDFLAGS "")
|
gabomdq@6674
|
868 |
elseif(DARWIN)
|
gabomdq@6674
|
869 |
set(PTHREAD_CFLAGS "-D_THREAD_SAFE")
|
gabomdq@6674
|
870 |
# causes Carbon.p complaints?
|
gabomdq@6674
|
871 |
# set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
gabomdq@6674
|
872 |
set(PTHREAD_LDFLAGS "")
|
gabomdq@6674
|
873 |
elseif(FREEBSD)
|
gabomdq@6674
|
874 |
set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
gabomdq@6674
|
875 |
set(PTHREAD_LDFLAGS "-pthread")
|
gabomdq@6674
|
876 |
elseif(NETBSD)
|
gabomdq@6674
|
877 |
set(PTHREAD_CFLAGS "-D_REENTRANT -D_THREAD_SAFE")
|
gabomdq@6674
|
878 |
set(PTHREAD_LDFLAGS "-lpthread")
|
gabomdq@6674
|
879 |
elseif(OPENBSD)
|
gabomdq@6674
|
880 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
gabomdq@6674
|
881 |
set(PTHREAD_LDFLAGS "-pthread")
|
gabomdq@6674
|
882 |
elseif(SOLARIS)
|
gabomdq@6674
|
883 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
gabomdq@6674
|
884 |
set(PTHREAD_LDFLAGS "-pthread -lposix4")
|
gabomdq@6674
|
885 |
elseif(SYSV5)
|
gabomdq@6674
|
886 |
set(PTHREAD_CFLAGS "-D_REENTRANT -Kthread")
|
gabomdq@6674
|
887 |
set(PTHREAD_LDFLAGS "")
|
gabomdq@6674
|
888 |
elseif(AIX)
|
gabomdq@6674
|
889 |
set(PTHREAD_CFLAGS "-D_REENTRANT -mthreads")
|
gabomdq@6674
|
890 |
set(PTHREAD_LDFLAGS "-pthread")
|
gabomdq@6674
|
891 |
elseif(HPUX)
|
gabomdq@6674
|
892 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
gabomdq@6674
|
893 |
set(PTHREAD_LDFLAGS "-L/usr/lib -pthread")
|
icculus@7981
|
894 |
elseif(HAIKU)
|
icculus@7977
|
895 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
icculus@7977
|
896 |
set(PTHREAD_LDFLAGS "")
|
gabomdq@6674
|
897 |
else()
|
gabomdq@6674
|
898 |
set(PTHREAD_CFLAGS "-D_REENTRANT")
|
gabomdq@6674
|
899 |
set(PTHREAD_LDFLAGS "-lpthread")
|
icculus@9277
|
900 |
endif()
|
gabomdq@6674
|
901 |
|
gabomdq@6674
|
902 |
# Run some tests
|
jujjyl@10329
|
903 |
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
jujjyl@10329
|
904 |
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${PTHREAD_CFLAGS} ${PTHREAD_LDFLAGS}")
|
icculus@9414
|
905 |
if(CMAKE_CROSSCOMPILING)
|
icculus@9414
|
906 |
set(HAVE_PTHREADS 1)
|
icculus@9414
|
907 |
else()
|
icculus@9414
|
908 |
check_c_source_runs("
|
gabomdq@6674
|
909 |
#include <pthread.h>
|
gabomdq@6674
|
910 |
int main(int argc, char** argv) {
|
gabomdq@6674
|
911 |
pthread_attr_t type;
|
gabomdq@6674
|
912 |
pthread_attr_init(&type);
|
gabomdq@6674
|
913 |
return 0;
|
gabomdq@6674
|
914 |
}" HAVE_PTHREADS)
|
icculus@9414
|
915 |
endif()
|
gabomdq@6674
|
916 |
if(HAVE_PTHREADS)
|
gabomdq@6674
|
917 |
set(SDL_THREAD_PTHREAD 1)
|
gabomdq@6674
|
918 |
list(APPEND EXTRA_CFLAGS ${PTHREAD_CFLAGS})
|
gabomdq@6674
|
919 |
list(APPEND EXTRA_LDFLAGS ${PTHREAD_LDFLAGS})
|
gabomdq@6674
|
920 |
set(SDL_CFLAGS "${SDL_CFLAGS} ${PTHREAD_CFLAGS}")
|
gabomdq@6674
|
921 |
list(APPEND SDL_LIBS ${PTHREAD_LDFLAGS})
|
gabomdq@6674
|
922 |
|
gabomdq@6674
|
923 |
check_c_source_compiles("
|
gabomdq@6674
|
924 |
#include <pthread.h>
|
gabomdq@6674
|
925 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
926 |
pthread_mutexattr_t attr;
|
gabomdq@6674
|
927 |
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
|
gabomdq@7078
|
928 |
return 0;
|
gabomdq@6674
|
929 |
}" HAVE_RECURSIVE_MUTEXES)
|
gabomdq@6674
|
930 |
if(HAVE_RECURSIVE_MUTEXES)
|
gabomdq@6674
|
931 |
set(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1)
|
icculus@9277
|
932 |
else()
|
gabomdq@6674
|
933 |
check_c_source_compiles("
|
gabomdq@6674
|
934 |
#include <pthread.h>
|
gabomdq@6674
|
935 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
936 |
pthread_mutexattr_t attr;
|
slouken@11139
|
937 |
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
|
gabomdq@7078
|
938 |
return 0;
|
gabomdq@6674
|
939 |
}" HAVE_RECURSIVE_MUTEXES_NP)
|
gabomdq@6674
|
940 |
if(HAVE_RECURSIVE_MUTEXES_NP)
|
gabomdq@6674
|
941 |
set(SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP 1)
|
icculus@9277
|
942 |
endif()
|
icculus@9277
|
943 |
endif()
|
gabomdq@6674
|
944 |
|
gabomdq@6674
|
945 |
if(PTHREADS_SEM)
|
gabomdq@6674
|
946 |
check_c_source_compiles("#include <pthread.h>
|
gabomdq@7078
|
947 |
#include <semaphore.h>
|
gabomdq@7078
|
948 |
int main(int argc, char **argv) { return 0; }" HAVE_PTHREADS_SEM)
|
gabomdq@6674
|
949 |
if(HAVE_PTHREADS_SEM)
|
gabomdq@6674
|
950 |
check_c_source_compiles("
|
gabomdq@6674
|
951 |
#include <pthread.h>
|
gabomdq@6674
|
952 |
#include <semaphore.h>
|
gabomdq@6674
|
953 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
954 |
sem_timedwait(NULL, NULL);
|
gabomdq@6674
|
955 |
return 0;
|
gabomdq@6674
|
956 |
}" HAVE_SEM_TIMEDWAIT)
|
icculus@9277
|
957 |
endif()
|
icculus@9277
|
958 |
endif()
|
gabomdq@6674
|
959 |
|
gabomdq@6674
|
960 |
check_c_source_compiles("
|
gabomdq@6674
|
961 |
#include <pthread.h>
|
gabomdq@6674
|
962 |
#include <pthread_np.h>
|
gabomdq@6674
|
963 |
int main(int argc, char** argv) { return 0; }" HAVE_PTHREAD_NP_H)
|
icculus@9414
|
964 |
check_function_exists(pthread_setname_np HAVE_PTHREAD_SETNAME_NP)
|
icculus@9415
|
965 |
check_function_exists(pthread_set_name_np HAVE_PTHREAD_SET_NAME_NP)
|
gabomdq@6674
|
966 |
|
gabomdq@6674
|
967 |
set(SOURCE_FILES ${SOURCE_FILES}
|
gabomdq@6674
|
968 |
${SDL2_SOURCE_DIR}/src/thread/pthread/SDL_systhread.c
|
gabomdq@6674
|
969 |
${SDL2_SOURCE_DIR}/src/thread/pthread/SDL_sysmutex.c # Can be faked, if necessary
|
gabomdq@6674
|
970 |
${SDL2_SOURCE_DIR}/src/thread/pthread/SDL_syscond.c # Can be faked, if necessary
|
icculus@7400
|
971 |
${SDL2_SOURCE_DIR}/src/thread/pthread/SDL_systls.c
|
gabomdq@6674
|
972 |
)
|
gabomdq@6674
|
973 |
if(HAVE_PTHREADS_SEM)
|
gabomdq@6674
|
974 |
set(SOURCE_FILES ${SOURCE_FILES}
|
gabomdq@6674
|
975 |
${SDL2_SOURCE_DIR}/src/thread/pthread/SDL_syssem.c)
|
icculus@9277
|
976 |
else()
|
gabomdq@6674
|
977 |
set(SOURCE_FILES ${SOURCE_FILES}
|
gabomdq@6674
|
978 |
${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syssem.c)
|
icculus@9277
|
979 |
endif()
|
gabomdq@6674
|
980 |
set(HAVE_SDL_THREADS TRUE)
|
icculus@9277
|
981 |
endif()
|
slouken@11139
|
982 |
set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}")
|
icculus@9277
|
983 |
endif()
|
icculus@9277
|
984 |
endmacro()
|
gabomdq@6674
|
985 |
|
gabomdq@6674
|
986 |
# Requires
|
gabomdq@6674
|
987 |
# - nada
|
gabomdq@6674
|
988 |
# Optional:
|
gabomdq@6674
|
989 |
# Sets:
|
gabomdq@6674
|
990 |
# USB_LIBS
|
gabomdq@6674
|
991 |
# USB_CFLAGS
|
gabomdq@6674
|
992 |
macro(CheckUSBHID)
|
gabomdq@6674
|
993 |
check_library_exists(usbhid hid_init "" LIBUSBHID)
|
gabomdq@6674
|
994 |
if(LIBUSBHID)
|
gabomdq@6674
|
995 |
check_include_file(usbhid.h HAVE_USBHID_H)
|
gabomdq@6674
|
996 |
if(HAVE_USBHID_H)
|
gabomdq@6674
|
997 |
set(USB_CFLAGS "-DHAVE_USBHID_H")
|
icculus@9277
|
998 |
endif()
|
gabomdq@6674
|
999 |
|
gabomdq@6674
|
1000 |
check_include_file(libusbhid.h HAVE_LIBUSBHID_H)
|
gabomdq@6674
|
1001 |
if(HAVE_LIBUSBHID_H)
|
gabomdq@6674
|
1002 |
set(USB_CFLAGS "${USB_CFLAGS} -DHAVE_LIBUSBHID_H")
|
icculus@9277
|
1003 |
endif()
|
gabomdq@6674
|
1004 |
set(USB_LIBS ${USB_LIBS} usbhid)
|
icculus@9277
|
1005 |
else()
|
gabomdq@6674
|
1006 |
check_include_file(usb.h HAVE_USB_H)
|
gabomdq@6674
|
1007 |
if(HAVE_USB_H)
|
gabomdq@6674
|
1008 |
set(USB_CFLAGS "-DHAVE_USB_H")
|
icculus@9277
|
1009 |
endif()
|
gabomdq@6674
|
1010 |
check_include_file(libusb.h HAVE_LIBUSB_H)
|
gabomdq@6674
|
1011 |
if(HAVE_LIBUSB_H)
|
gabomdq@6674
|
1012 |
set(USB_CFLAGS "${USB_CFLAGS} -DHAVE_LIBUSB_H")
|
icculus@9277
|
1013 |
endif()
|
gabomdq@6674
|
1014 |
check_library_exists(usb hid_init "" LIBUSB)
|
gabomdq@6674
|
1015 |
if(LIBUSB)
|
gabomdq@6674
|
1016 |
set(USB_LIBS ${USB_LIBS} usb)
|
icculus@9277
|
1017 |
endif()
|
icculus@9277
|
1018 |
endif()
|
gabomdq@6674
|
1019 |
|
jujjyl@10329
|
1020 |
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
jujjyl@10329
|
1021 |
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${USB_CFLAGS}")
|
gabomdq@6674
|
1022 |
set(CMAKE_REQUIRED_LIBRARIES "${USB_LIBS}")
|
gabomdq@6674
|
1023 |
check_c_source_compiles("
|
gabomdq@6674
|
1024 |
#include <sys/types.h>
|
gabomdq@6674
|
1025 |
#if defined(HAVE_USB_H)
|
gabomdq@6674
|
1026 |
#include <usb.h>
|
gabomdq@6674
|
1027 |
#endif
|
gabomdq@6674
|
1028 |
#ifdef __DragonFly__
|
gabomdq@6674
|
1029 |
# include <bus/usb/usb.h>
|
gabomdq@6674
|
1030 |
# include <bus/usb/usbhid.h>
|
gabomdq@6674
|
1031 |
#else
|
gabomdq@6674
|
1032 |
# include <dev/usb/usb.h>
|
gabomdq@6674
|
1033 |
# include <dev/usb/usbhid.h>
|
gabomdq@6674
|
1034 |
#endif
|
gabomdq@6674
|
1035 |
#if defined(HAVE_USBHID_H)
|
gabomdq@6674
|
1036 |
#include <usbhid.h>
|
gabomdq@6674
|
1037 |
#elif defined(HAVE_LIBUSB_H)
|
gabomdq@6674
|
1038 |
#include <libusb.h>
|
gabomdq@6674
|
1039 |
#elif defined(HAVE_LIBUSBHID_H)
|
gabomdq@6674
|
1040 |
#include <libusbhid.h>
|
gabomdq@6674
|
1041 |
#endif
|
gabomdq@6674
|
1042 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
1043 |
struct report_desc *repdesc;
|
gabomdq@6674
|
1044 |
struct usb_ctl_report *repbuf;
|
gabomdq@6674
|
1045 |
hid_kind_t hidkind;
|
gabomdq@6674
|
1046 |
return 0;
|
gabomdq@6674
|
1047 |
}" HAVE_USBHID)
|
gabomdq@6674
|
1048 |
if(HAVE_USBHID)
|
gabomdq@6674
|
1049 |
check_c_source_compiles("
|
gabomdq@6674
|
1050 |
#include <sys/types.h>
|
gabomdq@6674
|
1051 |
#if defined(HAVE_USB_H)
|
gabomdq@6674
|
1052 |
#include <usb.h>
|
gabomdq@6674
|
1053 |
#endif
|
gabomdq@6674
|
1054 |
#ifdef __DragonFly__
|
gabomdq@6674
|
1055 |
# include <bus/usb/usb.h>
|
gabomdq@6674
|
1056 |
# include <bus/usb/usbhid.h>
|
gabomdq@6674
|
1057 |
#else
|
gabomdq@6674
|
1058 |
# include <dev/usb/usb.h>
|
gabomdq@6674
|
1059 |
# include <dev/usb/usbhid.h>
|
gabomdq@6674
|
1060 |
#endif
|
gabomdq@6674
|
1061 |
#if defined(HAVE_USBHID_H)
|
gabomdq@6674
|
1062 |
#include <usbhid.h>
|
gabomdq@6674
|
1063 |
#elif defined(HAVE_LIBUSB_H)
|
gabomdq@6674
|
1064 |
#include <libusb.h>
|
gabomdq@6674
|
1065 |
#elif defined(HAVE_LIBUSBHID_H)
|
gabomdq@6674
|
1066 |
#include <libusbhid.h>
|
gabomdq@6674
|
1067 |
#endif
|
gabomdq@6674
|
1068 |
int main(int argc, char** argv) {
|
gabomdq@6674
|
1069 |
struct usb_ctl_report buf;
|
gabomdq@6674
|
1070 |
if (buf.ucr_data) { }
|
gabomdq@6674
|
1071 |
return 0;
|
gabomdq@6674
|
1072 |
}" HAVE_USBHID_UCR_DATA)
|
gabomdq@6674
|
1073 |
if(HAVE_USBHID_UCR_DATA)
|
gabomdq@6674
|
1074 |
set(USB_CFLAGS "${USB_CFLAGS} -DUSBHID_UCR_DATA")
|
icculus@9277
|
1075 |
endif()
|
gabomdq@6674
|
1076 |
|
gabomdq@6674
|
1077 |
check_c_source_compiles("
|
gabomdq@6674
|
1078 |
#include <sys/types.h>
|
gabomdq@6674
|
1079 |
#if defined(HAVE_USB_H)
|
gabomdq@6674
|
1080 |
#include <usb.h>
|
gabomdq@6674
|
1081 |
#endif
|
gabomdq@6674
|
1082 |
#ifdef __DragonFly__
|
gabomdq@6674
|
1083 |
#include <bus/usb/usb.h>
|
gabomdq@6674
|
1084 |
#include <bus/usb/usbhid.h>
|
gabomdq@6674
|
1085 |
#else
|
gabomdq@6674
|
1086 |
#include <dev/usb/usb.h>
|
gabomdq@6674
|
1087 |
#include <dev/usb/usbhid.h>
|
gabomdq@6674
|
1088 |
#endif
|
gabomdq@6674
|
1089 |
#if defined(HAVE_USBHID_H)
|
gabomdq@6674
|
1090 |
#include <usbhid.h>
|
gabomdq@6674
|
1091 |
#elif defined(HAVE_LIBUSB_H)
|
gabomdq@6674
|
1092 |
#include <libusb.h>
|
gabomdq@6674
|
1093 |
#elif defined(HAVE_LIBUSBHID_H)
|
gabomdq@6674
|
1094 |
#include <libusbhid.h>
|
gabomdq@6674
|
1095 |
#endif
|
gabomdq@6674
|
1096 |
int main(int argc, char **argv) {
|
gabomdq@6674
|
1097 |
report_desc_t d;
|
gabomdq@6674
|
1098 |
hid_start_parse(d, 1, 1);
|
gabomdq@6674
|
1099 |
return 0;
|
gabomdq@6674
|
1100 |
}" HAVE_USBHID_NEW)
|
gabomdq@6674
|
1101 |
if(HAVE_USBHID_NEW)
|
gabomdq@6674
|
1102 |
set(USB_CFLAGS "${USB_CFLAGS} -DUSBHID_NEW")
|
icculus@9277
|
1103 |
endif()
|
gabomdq@6674
|
1104 |
|
gabomdq@6674
|
1105 |
check_c_source_compiles("
|
gabomdq@6674
|
1106 |
#include <machine/joystick.h>
|
gabomdq@6674
|
1107 |
int main(int argc, char** argv) {
|
gabomdq@6674
|
1108 |
struct joystick t;
|
gabomdq@6674
|
1109 |
return 0;
|
gabomdq@6674
|
1110 |
}" HAVE_MACHINE_JOYSTICK)
|
gabomdq@6674
|
1111 |
if(HAVE_MACHINE_JOYSTICK)
|
gabomdq@6674
|
1112 |
set(SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H 1)
|
icculus@9277
|
1113 |
endif()
|
gabomdq@6674
|
1114 |
set(SDL_JOYSTICK_USBHID 1)
|
gabomdq@6674
|
1115 |
file(GLOB BSD_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/bsd/*.c)
|
gabomdq@6674
|
1116 |
set(SOURCE_FILES ${SOURCE_FILES} ${BSD_JOYSTICK_SOURCES})
|
gabomdq@6674
|
1117 |
list(APPEND EXTRA_CFLAGS ${USB_CFLAGS})
|
gabomdq@6674
|
1118 |
list(APPEND EXTRA_LIBS ${USB_LIBS})
|
gabomdq@6674
|
1119 |
set(HAVE_SDL_JOYSTICK TRUE)
|
gabomdq@6674
|
1120 |
|
gabomdq@6674
|
1121 |
set(CMAKE_REQUIRED_LIBRARIES)
|
jujjyl@10329
|
1122 |
set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}")
|
icculus@9277
|
1123 |
endif()
|
icculus@9277
|
1124 |
endmacro()
|
slouken@9077
|
1125 |
|
slouken@9077
|
1126 |
# Requires:
|
slouken@9077
|
1127 |
# - n/a
|
slouken@9077
|
1128 |
macro(CheckRPI)
|
slouken@9077
|
1129 |
if(VIDEO_RPI)
|
slouken@9077
|
1130 |
set(VIDEO_RPI_INCLUDE_DIRS "/opt/vc/include" "/opt/vc/include/interface/vcos/pthreads" "/opt/vc/include/interface/vmcs_host/linux/" )
|
slouken@9077
|
1131 |
set(VIDEO_RPI_LIBRARY_DIRS "/opt/vc/lib" )
|
slouken@9077
|
1132 |
set(VIDEO_RPI_LIBS bcm_host )
|
slouken@9077
|
1133 |
listtostr(VIDEO_RPI_INCLUDE_DIRS VIDEO_RPI_INCLUDE_FLAGS "-I")
|
slouken@9077
|
1134 |
listtostr(VIDEO_RPI_LIBRARY_DIRS VIDEO_RPI_LIBRARY_FLAGS "-L")
|
slouken@9077
|
1135 |
|
jujjyl@10329
|
1136 |
set(ORIG_CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS}")
|
jujjyl@10329
|
1137 |
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${VIDEO_RPI_INCLUDE_FLAGS} ${VIDEO_RPI_LIBRARY_FLAGS}")
|
slouken@9077
|
1138 |
set(CMAKE_REQUIRED_LIBRARIES "${VIDEO_RPI_LIBS}")
|
slouken@9077
|
1139 |
check_c_source_compiles("
|
slouken@9077
|
1140 |
#include <bcm_host.h>
|
slouken@9077
|
1141 |
int main(int argc, char **argv) {}" HAVE_VIDEO_RPI)
|
jujjyl@10329
|
1142 |
set(CMAKE_REQUIRED_FLAGS "${ORIG_CMAKE_REQUIRED_FLAGS}")
|
slouken@9077
|
1143 |
set(CMAKE_REQUIRED_LIBRARIES)
|
slouken@9077
|
1144 |
|
slouken@9077
|
1145 |
if(SDL_VIDEO AND HAVE_VIDEO_RPI)
|
slouken@9077
|
1146 |
set(HAVE_SDL_VIDEO TRUE)
|
slouken@9077
|
1147 |
set(SDL_VIDEO_DRIVER_RPI 1)
|
slouken@9077
|
1148 |
file(GLOB VIDEO_RPI_SOURCES ${SDL2_SOURCE_DIR}/src/video/raspberry/*.c)
|
slouken@9077
|
1149 |
set(SOURCE_FILES ${SOURCE_FILES} ${VIDEO_RPI_SOURCES})
|
slouken@9077
|
1150 |
list(APPEND EXTRA_LIBS ${VIDEO_RPI_LIBS})
|
slouken@9077
|
1151 |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VIDEO_RPI_INCLUDE_FLAGS} ${VIDEO_RPI_LIBRARY_FLAGS}")
|
slouken@9077
|
1152 |
endif(SDL_VIDEO AND HAVE_VIDEO_RPI)
|
slouken@9077
|
1153 |
endif(VIDEO_RPI)
|
slouken@9077
|
1154 |
endmacro(CheckRPI)
|
slouken@11175
|
1155 |
|
slouken@11175
|
1156 |
# Requires:
|
slouken@11175
|
1157 |
# - EGL
|
slouken@11175
|
1158 |
# - PkgCheckModules
|
slouken@11175
|
1159 |
# Optional:
|
slouken@11175
|
1160 |
# - KMSDRM_SHARED opt
|
slouken@11175
|
1161 |
# - HAVE_DLOPEN opt
|
slouken@11175
|
1162 |
macro(CheckKMSDRM)
|
slouken@11175
|
1163 |
if(VIDEO_KMSDRM)
|
slouken@11175
|
1164 |
pkg_check_modules(KMSDRM libdrm gbm egl)
|
slouken@11175
|
1165 |
if(KMSDRM_FOUND)
|
slouken@11175
|
1166 |
link_directories(
|
slouken@11175
|
1167 |
${KMSDRM_LIBRARY_DIRS}
|
slouken@11175
|
1168 |
)
|
slouken@11175
|
1169 |
include_directories(
|
slouken@11175
|
1170 |
${KMSDRM_INCLUDE_DIRS}
|
slouken@11175
|
1171 |
)
|
slouken@11175
|
1172 |
set(HAVE_VIDEO_KMSDRM TRUE)
|
slouken@11175
|
1173 |
set(HAVE_SDL_VIDEO TRUE)
|
slouken@11175
|
1174 |
|
slouken@11175
|
1175 |
file(GLOB KMSDRM_SOURCES ${SDL2_SOURCE_DIR}/src/video/kmsdrm/*.c)
|
slouken@11175
|
1176 |
set(SOURCE_FILES ${SOURCE_FILES} ${KMSDRM_SOURCES})
|
slouken@11175
|
1177 |
|
slouken@11209
|
1178 |
list(APPEND EXTRA_CFLAGS ${KMSDRM_CFLAGS})
|
slouken@11175
|
1179 |
|
slouken@11175
|
1180 |
set(SDL_VIDEO_DRIVER_KMSDRM 1)
|
slouken@11175
|
1181 |
|
slouken@11175
|
1182 |
if(KMSDRM_SHARED)
|
slouken@11175
|
1183 |
if(NOT HAVE_DLOPEN)
|
slouken@11175
|
1184 |
message_warn("You must have SDL_LoadObject() support for dynamic KMS/DRM loading")
|
slouken@11175
|
1185 |
else()
|
slouken@11175
|
1186 |
FindLibraryAndSONAME(drm)
|
slouken@11175
|
1187 |
FindLibraryAndSONAME(gbm)
|
slouken@11175
|
1188 |
set(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC "\"${DRM_LIB_SONAME}\"")
|
slouken@11175
|
1189 |
set(SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM "\"${GBM_LIB_SONAME}\"")
|
slouken@11175
|
1190 |
set(HAVE_KMSDRM_SHARED TRUE)
|
slouken@11175
|
1191 |
endif()
|
slouken@11175
|
1192 |
else()
|
slouken@11175
|
1193 |
set(EXTRA_LIBS ${KMSDRM_LIBRARIES} ${EXTRA_LIBS})
|
slouken@11175
|
1194 |
endif()
|
slouken@11175
|
1195 |
endif()
|
slouken@11175
|
1196 |
endif()
|
slouken@11175
|
1197 |
endmacro()
|