]> git.lizzy.rs Git - irrlicht.git/blobdiff - source/Irrlicht/CMakeLists.txt
Merge branch 'drop-irr-compile-config' into opengl3
[irrlicht.git] / source / Irrlicht / CMakeLists.txt
index 4d2ec7ec0bb4236d724011d334471c673c13dd83..a57258d20bbea062fcbab5999f802abdb8d6f2c1 100644 (file)
@@ -89,8 +89,7 @@ if(WIN32)
 elseif(IOS)
        add_definitions(-D_IRR_IOS_PLATFORM_ -D_IRR_COMPILE_WITH_IOS_BUILTIN_MAIN_)
        if(USE_SDL2)
-               message(WARNING "SDL2 backend is not supported on iOS")
-               set(USE_SDL2 FALSE)
+               message(SEND_ERROR "SDL2 backend is not supported on iOS")
        endif()
        set(DEVICE "IOS")
 elseif(OSX)
@@ -99,8 +98,7 @@ elseif(OSX)
 elseif(ANDROID)
        add_definitions(-D_IRR_ANDROID_PLATFORM_ -D_IRR_COMPILE_ANDROID_ASSET_READER_)
        if(USE_SDL2)
-               message(WARNING "SDL2 backend is not supported on Android")
-               set(USE_SDL2 FALSE)
+               message(SEND_ERROR "SDL2 backend is not supported on Android")
        endif()
        set(DEVICE "Android")
 elseif(EMSCRIPTEN)
@@ -150,6 +148,8 @@ endif()
 
 # OpenGL
 
+option(ENABLE_OPENGL3 "Enable OpenGL 3+" FALSE)
+
 if(IOS OR ANDROID OR EMSCRIPTEN)
        set(ENABLE_OPENGL FALSE)
 else()
@@ -195,6 +195,14 @@ if(ENABLE_OPENGL)
        endif()
 endif()
 
+if(ENABLE_OPENGL3)
+       if (NOT USE_SDL2)
+               message(SEND_ERROR "OpenGL3 support requires SDL2")
+       endif()
+       set(USE_SDLGL ON)
+       set(USE_SDLGL3 ON)
+endif()
+
 if(ENABLE_GLES1)
        add_definitions(-D_IRR_COMPILE_WITH_OGLES1_)
        if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$")
@@ -210,6 +218,9 @@ if(ENABLE_GLES2)
                add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES2_USE_EXTPOINTER_)
        elseif(DEVICE STREQUAL "IOS")
                add_definitions(-D_IRR_COMPILE_WITH_EAGL_MANAGER_)
+       elseif(DEVICE STREQUAL "SDL")
+               set(USE_SDLGL ON)
+               set(USE_SDLGLES2 ON)
        endif()
 endif()
 
@@ -229,6 +240,7 @@ endif()
 
 message(STATUS "Device: ${DEVICE}")
 message(STATUS "OpenGL: ${ENABLE_OPENGL}")
+message(STATUS "OpenGL 3: ${ENABLE_OPENGL3}")
 message(STATUS "OpenGL ES: ${ENABLE_GLES1}")
 message(STATUS "OpenGL ES 2: ${ENABLE_GLES2}")
 message(STATUS "WebGL: ${ENABLE_WEBGL1}")
@@ -350,12 +362,6 @@ set(IRRDRVROBJ
        COpenGLExtensionHandler.cpp
        COGLESDriver.cpp
        COGLESExtensionHandler.cpp
-       COGLES2Driver.cpp
-       COGLES2ExtensionHandler.cpp
-       COGLES2FixedPipelineRenderer.cpp
-       COGLES2MaterialRenderer.cpp
-       COGLES2Renderer2D.cpp
-       CWebGL1Driver.cpp
        CGLXManager.cpp
        CWGLManager.cpp
        CEGLManager.cpp
@@ -380,6 +386,37 @@ add_library(IRRVIDEOOBJ OBJECT
        ${IRRIMAGEOBJ}
 )
 
+if(USE_SDLGL)
+       target_sources(IRRVIDEOOBJ PUBLIC
+               OpenGL/Driver.cpp
+               OpenGL/ExtensionHandler.cpp
+               OpenGL/FixedPipelineRenderer.cpp
+               OpenGL/MaterialRenderer.cpp
+               OpenGL/Renderer2D.cpp
+       )
+endif()
+
+if(USE_SDLGL3)
+       target_sources(IRRVIDEOOBJ PUBLIC
+               OpenGL3/Driver.cpp
+       )
+endif()
+
+if(USE_SDLGLES2)
+       target_sources(IRRVIDEOOBJ PUBLIC
+               OpenGLES2/Driver.cpp
+       )
+else()
+       target_sources(IRRVIDEOOBJ PUBLIC
+               COGLES2Driver.cpp
+               COGLES2ExtensionHandler.cpp
+               COGLES2FixedPipelineRenderer.cpp
+               COGLES2MaterialRenderer.cpp
+               COGLES2Renderer2D.cpp
+               CWebGL1Driver.cpp
+       )
+endif()
+
 add_library(IRRIOOBJ OBJECT
        CFileList.cpp
        CFileSystem.cpp
@@ -402,6 +439,10 @@ add_library(IRROTHEROBJ OBJECT
        os.cpp
 )
 
+if(ENABLE_OPENGL3)
+       target_compile_definitions(IRROTHEROBJ PRIVATE ENABLE_OPENGL3)
+endif()
+
 if(ANDROID)
        target_sources(IRROTHEROBJ PRIVATE
                Android/CIrrDeviceAndroid.cpp