add_library(Renderer STATIC) if (render STREQUAL gl) # OpenGL set(USE_GL 1) target_sources(Renderer PRIVATE GL/GL.cpp GL/GL.hpp) elseif (render STREQUAL gles) # OpenGL ES # nothing? target_sources(Renderer PRIVATE GL/GL.cpp GL/GL.hpp) else() message(FATAL_ERROR "Unknown renderer!") endif() #target_include_directories(Renderer PUBLIC .) target_include_directories(Renderer PRIVATE ../..) if (WIN32) target_include_directories(Renderer PUBLIC ../../thirdparty) else() target_include_directories(Renderer PRIVATE ../../thirdparty) endif() # Find OpenGL library if (USE_GLES1_COMPATIBILITY_LAYER) message(STATUS "GLESv1 compatibility layer") set(GLES_COMPATIBILITY_LAYER_USE_SDL TRUE CACHE BOOL "" FORCE) set(GLES_COMPATIBILITY_LAYER_DEPENDENCY SDL CACHE STRING "" FORCE) #set(GLES_COMPATIBILITY_LAYER_USE_ES3 FALSE CACHE BOOL "" FORCE) add_subdirectory(../../thirdparty/gles-compatibility-layer gles-compatibility-layer) target_link_libraries(Renderer PUBLIC gles-compatibility-layer) target_compile_definitions(Renderer PUBLIC USE_GLES1_COMPATIBILITY_LAYER) if(EMSCRIPTEN) # Use WebGL 2 target_link_options(Renderer PUBLIC -sMIN_WEBGL_VERSION=2 -sMAX_WEBGL_VERSION=2) endif() elseif (WIN32) message(STATUS "Windows's opengl32") target_link_libraries(Renderer PUBLIC opengl32 glu32) target_sources(Renderer PRIVATE ../../thirdparty/GL/GLExt.cpp) elseif (ANDROID) message(STATUS "Android's opengl32") target_link_libraries(Renderer PUBLIC EGL GLESv1_CM) else() message(STATUS "System OpenGL") find_package(OpenGL REQUIRED) target_link_libraries(Renderer PUBLIC OpenGL::OpenGL) endif() if (platform STREQUAL sdl) target_link_libraries(Renderer PUBLIC SDL) endif()