From 75401a36898cb9b8184ed5f551c807b9b9ff198d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Sat, 13 Apr 2019 13:16:32 +0200 Subject: [PATCH] Fixed CMake configuration issue with EGL and GLES and wrong include header order for EGL --- src/SFML/Graphics/CMakeLists.txt | 11 +++++------ src/SFML/Window/CMakeLists.txt | 19 +++++++++---------- src/SFML/Window/EGLCheck.cpp | 1 + src/SFML/Window/EGLCheck.hpp | 1 - src/SFML/Window/EglContext.hpp | 6 +++++- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt index 9c0dcc3f89..a8906644ef 100644 --- a/src/SFML/Graphics/CMakeLists.txt +++ b/src/SFML/Graphics/CMakeLists.txt @@ -113,12 +113,11 @@ endif() # find external libraries if(SFML_OPENGL_ES) - if(SFML_OS_LINUX) - sfml_find_package(EGL INCLUDE "EGL_INCLUDE_DIR" LINK "EGL_LIBRARY") - sfml_find_package(GLES INCLUDE "GLES_INCLUDE_DIR" LINK "GLES_LIBRARY") - target_link_libraries(sfml-graphics PRIVATE EGL GLES) - elseif(SFML_OS_IOS) + if(SFML_OS_IOS) target_link_libraries(sfml-graphics PRIVATE "-framework OpenGLES") + else() + # Target GLES already defined for Window component so no sfml_find_package() here + target_link_libraries(sfml-graphics PRIVATE GLES) endif() else() # Target OpenGL already defined for Window component so no sfml_find_package() here @@ -131,7 +130,7 @@ else() endif() if(SFML_OS_ANDROID) - target_link_libraries(sfml-graphics PRIVATE z EGL GLESv1_CM) + target_link_libraries(sfml-graphics PRIVATE z) elseif(SFML_OS_IOS) target_link_libraries(sfml-graphics PRIVATE z bz2) endif() diff --git a/src/SFML/Window/CMakeLists.txt b/src/SFML/Window/CMakeLists.txt index ecf35e1431..1812f189d9 100644 --- a/src/SFML/Window/CMakeLists.txt +++ b/src/SFML/Window/CMakeLists.txt @@ -251,14 +251,19 @@ endif() if(SFML_OPENGL_ES) if(SFML_OS_IOS) - sfml_add_external(OpenGL LINK "-framework OpenGLES") - elseif(SFML_OS_ANDROID) - sfml_add_external(OpenGL LINK "EGL" "GLESv1_CM") + sfml_add_external(GLES LINK "-framework OpenGLES") + else() + sfml_find_package(GLES INCLUDE "GLES_INCLUDE_DIR" LINK "GLES_LIBRARY") + + sfml_find_package(EGL INCLUDE "EGL_INCLUDE_DIR" LINK "EGL_LIBRARY") + target_link_libraries(sfml-window PRIVATE EGL) endif() + + target_link_libraries(sfml-window PRIVATE GLES) else() sfml_find_package(OpenGL INCLUDE "OPENGL_INCLUDE_DIR" LINK "OPENGL_gl_LIBRARY") + target_link_libraries(sfml-window PRIVATE OpenGL) endif() -target_link_libraries(sfml-window PRIVATE OpenGL) if(SFML_OS_WINDOWS AND NOT SFML_COMPILER_MSVC) include(CheckIncludeFile) @@ -268,12 +273,6 @@ if(SFML_OS_WINDOWS AND NOT SFML_COMPILER_MSVC) endif() endif() -if(SFML_OPENGL_ES AND SFML_OS_LINUX) - sfml_find_package(EGL INCLUDE "EGL_INCLUDE_DIR" LINK "EGL_LIBRARY") - sfml_find_package(GLES INCLUDE "GLES_INCLUDE_DIR" LINK "GLES_LIBRARY") - target_link_libraries(sfml-window PRIVATE EGL GLES) -endif() - if(SFML_OS_LINUX) sfml_find_package(UDev INCLUDE "UDEV_INCLUDE_DIR" LINK "UDEV_LIBRARIES") target_link_libraries(sfml-window PRIVATE UDev) diff --git a/src/SFML/Window/EGLCheck.cpp b/src/SFML/Window/EGLCheck.cpp index dabf54e1f0..51869baf40 100644 --- a/src/SFML/Window/EGLCheck.cpp +++ b/src/SFML/Window/EGLCheck.cpp @@ -28,6 +28,7 @@ //////////////////////////////////////////////////////////// #include #include +#include namespace sf diff --git a/src/SFML/Window/EGLCheck.hpp b/src/SFML/Window/EGLCheck.hpp index 317d9a8e65..664477d935 100644 --- a/src/SFML/Window/EGLCheck.hpp +++ b/src/SFML/Window/EGLCheck.hpp @@ -29,7 +29,6 @@ // Headers //////////////////////////////////////////////////////////// #include -#include #include diff --git a/src/SFML/Window/EglContext.hpp b/src/SFML/Window/EglContext.hpp index a889c3ac76..589868fa3a 100644 --- a/src/SFML/Window/EglContext.hpp +++ b/src/SFML/Window/EglContext.hpp @@ -33,7 +33,11 @@ #include #include #include - +#include // Prevent conflict with macro None from Xlib +#include +#ifdef SFML_SYSTEM_LINUX + #include +#endif namespace sf {