From 526a9e4b66abaf83eb6b1aaa3e93375acd87b830 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Wed, 24 Jul 2019 23:15:28 +0200 Subject: [PATCH] Let ENABLE_GLES appear in cmake_config.h and change its functionality --- README.md | 2 +- src/CMakeLists.txt | 31 ++++++++++++++++++++++--------- src/cmake_config.h.in | 1 + 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 83676a866..fcc7fec67 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,7 @@ General options and their default values: ENABLE_CURSES=ON - Build with (n)curses; Enables a server side terminal (command line option: --terminal) ENABLE_FREETYPE=ON - Build with FreeType2; Allows using TTF fonts ENABLE_GETTEXT=ON - Build with Gettext; Allows using translations - ENABLE_GLES=OFF - Search for Open GLES headers & libraries and use them + ENABLE_GLES=OFF - Build for OpenGL ES instead of OpenGL (requires support by Irrlicht) ENABLE_LEVELDB=ON - Build with LevelDB; Enables use of LevelDB map backend ENABLE_POSTGRESQL=ON - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended) ENABLE_REDIS=ON - Build with libhiredis; Enables use of Redis map backend diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cb920e875..2627a0b97 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -102,10 +102,18 @@ if(BUILD_CLIENT AND ENABLE_SOUND) endif() -option(ENABLE_GLES "Enable OpenGL ES support" FALSE) +option(ENABLE_GLES "Use OpenGL ES instead of OpenGL" FALSE) mark_as_advanced(ENABLE_GLES) if(ENABLE_GLES) - find_package(OpenGLES2) + find_package(OpenGLES2 REQUIRED) +elseif() + if(NOT WIN32) # Unix probably + set(OPENGL_GL_PREFERENCE "LEGACY" CACHE STRING + "See CMake Policy CMP0072 for reference. GLVND is broken on some nvidia setups") + set(OpenGL_GL_PREFERENCE ${OPENGL_GL_PREFERENCE}) + + find_package(OpenGL REQUIRED) + endif() endif() @@ -275,11 +283,6 @@ else() find_package(X11 REQUIRED) endif(NOT HAIKU) - set(OPENGL_GL_PREFERENCE "LEGACY" CACHE STRING - "See CMake Policy CMP0072 for reference. GLVND is broken on some nvidia setups") - set(OpenGL_GL_PREFERENCE ${OPENGL_GL_PREFERENCE}) - - find_package(OpenGL REQUIRED) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) @@ -519,7 +522,6 @@ if(BUILD_CLIENT) ${PROJECT_NAME} ${ZLIB_LIBRARIES} ${IRRLICHT_LIBRARY} - ${OPENGL_LIBRARIES} ${JPEG_LIBRARIES} ${BZIP2_LIBRARIES} ${PNG_LIBRARIES} @@ -529,7 +531,6 @@ if(BUILD_CLIENT) ${LUA_LIBRARY} ${GMP_LIBRARY} ${JSON_LIBRARY} - ${OPENGLES2_LIBRARIES} ${PLATFORM_LIBS} ${CLIENT_PLATFORM_LIBS} ) @@ -543,6 +544,18 @@ if(BUILD_CLIENT) ${client_LIBS} ) endif() + if(ENABLE_GLES) + target_link_libraries( + ${PROJECT_NAME} + ${OPENGLES2_LIBRARIES} + ${EGL_LIBRARIES} + ) + else() + target_link_libraries( + ${PROJECT_NAME} + ${OPENGL_LIBRARIES} + ) + endif() if(USE_GETTEXT) target_link_libraries( ${PROJECT_NAME} diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in index 81b8c2695..cb54cb488 100644 --- a/src/cmake_config.h.in +++ b/src/cmake_config.h.in @@ -26,6 +26,7 @@ #cmakedefine01 USE_SPATIAL #cmakedefine01 USE_SYSTEM_GMP #cmakedefine01 USE_REDIS +#cmakedefine01 ENABLE_GLES #cmakedefine01 HAVE_ENDIAN_H #cmakedefine01 CURSES_HAVE_CURSES_H #cmakedefine01 CURSES_HAVE_NCURSES_H