Browse Source

Add megasource support for SDL3

Mark Jansen 1 year ago
parent
commit
d62935c994
1 changed files with 22 additions and 7 deletions
  1. 22 7
      CMakeLists.txt

+ 22 - 7
CMakeLists.txt

@@ -11,6 +11,8 @@ project(megasource)
 
 
 set(MEGA TRUE)
 set(MEGA TRUE)
 
 
+option(LOVE_USE_SDL3 "Use SDL3 instead of SDL2" OFF)
+
 set (CMAKE_CXX_STANDARD 11)
 set (CMAKE_CXX_STANDARD 11)
 
 
 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
@@ -222,6 +224,7 @@ set(MEGA_LIBVORBIS_VER "1.3.5")
 set(MEGA_LIBTHEORA_VER "1.1.1")
 set(MEGA_LIBTHEORA_VER "1.1.1")
 set(MEGA_FREETYPE_VER "2.13.2")
 set(MEGA_FREETYPE_VER "2.13.2")
 set(MEGA_SDL2_VER "2.28.5")
 set(MEGA_SDL2_VER "2.28.5")
+set(MEGA_SDL3_VER "3.1.1-preview")
 set(MEGA_OPENAL_VER "1.23.1-bc7cb17")
 set(MEGA_OPENAL_VER "1.23.1-bc7cb17")
 set(MEGA_MODPLUG_VER "0.8.8.4")
 set(MEGA_MODPLUG_VER "0.8.8.4")
 
 
@@ -277,18 +280,29 @@ message(STATUS "-----------------------------------------------------")
 add_subdirectory("libs/harfbuzz" ${CMAKE_BINARY_DIR}/harfbuzz)
 add_subdirectory("libs/harfbuzz" ${CMAKE_BINARY_DIR}/harfbuzz)
 set(MEGA_HARFBUZZ harfbuzz)
 set(MEGA_HARFBUZZ harfbuzz)
 
 
-message(STATUS "-----------------------------------------------------")
-message(STATUS "Configuring: SDL2 ${MEGA_SDL2_VER}")
-message(STATUS "-----------------------------------------------------")
 if(WIN32 AND MEGA_ARM64)
 if(WIN32 AND MEGA_ARM64)
 	# In Windows, SDL always tries to open OpenGL32.dll, which is not available in Windows ARM64.
 	# In Windows, SDL always tries to open OpenGL32.dll, which is not available in Windows ARM64.
 	# This will cause error later on which makes love.window.setMode unhappy even when
 	# This will cause error later on which makes love.window.setMode unhappy even when
 	# LOVE_GRAPHICS_USE_OPENGLES is set, so disable OpenGL backend.
 	# LOVE_GRAPHICS_USE_OPENGLES is set, so disable OpenGL backend.
 	set(SDL_OPENGL OFF CACHE BOOL "(SDL) Enable OpenGL Backend" FORCE)
 	set(SDL_OPENGL OFF CACHE BOOL "(SDL) Enable OpenGL Backend" FORCE)
 endif()
 endif()
-add_subdirectory("libs/SDL2" ${CMAKE_BINARY_DIR}/SDL2)
-set(MEGA_SDL2 SDL2)
-set(MEGA_SDL2MAIN SDL2main)
+if (LOVE_USE_SDL3)
+	message(STATUS "-----------------------------------------------------")
+	message(STATUS "Configuring: SDL3 ${MEGA_SDL3_VER}")
+	message(STATUS "-----------------------------------------------------")
+	add_subdirectory("libs/SDL3" ${CMAKE_BINARY_DIR}/SDL3)
+	set(MEGA_SDL3 SDL3-shared)
+	set(MEGA_SDL2 )
+	set(MEGA_SDL2MAIN )
+else()
+	message(STATUS "-----------------------------------------------------")
+	message(STATUS "Configuring: SDL2 ${MEGA_SDL2_VER}")
+	message(STATUS "-----------------------------------------------------")
+	add_subdirectory("libs/SDL2" ${CMAKE_BINARY_DIR}/SDL2)
+	set(MEGA_SDL2 SDL2)
+	set(MEGA_SDL2MAIN SDL2main)
+	set(MEGA_SDL3 )
+endif()
 
 
 message(STATUS "-----------------------------------------------------")
 message(STATUS "-----------------------------------------------------")
 message(STATUS "Configuring: openal-soft ${MEGA_OPENAL_VER}")
 message(STATUS "Configuring: openal-soft ${MEGA_OPENAL_VER}")
@@ -390,6 +404,7 @@ set(MEGA_3P
 	${MEGA_LIBVORBISFILE}
 	${MEGA_LIBVORBISFILE}
 	${MEGA_LIBTHEORA}
 	${MEGA_LIBTHEORA}
 	${MEGA_FREETYPE}
 	${MEGA_FREETYPE}
+	${MEGA_SDL3}
 	${MEGA_SDL2}
 	${MEGA_SDL2}
 	${MEGA_SDL2MAIN}
 	${MEGA_SDL2MAIN}
 	${MEGA_OPENAL}
 	${MEGA_OPENAL}
@@ -423,6 +438,6 @@ link_directories(${SDL_LINK_DIR})
 add_executable(megatest src/test.cpp)
 add_executable(megatest src/test.cpp)
 target_link_libraries(megatest ${MEGA_3P})
 target_link_libraries(megatest ${MEGA_3P})
 
 
-add_move_dll(megatest ${MEGA_SDL2})
+add_move_dll(megatest ${MEGA_SDL2} ${MEGA_SDL3})
 add_move_dll(megatest ${MEGA_OPENAL})
 add_move_dll(megatest ${MEGA_OPENAL})
 add_move_dll(megatest ${MEGA_LUA51})
 add_move_dll(megatest ${MEGA_LUA51})