Prefer building with SDL2

This commit is contained in:
Timotej Lazar 2022-12-27 21:10:01 +01:00
parent 3f92377c67
commit e6d811f120

View file

@ -52,49 +52,14 @@ IF(NOT AVP_WEB)
pkg_check_modules(EGL egl)
pkg_check_modules(OPENGL gl)
pkg_check_modules(OPENGLES2 glesv2)
pkg_check_modules(SDL sdl>=1.2)
pkg_check_modules(SDL2 sdl2)
# Use SDL 1.2 if it is installed, else use SDL 2.0.
IF(NOT SDL_TYPE)
SET(SDL_TYPE AUTO CACHE STRING "SDL Version; one of: AUTO SDL SDL2")
SET_PROPERTY(CACHE SDL_TYPE PROPERTY STRINGS "AUTO" "SDL" "SDL2")
ENDIF(NOT SDL_TYPE)
option(USE_SDL1 "Use SDL 1.2 instead of SDL 2")
IF(NOT SDL_TYPE STREQUAL "AUTO" AND NOT SDL_TYPE STREQUAL "SDL" AND NOT SDL_TYPE STREQUAL "SDL2")
MESSAGE(FATAL_ERROR "Invalid SDL_TYPE setting ${SDL_TYPE}; must be one of AUTO SDL SDL2")
ENDIF(NOT SDL_TYPE STREQUAL "AUTO" AND NOT SDL_TYPE STREQUAL "SDL" AND NOT SDL_TYPE STREQUAL "SDL2")
IF(SDL_TYPE STREQUAL "AUTO")
IF(SDL_FOUND)
MESSAGE(STATUS "SDL 1.2 found; using that.")
SET(SDL_TYPE "SDL")
ENDIF(SDL_FOUND)
ENDIF(SDL_TYPE STREQUAL "AUTO")
IF(SDL_TYPE STREQUAL "AUTO")
IF(SDL2_FOUND)
MESSAGE(STATUS "SDL 2.0 found; using that.")
SET(SDL_TYPE "SDL2")
ENDIF(SDL2_FOUND)
ENDIF(SDL_TYPE STREQUAL "AUTO")
IF(SDL_TYPE STREQUAL "AUTO")
MESSAGE(FATAL_ERROR "SDL 1.2 or SDL 2.0 is required but CMake couldn't find it.")
ENDIF(SDL_TYPE STREQUAL "AUTO")
IF(SDL_TYPE STREQUAL "SDL")
IF(NOT SDL_FOUND)
MESSAGE(FATAL_ERROR "SDL 1.2 was requested but CMake couldn't find it.")
ENDIF(NOT SDL_FOUND)
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
IF(NOT SDL2_FOUND)
MESSAGE(FATAL_ERROR "SDL 2.0 was requested but CMake couldn't find it.")
ENDIF(NOT SDL2_FOUND)
MESSAGE(WARNING "SDL 2.0 support is EXPERIMENTAL and INCOMPLETE.")
ENDIF(SDL_TYPE STREQUAL "SDL2")
IF(USE_SDL1)
pkg_check_modules(SDL REQUIRED sdl>=1.2)
ELSE()
pkg_check_modules(SDL2 REQUIRED sdl2)
ENDIF()
# Use Desktop OpenGL if it is available, else try OpenGL ES 2.0.
IF(NOT OPENGL_TYPE)
@ -134,9 +99,9 @@ IF(NOT AVP_WEB)
IF(NOT OPENGLES2_FOUND)
MESSAGE(FATAL_ERROR "OpenGL ES 2.0 was requested but CMake couldn't find it.")
ENDIF(NOT OPENGLES2_FOUND)
IF(NOT SDL_TYPE STREQUAL "SDL2")
IF(USE_SDL1)
MESSAGE(FATAL_ERROR "OpenGL ES 2.0 support requires SDL2.")
ENDIF(NOT SDL_TYPE STREQUAL "SDL2")
ENDIF()
ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2")
ENDIF(NOT AVP_WEB)
@ -373,18 +338,16 @@ IF(AVP_WEB)
ENDIF(AVP_WEB)
IF(NOT AVP_WEB)
IF(SDL_TYPE STREQUAL "SDL")
IF(USE_SDL1)
LIST(APPEND source src/main.c)
# SDL 1.2 on OS X requires this support file
IF(APPLE AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
LIST(APPEND source src/sdl12/sdlmain.m)
ENDIF(APPLE AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
ELSE()
LIST(APPEND source src/main2.c)
ENDIF(SDL_TYPE STREQUAL "SDL2")
ENDIF()
ENDIF(NOT AVP_WEB)
### build all source as C++
@ -416,13 +379,13 @@ IF(NOT AVP_WEB)
TARGET_LINK_LIBRARIES(avp winmm)
ENDIF(WIN32)
IF(SDL_TYPE STREQUAL "SDL")
IF(USE_SDL1)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIRS})
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
TARGET_LINK_LIBRARIES(avp ${SDL_LIBRARIES})
ELSE()
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS})
ENDIF(SDL_TYPE STREQUAL "SDL2")
TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARIES})
ENDIF()
IF(OPENGL_TYPE STREQUAL "OPENGL")
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIRS})
@ -440,14 +403,6 @@ IF(NOT AVP_WEB)
INCLUDE_DIRECTORIES(${LIBSWSCALE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIRS})
IF(SDL_TYPE STREQUAL "SDL")
TARGET_LINK_LIBRARIES(avp ${SDL_LIBRARIES})
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARIES})
ENDIF(SDL_TYPE STREQUAL "SDL2")
IF(OPENGL_TYPE STREQUAL "OPENGL")
TARGET_LINK_LIBRARIES(avp ${OPENGL_LIBRARIES})
ENDIF(OPENGL_TYPE STREQUAL "OPENGL")