From e6d811f120bcfaa980880c81d1d91b7e0f32fc1b Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 27 Dec 2022 21:10:01 +0100 Subject: [PATCH] Prefer building with SDL2 --- CMakeLists.txt | 77 +++++++++++--------------------------------------- 1 file changed, 16 insertions(+), 61 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 78ce3ae..7b2d35c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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")