diff --git a/source/Irrlicht/CMakeLists.txt b/source/Irrlicht/CMakeLists.txt index 6a750d0db..73216ce5e 100644 --- a/source/Irrlicht/CMakeLists.txt +++ b/source/Irrlicht/CMakeLists.txt @@ -185,7 +185,7 @@ endif() if(ENABLE_OPENGL) add_definitions(-D_IRR_COMPILE_WITH_OPENGL_) - set(OPENGL_DIRECT_LINK TRUE) # not yet possible to remove this + set(OPENGL_DIRECT_LINK TRUE) # driver relies on this if(DEVICE STREQUAL "WINDOWS") add_definitions(-D_IRR_COMPILE_WITH_WGL_MANAGER_) elseif(DEVICE STREQUAL "X11") @@ -269,6 +269,24 @@ if(USE_SDL2) message(STATUS "Found SDL2: ${SDL2_LIBRARIES}") endif() +# More special config + +if(ENABLE_OPENGL AND DEVICE STREQUAL "SDL") + # the driver requires some GL 4.5 symbols to compile correctly and sometimes + # paradoxically SDL headers are more out-of-date than the OS ones, + # so can't use them. + set(CMAKE_REQUIRED_INCLUDES ${SDL2_INCLUDE_DIRS}) + unset(GL_VERSION_4_5 CACHE) + check_cxx_source_compiles("#include \n\ +#ifndef GL_VERSION_4_5\n\ +#error\n\ +#endif\n\ +int main() {}" CHECK_GL_VERSION_4_5) + if(CHECK_GL_VERSION_4_5) + add_definitions(-DIRR_PREFER_SDL_GL_HEADER) + endif() +endif() + # Platform-specific libs if(ANDROID) diff --git a/source/Irrlicht/COpenGLCommon.h b/source/Irrlicht/COpenGLCommon.h index 2f83507be..1afdbeaf5 100644 --- a/source/Irrlicht/COpenGLCommon.h +++ b/source/Irrlicht/COpenGLCommon.h @@ -6,7 +6,7 @@ #ifdef _IRR_COMPILE_WITH_OPENGL_ -#if defined(_IRR_COMPILE_WITH_SDL_DEVICE_) +#if defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && defined(IRR_PREFER_SDL_GL_HEADER) #include #include #else