Optional glbinding as OpenGL binding
[supertux.git] / CMakeLists.txt
index 607b976..8b1104b 100644 (file)
@@ -71,6 +71,8 @@ PKG_SEARCH_MODULE(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)
 SET(HAVE_SDL TRUE)
 
 OPTION(ENABLE_OPENGL "Enable OpenGL support" ON)
+OPTION(GLBINDING_ENABLED "Use glbinding instead of GLEW" OFF)
+OPTION(GLBINDING_DEBUG_OUTPUT "Enable glbinding debug output for each called OpenGL function" ON)
 IF(ENABLE_OPENGL)
   FIND_PACKAGE(OpenGL)
   IF(OPENGL_FOUND)
@@ -78,10 +80,21 @@ IF(ENABLE_OPENGL)
     SET(HAVE_OPENGL TRUE)
   ENDIF(OPENGL_FOUND)
 
-  FIND_PACKAGE(GLEW)
-  IF(GLEW_FOUND)
-    INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})
-  ENDIF(GLEW_FOUND)
+  IF(GLBINDING_ENABLED)
+    FIND_PACKAGE(GLBINDING REQUIRED)
+    IF(GLBINDING_FOUND)
+      INCLUDE_DIRECTORIES(${GLBINDING_INCLUDES})
+      ADD_DEFINITIONS(-DUSE_GLBINDING)
+      IF (GLBINDING_DEBUG_OUTPUT)
+        ADD_DEFINITIONS(-DUSE_GLBINDING_DEBUG_OUTPUT)
+      ENDIF()
+    ENDIF()
+  ELSE()
+    FIND_PACKAGE(GLEW REQUIRED)
+    IF(GLEW_FOUND)
+      INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIR})
+    ENDIF(GLEW_FOUND)
+  ENDIF()
 ENDIF(ENABLE_OPENGL)
 
 FIND_PACKAGE(OpenAL REQUIRED)
@@ -166,7 +179,7 @@ include_directories (${CMAKE_CURRENT_SOURCE_DIR}/external/obstack/)
 
 IF(MSVC)
 include_directories (${CMAKE_CURRENT_SOURCE_DIR}/mk/msvc)
-ADD_DEFINITIONS(-D_USE_MATH_DEFINES -DNOMINMAX)
+  ADD_DEFINITIONS(-D_USE_MATH_DEFINES -DNOMINMAX)
 ENDIF(MSVC)
 
 ## Build list of sources for supertux binary
@@ -363,7 +376,11 @@ TARGET_LINK_LIBRARIES(supertux2 ${OGGVORBIS_LIBRARIES})
 TARGET_LINK_LIBRARIES(supertux2 ${PHYSFS_LIBRARY})
 IF(HAVE_OPENGL)
     TARGET_LINK_LIBRARIES(supertux2 ${OPENGL_LIBRARY})
-    TARGET_LINK_LIBRARIES(supertux2 ${GLEW_LIBRARY})
+    IF(GLBINDING_FOUND)
+      TARGET_LINK_LIBRARIES(supertux2 ${GLBINDING_LIBRARIES})
+    ELSE()
+      TARGET_LINK_LIBRARIES(supertux2 ${GLEW_LIBRARY})
+    ENDIF()
 ENDIF(HAVE_OPENGL)
 IF(HAVE_LIBCURL)
   TARGET_LINK_LIBRARIES(supertux2 ${CURL_LIBRARY})