From e709ef6a04f47c9fbcb0b49ba567b4d93d80f3e9 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 --- examples/CMakeLists.txt | 2 -- examples/opengl/CMakeLists.txt | 2 +- examples/window/CMakeLists.txt | 8 +++++++- 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 +++++- 8 files changed, 26 insertions(+), 24 deletions(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 2c9393f3db..3b64fcc72d 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,5 +1,3 @@ - - # CLI based examples if (NOT SFML_OS_IOS) if(SFML_BUILD_NETWORK) diff --git a/examples/opengl/CMakeLists.txt b/examples/opengl/CMakeLists.txt index 1cdde0289c..29b466808e 100644 --- a/examples/opengl/CMakeLists.txt +++ b/examples/opengl/CMakeLists.txt @@ -16,5 +16,5 @@ endif() sfml_add_example(opengl GUI_APP SOURCES ${SRC} BUNDLE_RESOURCES ${RESOURCES} - DEPENDS sfml-graphics OpenGL + DEPENDS sfml-graphics RESOURCES_DIR resources) diff --git a/examples/window/CMakeLists.txt b/examples/window/CMakeLists.txt index b106c04355..8d50a65258 100644 --- a/examples/window/CMakeLists.txt +++ b/examples/window/CMakeLists.txt @@ -4,7 +4,13 @@ set(SRCROOT ${PROJECT_SOURCE_DIR}/examples/window) # all source files set(SRC ${SRCROOT}/Window.cpp) +if(SFML_OPENGL_ES) + set(DEPENDENCY GLES) +else() + set(DEPENDENCY OpenGL) +endif() + # define the window target sfml_add_example(window GUI_APP SOURCES ${SRC} - DEPENDS sfml-window OpenGL) + DEPENDS sfml-window ${DEPENDENCY}) diff --git a/src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt index 9c0dcc3f89..38f4098155 100644 --- a/src/SFML/Graphics/CMakeLists.txt +++ b/src/SFML/Graphics/CMakeLists.txt @@ -113,13 +113,8 @@ 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) - target_link_libraries(sfml-graphics PRIVATE "-framework OpenGLES") - endif() + # Target GLES already defined for Window component so no sfml_find_package() here + target_link_libraries(sfml-graphics PRIVATE GLES) else() # Target OpenGL already defined for Window component so no sfml_find_package() here target_link_libraries(sfml-graphics PRIVATE OpenGL) @@ -131,7 +126,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 {