From ae83459948e9af720a33ee476c775a226bd8e882 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 27 Dec 2022 21:45:05 +0100 Subject: [PATCH] Only build with GLES when requested --- CMakeLists.txt | 76 ++++++++++---------------------------------------- 1 file changed, 15 insertions(+), 61 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b2d35c..828586d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,11 +49,9 @@ IF(NOT AVP_WEB) pkg_check_modules(LIBAVUTIL REQUIRED libavutil) pkg_check_modules(LIBSWSCALE REQUIRED libswscale) pkg_check_modules(OPENAL REQUIRED openal) - pkg_check_modules(EGL egl) - pkg_check_modules(OPENGL gl) - pkg_check_modules(OPENGLES2 glesv2) option(USE_SDL1 "Use SDL 1.2 instead of SDL 2") + option(USE_GLES2 "Use OpenGLES 2 instead of OpenGL") IF(USE_SDL1) pkg_check_modules(SDL REQUIRED sdl>=1.2) @@ -61,49 +59,16 @@ IF(NOT AVP_WEB) pkg_check_modules(SDL2 REQUIRED sdl2) ENDIF() - # Use Desktop OpenGL if it is available, else try OpenGL ES 2.0. - IF(NOT OPENGL_TYPE) - SET(OPENGL_TYPE AUTO CACHE STRING "OpenGL Version; one of: AUTO OPENGL OPENGLES2") - SET_PROPERTY(CACHE OPENGL_TYPE PROPERTY STRINGS "AUTO" "OPENGL" "OPENGLES2") - ENDIF(NOT OPENGL_TYPE) - - IF(NOT OPENGL_TYPE STREQUAL "AUTO" AND NOT OPENGL_TYPE STREQUAL "OPENGL" AND NOT OPENGL_TYPE STREQUAL "OPENGLES2") - MESSAGE(FATAL_ERROR "Invalid OPENGL_TYPE setting ${OPENGL_TYPE}; must be one of AUTO OPENGL OPENGLES2") - ENDIF(NOT OPENGL_TYPE STREQUAL "AUTO" AND NOT OPENGL_TYPE STREQUAL "OPENGL" AND NOT OPENGL_TYPE STREQUAL "OPENGLES2") - - IF(OPENGL_TYPE STREQUAL "AUTO") - IF(OPENGL_FOUND) - MESSAGE(STATUS "OpenGL found; using that.") - SET(OPENGL_TYPE "OPENGL") - ENDIF(OPENGL_FOUND) - ENDIF(OPENGL_TYPE STREQUAL "AUTO") - - IF(OPENGL_TYPE STREQUAL "AUTO") - IF(OPENGLES2_FOUND) - MESSAGE(STATUS "OpenGL ES 2.0 found; using that.") - SET(OPENGL_TYPE "OPENGLES2") - ENDIF(OPENGLES2_FOUND) - ENDIF(OPENGL_TYPE STREQUAL "AUTO") - - IF(OPENGL_TYPE STREQUAL "AUTO") - MESSAGE(FATAL_ERROR "OpenGL is required but CMake couldn't find it.") - ENDIF(OPENGL_TYPE STREQUAL "AUTO") - - IF(OPENGL_TYPE STREQUAL "OPENGL") - IF(NOT OPENGL_FOUND) - MESAGE(FATAL_ERROR "OpenGL was requested but CMake couldn't find it.") - ENDIF(NOT OPENGL_FOUND) - ENDIF(OPENGL_TYPE STREQUAL "OPENGL") - - IF(OPENGL_TYPE STREQUAL "OPENGLES2") - IF(NOT OPENGLES2_FOUND) - MESSAGE(FATAL_ERROR "OpenGL ES 2.0 was requested but CMake couldn't find it.") - ENDIF(NOT OPENGLES2_FOUND) + IF(USE_GLES2) IF(USE_SDL1) MESSAGE(FATAL_ERROR "OpenGL ES 2.0 support requires SDL2.") ENDIF() - ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2") -ENDIF(NOT AVP_WEB) + pkg_check_modules(EGL REQUIRED egl) + pkg_check_modules(OPENGLES2 REQUIRED glesv2) + ELSE() + pkg_check_modules(OPENGL REQUIRED gl) + ENDIF() +ENDIF() # required source files LIST(APPEND source src/bink.c) @@ -387,15 +352,16 @@ IF(NOT AVP_WEB) TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARIES}) ENDIF() - IF(OPENGL_TYPE STREQUAL "OPENGL") - INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIRS}) - ENDIF(OPENGL_TYPE STREQUAL "OPENGL") - - IF(OPENGL_TYPE STREQUAL "OPENGLES2") + IF(USE_GLES2) ADD_DEFINITIONS(-DUSE_OPENGL_ES=1) INCLUDE_DIRECTORIES(${OPENGLES2_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${EGL_INCLUDE_DIRS}) - ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2") + TARGET_LINK_LIBRARIES(avp ${OPENGLES2_LIBRARIES}) + TARGET_LINK_LIBRARIES(avp ${EGL_LIBRARIES}) + ELSE() + INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIRS}) + TARGET_LINK_LIBRARIES(avp ${OPENGL_LIBRARIES}) + ENDIF() INCLUDE_DIRECTORIES(${LIBAVCODEC_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${LIBAVFORMAT_INCLUDE_DIRS}) @@ -403,21 +369,9 @@ IF(NOT AVP_WEB) INCLUDE_DIRECTORIES(${LIBSWSCALE_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIRS}) - IF(OPENGL_TYPE STREQUAL "OPENGL") - TARGET_LINK_LIBRARIES(avp ${OPENGL_LIBRARIES}) - ENDIF(OPENGL_TYPE STREQUAL "OPENGL") - - IF(OPENGL_TYPE STREQUAL "OPENGLES2") - TARGET_LINK_LIBRARIES(avp ${OPENGLES2_LIBRARIES}) - TARGET_LINK_LIBRARIES(avp ${EGL_LIBRARIES}) - ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2") - TARGET_LINK_LIBRARIES(avp ${LIBAVCODEC_LIBRARIES}) TARGET_LINK_LIBRARIES(avp ${LIBAVFORMAT_LIBRARIES}) TARGET_LINK_LIBRARIES(avp ${LIBAVUTIL_LIBRARIES}) TARGET_LINK_LIBRARIES(avp ${LIBSWSCALE_LIBRARIES}) TARGET_LINK_LIBRARIES(avp ${OPENAL_LIBRARIES}) - - - ENDIF(NOT AVP_WEB)