11local WITH_SDL = 0
22local WITH_SDL2 = 0
3+ local WITH_SDL3 = 0
34local WITH_SDL_STATIC = 0
45local WITH_SDL2_STATIC = 0
56local WITH_PORTAUDIO = 0
3031
3132local sdl_root = " /libraries/sdl"
3233local sdl2_root = " /libraries/sdl2"
34+ local sdl3_root = " /libraries/sdl3"
3335local dxsdk_root = os.getenv (" DXSDK_DIR" ) and os.getenv (" DXSDK_DIR" ) or " C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)"
3436local portaudio_root = " /libraries/portaudio"
3537local openal_root = " /libraries/openal"
@@ -40,6 +42,9 @@ local sdl_include = sdl_root .. "/include"
4042local sdl2_include = sdl2_root .. " /include"
4143local sdl2_lib_x86 = sdl2_root .. " /lib/x86"
4244local sdl2_lib_x64 = sdl2_root .. " /lib/x64"
45+ local sdl3_include = sdl3_root .. " /include"
46+ local sdl3_lib_x86 = sdl3_root .. " /lib/x86"
47+ local sdl3_lib_x64 = sdl3_root .. " /lib/x64"
4348local dxsdk_include = dxsdk_root .. " /include"
4449local portaudio_include = portaudio_root .. " /include"
4550local openal_include = openal_root .. " /include"
@@ -69,6 +74,11 @@ newoption {
6974 description = " Include SDL2 backend in build"
7075}
7176
77+ newoption {
78+ trigger = " with-sdl3" ,
79+ description = " Include SDL3 backend in build"
80+ }
81+
7282newoption {
7383 trigger = " with-portaudio" ,
7484 description = " Include PortAudio backend in build"
@@ -109,6 +119,11 @@ newoption {
109119 description = " Only include sdl2 that doesn't use dyndll in build"
110120}
111121
122+ newoption {
123+ trigger = " with-sdl3-only" ,
124+ description = " Only include sdl3 in build"
125+ }
126+
112127newoption {
113128 trigger = " with-coreaudio" ,
114129 description = " Include OS X CoreAudio backend in build"
@@ -157,6 +172,7 @@ newoption {
157172if _OPTIONS [" soloud-devel" ] then
158173 WITH_SDL = 0
159174 WITH_SDL2 = 1
175+ WITH_SDL3 = 0
160176 WITH_SDL_STATIC = 0
161177 WITH_SDL2_STATIC = 0
162178 WITH_PORTAUDIO = 1
178194
179195if _OPTIONS [" with-common-backends" ] then
180196 WITH_SDL = 1
197+ WITH_SDL3 = 0
181198 WITH_SDL_STATIC = 0
182199 WITH_SDL2_STATIC = 0
183200 WITH_PORTAUDIO = 1
@@ -221,6 +238,10 @@ if _OPTIONS["with-sdl2"] then
221238 WITH_SDL2 = 1
222239end
223240
241+ if _OPTIONS [" with-sdl3" ] then
242+ WITH_SDL3 = 1
243+ end
244+
224245if _OPTIONS [" with-wasapi" ] then
225246 WITH_WASAPI = 1
226247end
232253if _OPTIONS [" with-sdl-only" ] then
233254 WITH_SDL = 1
234255 WITH_SDL2 = 0
256+ WITH_SDL3 = 0
235257 WITH_SDL_STATIC = 0
236258 WITH_SDL2_STATIC = 0
237259 WITH_PORTAUDIO = 0
247269if _OPTIONS [" with-sdl2-only" ] then
248270 WITH_SDL = 0
249271 WITH_SDL2 = 1
272+ WITH_SDL3 = 0
273+ WITH_SDL_STATIC = 0
274+ WITH_SDL2_STATIC = 0
275+ WITH_PORTAUDIO = 0
276+ WITH_OPENAL = 0
277+ WITH_XAUDIO2 = 0
278+ WITH_WINMM = 0
279+ WITH_WASAPI = 0
280+ WITH_OSS = 0
281+ WITH_NOSOUND = 0
282+ WITH_MINIAUDIO = 0
283+ end
284+
285+ if _OPTIONS [" with-sdl3-only" ] then
286+ WITH_SDL = 0
287+ WITH_SDL2 = 0
288+ WITH_SDL3 = 1
250289 WITH_SDL_STATIC = 0
251290 WITH_SDL2_STATIC = 0
252291 WITH_PORTAUDIO = 0
262301if _OPTIONS [" with-sdlstatic-only" ] then
263302 WITH_SDL = 0
264303 WITH_SDL2 = 0
304+ WITH_SDL3 = 0
265305 WITH_SDL_STATIC = 1
266306 WITH_PORTAUDIO = 0
267307 WITH_OPENAL = 0
276316if _OPTIONS [" with-sdl2static-only" ] then
277317 WITH_SDL = 0
278318 WITH_SDL2 = 0
319+ WITH_SDL3 = 0
279320 WITH_SDL_STATIC = 0
280321 WITH_SDL2_STATIC = 1
281322 WITH_PORTAUDIO = 0
291332if _OPTIONS [" with-sdl2static-only" ] then
292333 WITH_SDL = 0
293334 WITH_SDL2 = 0
335+ WITH_SDL3 = 0
294336 WITH_SDL_STATIC = 0
295337 WITH_SDL2_STATIC = 1
296338 WITH_PORTAUDIO = 0
306348if _OPTIONS [" with-vita-homebrew-only" ] then
307349 WITH_SDL = 0
308350 WITH_SDL2 = 0
351+ WITH_SDL3 = 0
309352 WITH_SDL_STATIC = 0
310353 WITH_SDL2_STATIC = 0
311354 WITH_PORTAUDIO = 0
331374if _OPTIONS [" with-jack-only" ] then
332375 WITH_SDL = 0
333376 WITH_SDL2 = 0
377+ WITH_SDL3 = 0
334378 WITH_SDL_STATIC = 0
335379 WITH_SDL2_STATIC = 0
336380 WITH_PORTAUDIO = 0
354398if _OPTIONS [" with-miniaudio-only" ] then
355399 WITH_SDL = 0
356400 WITH_SDL2 = 0
401+ WITH_SDL3 = 0
357402 WITH_SDL_STATIC = 0
358403 WITH_SDL2_STATIC = 0
359404 WITH_PORTAUDIO = 0
373418if _OPTIONS [" with-native-only" ] then
374419 WITH_SDL = 0
375420 WITH_SDL2 = 0
421+ WITH_SDL3 = 0
376422 WITH_SDL_STATIC = 0
377423 WITH_SDL2_STATIC = 0
378424 WITH_PORTAUDIO = 0
@@ -400,6 +446,7 @@ print ("")
400446print (" Active options:" )
401447print (" WITH_SDL = " , WITH_SDL )
402448print (" WITH_SDL2 = " , WITH_SDL2 )
449+ print (" WITH_SDL3 = " , WITH_SDL3 )
403450print (" WITH_PORTAUDIO = " , WITH_PORTAUDIO )
404451print (" WITH_OPENAL = " , WITH_OPENAL )
405452print (" WITH_XAUDIO2 = " , WITH_XAUDIO2 )
@@ -601,6 +648,31 @@ if (WITH_SDL2 == 1 or WITH_SDL2STATIC) then
601648
602649 targetname " solouddemocommon"
603650end
651+ -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
652+
653+ if (WITH_SDL3 == 1 ) then
654+
655+ project " SoloudDemoCommon"
656+ kind " StaticLib"
657+ targetdir " ../lib"
658+ language " C++"
659+
660+ files {
661+ " ../demos/common/**.c*" ,
662+ " ../demos/common/imgui/**.c*" ,
663+ " ../demos/common/glew/GL/**.c*"
664+ }
665+ includedirs {
666+ " ../include" ,
667+ " ../demos/common" ,
668+ " ../demos/common/imgui" ,
669+ " ../demos/common/glew" ,
670+ sdl3_include
671+ }
672+ defines { " GLEW_STATIC" }
673+
674+ targetname " solouddemocommon"
675+ end
604676-- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< -- 8< --
605677
606678 project " SoloudStatic"
@@ -715,6 +787,17 @@ if (WITH_SDL2 == 1) then
715787 }
716788end
717789
790+ if (WITH_SDL3 == 1 ) then
791+ defines { " WITH_SDL3" }
792+ files {
793+ " ../src/backend/sdl/**.c*"
794+ }
795+ includedirs {
796+ " ../include" ,
797+ sdl3_include
798+ }
799+ end
800+
718801if (WITH_SDL_STATIC == 1 ) then
719802 defines { " WITH_SDL_STATIC" }
720803 files {
0 commit comments