Commit d3af04a7 authored by Jan Möbius's avatar Jan Möbius
Browse files

Merge branch 'featureQt5.6Support' into 'master'

Feature qt5.6 support



See merge request !92
parents d739ac88 da097bd9
Pipeline #1770 passed with stage
...@@ -27,12 +27,17 @@ endif () ...@@ -27,12 +27,17 @@ endif ()
acg_openmp () acg_openmp ()
# check for OpenGL and GLUT as our required dependencies # check for OpenGL, GLEW and GLUT as our required dependencies
find_package (OpenGL) find_package (OpenGL)
if (NOT OPENGL_FOUND) if (NOT OPENGL_FOUND)
message (FATAL_ERROR "OpengGL not found!") message (FATAL_ERROR "OpengGL not found!")
endif () endif ()
find_package (GLEW)
if (NOT GLEW_FOUND)
message (FATAL_ERROR "GLEW not found!")
endif ()
find_package (GLUT) find_package (GLUT)
if (NOT GLUT_FOUND) if (NOT GLUT_FOUND)
message (FATAL_ERROR "GLUT not found!") message (FATAL_ERROR "GLUT not found!")
...@@ -48,6 +53,7 @@ set(INCLUDE_DIRS ${OPENMESH_INCLUDE_DIRS} ...@@ -48,6 +53,7 @@ set(INCLUDE_DIRS ${OPENMESH_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/ShaderUtils ${CMAKE_CURRENT_SOURCE_DIR}/ShaderUtils
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR} ) ${GLUT_INCLUDE_DIR} )
set(ADDITIONAL_LINK_LIBRARIES "" ) set(ADDITIONAL_LINK_LIBRARIES "" )
...@@ -84,6 +90,7 @@ include_directories ( ...@@ -84,6 +90,7 @@ include_directories (
) )
link_directories ( link_directories (
${GLEW_LIBRARY_DIR}
${GLUT_LIBRARY_DIR} ${GLUT_LIBRARY_DIR}
) )
...@@ -152,6 +159,7 @@ acg_print_configure_header (ACG "ACG") ...@@ -152,6 +159,7 @@ acg_print_configure_header (ACG "ACG")
target_link_libraries ( ACG ${OPENMESH_LIBRARIES} target_link_libraries ( ACG ${OPENMESH_LIBRARIES}
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY}
${GLUT_LIBRARIES} ${GLUT_LIBRARIES}
${ADDITIONAL_LINK_LIBRARIES} ) ${ADDITIONAL_LINK_LIBRARIES} )
......
...@@ -126,13 +126,10 @@ MSFilterWeights::MSFilterWeights(int _numSamples) : numSamples_(_numSamples) { ...@@ -126,13 +126,10 @@ MSFilterWeights::MSFilterWeights(int _numSamples) : numSamples_(_numSamples) {
//============================================================================= //=============================================================================
#if defined(GL_ARB_texture_buffer_object)
void MSFilterWeights::asTextureBuffer( TextureBuffer& out ) { void MSFilterWeights::asTextureBuffer( TextureBuffer& out ) {
if (numSamples_) if (numSamples_)
out.setBufferData(numSamples_ * 4, &weights_[0], GL_R32F, GL_STATIC_DRAW); out.setBufferData(numSamples_ * 4, &weights_[0], GL_R32F, GL_STATIC_DRAW);
} }
#endif
//============================================================================= //=============================================================================
......
...@@ -125,6 +125,7 @@ void FBO::del() ...@@ -125,6 +125,7 @@ void FBO::del()
void FBO::attachTexture( GLenum _attachment, GLuint _texture, GLuint _level ) void FBO::attachTexture( GLenum _attachment, GLuint _texture, GLuint _level )
{ {
#ifdef GL_VERSION_3_2
// bind fbo // bind fbo
bind(); bind();
...@@ -154,6 +155,9 @@ void FBO::attachTexture( GLenum _attachment, GLuint _texture, GLuint _level ) ...@@ -154,6 +155,9 @@ void FBO::attachTexture( GLenum _attachment, GLuint _texture, GLuint _level )
// track texture id // track texture id
attachments_[_attachment] = intID; attachments_[_attachment] = intID;
#else
std::cerr << "error: FBO::attachTexture unsupported - update glew headers and rebuild" << std::endl;
#endif
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
......
...@@ -47,7 +47,6 @@ ...@@ -47,7 +47,6 @@
* * * *
\*===========================================================================*/ \*===========================================================================*/
#include <ACG/GL/acg_glew.hh>
#include <ACG/GL/GLFormatInfo.hh> #include <ACG/GL/GLFormatInfo.hh>
#include <iostream> #include <iostream>
#include <QString> #include <QString>
...@@ -82,6 +81,7 @@ GLFormatInfo::GLFormatInfo( GLenum _internalFormat ) ...@@ -82,6 +81,7 @@ GLFormatInfo::GLFormatInfo( GLenum _internalFormat )
registerFmt(GL_DEPTH_STENCIL, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 24, 8, 0, 0, UnsignedInt, false); registerFmt(GL_DEPTH_STENCIL, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 24, 8, 0, 0, UnsignedInt, false);
registerFmt(GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 24, 8, 0, 0, UnsignedInt, false); registerFmt(GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, 24, 8, 0, 0, UnsignedInt, false);
#ifdef GL_VERSION_3_0
// single channel formats // single channel formats
registerFmt(GL_R8, GL_RED, GL_UNSIGNED_BYTE, 8, 0, 0, 0, UnsignedInt, true); registerFmt(GL_R8, GL_RED, GL_UNSIGNED_BYTE, 8, 0, 0, 0, UnsignedInt, true);
registerFmt(GL_R8_SNORM, GL_RED, GL_BYTE, 8, 0, 0, 0, SignedInt, true); registerFmt(GL_R8_SNORM, GL_RED, GL_BYTE, 8, 0, 0, 0, SignedInt, true);
...@@ -130,18 +130,19 @@ GLFormatInfo::GLFormatInfo( GLenum _internalFormat ) ...@@ -130,18 +130,19 @@ GLFormatInfo::GLFormatInfo( GLenum _internalFormat )
registerFmt(GL_RGBA32I, GL_RGBA_INTEGER, GL_INT, 32, 32, 32, 32, SignedInt, false); registerFmt(GL_RGBA32I, GL_RGBA_INTEGER, GL_INT, 32, 32, 32, 32, SignedInt, false);
registerFmt(GL_RGBA32UI, GL_RGBA_INTEGER, GL_UNSIGNED_INT, 32, 32, 32, 32, UnsignedInt, false); registerFmt(GL_RGBA32UI, GL_RGBA_INTEGER, GL_UNSIGNED_INT, 32, 32, 32, 32, UnsignedInt, false);
registerFmt(GL_RGBA32F, GL_RGBA, GL_FLOAT, 32, 32, 32, 32, FloatingPt, false); registerFmt(GL_RGBA32F, GL_RGBA, GL_FLOAT, 32, 32, 32, 32, FloatingPt, false);
#endif // GL_VERSION_3_0
// depth // depth
registerFmt(GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 24, 0, 0, 0, UnsignedInt, false); registerFmt(GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, 24, 0, 0, 0, UnsignedInt, false);
registerFmt(GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 16, 0, 0, 0, UnsignedInt, false); registerFmt(GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, 16, 0, 0, 0, UnsignedInt, false);
#ifdef GL_DEPTH_COMPONENT32F #ifdef GL_ARB_depth_buffer_float
registerFmt(GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, 32, 0, 0, 0, FloatingPt, false); registerFmt(GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, 32, 0, 0, 0, FloatingPt, false);
registerFmt(GL_DEPTH32F_STENCIL8, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 32, 8, -24, 0, FloatingPt, false); registerFmt(GL_DEPTH32F_STENCIL8, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, 32, 8, -24, 0, FloatingPt, false);
#endif #endif // GL_ARB_depth_buffer_float
#ifdef GL_STENCIL_INDEX8 #ifdef GL_ARB_texture_stencil8
registerFmt(GL_STENCIL_INDEX8, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, 8, 0, 0, 0, UnsignedInt, false); registerFmt(GL_STENCIL_INDEX8, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, 8, 0, 0, 0, UnsignedInt, false);
#endif #endif // GL_ARB_texture_stencil8
} }
std::map<GLenum, GLFormatInfo>::iterator f = formatMap_.find(_internalFormat); std::map<GLenum, GLFormatInfo>::iterator f = formatMap_.find(_internalFormat);
......
...@@ -1327,7 +1327,7 @@ void GLState::syncFromGL() ...@@ -1327,7 +1327,7 @@ void GLState::syncFromGL()
GLint getparam; GLint getparam;
#ifdef GL_BLEND_SRC_RGB #ifdef GL_VERSION_1_4
glGetIntegerv(GL_BLEND_SRC_RGB, &getparam); glGetIntegerv(GL_BLEND_SRC_RGB, &getparam);
stateStack_.back().blendFuncState_[0] = getparam; stateStack_.back().blendFuncState_[0] = getparam;
...@@ -1611,7 +1611,7 @@ void GLState::blendFuncSeparate(GLenum _srcRGB, GLenum _dstRGB, GLenum _srcAlpha ...@@ -1611,7 +1611,7 @@ void GLState::blendFuncSeparate(GLenum _srcRGB, GLenum _dstRGB, GLenum _srcAlpha
stateStack_.back().blendFuncState_[2] != _srcAlpha || stateStack_.back().blendFuncState_[3] != _dstAlpha) stateStack_.back().blendFuncState_[2] != _srcAlpha || stateStack_.back().blendFuncState_[3] != _dstAlpha)
#endif #endif
{ {
#ifdef GL_BLEND_SRC_RGB #ifdef GL_VERSION_1_4
// check if glew has loaded glBlendFuncSeparate already // check if glew has loaded glBlendFuncSeparate already
if (glBlendFuncSeparate) if (glBlendFuncSeparate)
glBlendFuncSeparate(_srcRGB, _dstRGB, _srcAlpha, _dstAlpha); glBlendFuncSeparate(_srcRGB, _dstRGB, _srcAlpha, _dstAlpha);
......
...@@ -316,7 +316,7 @@ void IRenderer::addRenderObject(ACG::RenderObject* _renderObject) ...@@ -316,7 +316,7 @@ void IRenderer::addRenderObject(ACG::RenderObject* _renderObject)
p->internalFlags_ = 0; p->internalFlags_ = 0;
// precompile shader // precompile shader
#ifdef GL_GEOMETRY_INPUT_TYPE #ifdef GL_VERSION_3_2
GLSL::Program* shaderProg = ACG::ShaderCache::getInstance()->getProgram(&p->shaderDesc); GLSL::Program* shaderProg = ACG::ShaderCache::getInstance()->getProgram(&p->shaderDesc);
#endif #endif
...@@ -324,7 +324,7 @@ void IRenderer::addRenderObject(ACG::RenderObject* _renderObject) ...@@ -324,7 +324,7 @@ void IRenderer::addRenderObject(ACG::RenderObject* _renderObject)
// check primitive type and geometry shader // check primitive type and geometry shader
if (errorDetectionLevel_ > 1 && p->shaderDesc.geometryTemplateFile.length()) if (errorDetectionLevel_ > 1 && p->shaderDesc.geometryTemplateFile.length())
{ {
#ifdef GL_GEOMETRY_INPUT_TYPE #ifdef GL_VERSION_3_2
GLint geomInputType = 0; GLint geomInputType = 0;
glGetProgramiv(shaderProg->getProgramId(), GL_GEOMETRY_INPUT_TYPE, &geomInputType); glGetProgramiv(shaderProg->getProgramId(), GL_GEOMETRY_INPUT_TYPE, &geomInputType);
......
...@@ -188,7 +188,14 @@ void ScreenQuad::intDraw (GLSL::Program* _prog, int _numInstances) ...@@ -188,7 +188,14 @@ void ScreenQuad::intDraw (GLSL::Program* _prog, int _numInstances)
if (_numInstances < 1) if (_numInstances < 1)
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
else else
{
#ifdef GL_VERSION_3_1
glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, _numInstances); glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, _numInstances);
#else
std::cerr << "error: instanced ScreenQuad draw - outdated glew version" << std::endl;
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
#endif
}
if (_prog) if (_prog)
decl_->deactivateShaderPipeline(_prog); decl_->deactivateShaderPipeline(_prog);
......
...@@ -62,13 +62,20 @@ ...@@ -62,13 +62,20 @@
#include <cstdlib> #include <cstdlib>
#include <sstream> #include <sstream>
#ifndef __APPLE__
#include "gl_compat_4_4.hh"
#else
#include <qgl>
#endif
#if defined(ARCH_DARWIN)
#include <gl/glew.h>
#elif defined(WIN32)
#include <gl/glew.h>
#else // Unix
#include <GL/glew.h>
#endif
//============================================================================= //=============================================================================
......
...@@ -69,8 +69,11 @@ ...@@ -69,8 +69,11 @@
#elif defined(WIN32) #elif defined(WIN32)
#include "acg_glew.hh"
#include <windows.h> #include <windows.h>
// Dont do this anymore! Use dll version. No problems with plugins and dll
// but a lot with static linking
// # define GLEW_STATIC 1
#include <gl/glew.h>
#include <gl/glut.h> #include <gl/glut.h>
#else #else
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
...@@ -47,7 +47,6 @@ ...@@ -47,7 +47,6 @@
* * * *
\*===========================================================================*/ \*===========================================================================*/
#include <ACG/GL/acg_glew.hh> #include <ACG/GL/acg_glew.hh>
#include <ACG/GL/globjects.hh> #include <ACG/GL/globjects.hh>
#include <ACG/GL/GLFormatInfo.hh> #include <ACG/GL/GLFormatInfo.hh>
......
...@@ -1128,8 +1128,7 @@ void QtBaseViewer::initializeGL() ...@@ -1128,8 +1128,7 @@ void QtBaseViewer::initializeGL()
// we use GLEW to manage extensions // we use GLEW to manage extensions
// initialize it first // initialize it first
#ifndef __APPLE__ #ifndef __APPLE__
//glewInit(); glewInit();
ogl_LoadFunctions();
#endif #endif
...@@ -1243,8 +1242,7 @@ void QtBaseViewer::paintGL() ...@@ -1243,8 +1242,7 @@ void QtBaseViewer::paintGL()
// we use GLEW to manage extensions // we use GLEW to manage extensions
// initialize it first // initialize it first
#ifndef __APPLE__ #ifndef __APPLE__
//glewInit(); glewInit();
ogl_LoadFunctions();
#endif #endif
// lock update // lock update
......
...@@ -131,12 +131,17 @@ endif() ...@@ -131,12 +131,17 @@ endif()
acg_openmp () acg_openmp ()
# check for OpenGL and GLUT as our required dependencies # check for OpenGL, GLEW and GLUT as our required dependencies
find_package (OpenGL) find_package (OpenGL)
if (NOT OPENGL_FOUND) if (NOT OPENGL_FOUND)
message (FATAL_ERROR "OpengGL not found!") message (FATAL_ERROR "OpengGL not found!")
endif () endif ()
find_package (GLEW)
if (NOT GLEW_FOUND)
message (FATAL_ERROR "GLEW not found!")
endif ()
find_package (GLUT) find_package (GLUT)
if (NOT GLUT_FOUND) if (NOT GLUT_FOUND)
message (FATAL_ERROR "GLUT not found!") message (FATAL_ERROR "GLUT not found!")
......
...@@ -2035,7 +2035,7 @@ void Core::showReducedMenuBar(bool reduced) { ...@@ -2035,7 +2035,7 @@ void Core::showReducedMenuBar(bool reduced) {
} }
void Core::finishSplash() { void Core::finishSplash() {
splash_->finish(coreWidget_); splash_->finish(coreWidget_);
} }
......
...@@ -7,6 +7,7 @@ include_directories ( ...@@ -7,6 +7,7 @@ include_directories (
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}
) )
...@@ -28,8 +29,14 @@ if( APPLE ) ...@@ -28,8 +29,14 @@ if( APPLE )
endforeach () endforeach ()
link_directories ( link_directories (
${GLEW_LIBRARY_DIR}
${ADDITIONAL_PLUGINLIB_LINK_DIRS} ${ADDITIONAL_PLUGINLIB_LINK_DIRS}
) )
else (APPLE)
link_directories (
${GLEW_LIBRARY_DIR}
)
endif(APPLE) endif(APPLE)
if (WIN32) if (WIN32)
...@@ -222,6 +229,7 @@ target_link_libraries (${OPENFLIPPER_PRODUCT_STRING} ...@@ -222,6 +229,7 @@ target_link_libraries (${OPENFLIPPER_PRODUCT_STRING}
OpenFlipperPluginLib OpenFlipperPluginLib
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY}
${GLUT_LIBRARIES} ${GLUT_LIBRARIES}
${COREAPP_ADDITIONAL_LINK_LIBRARIES} ${COREAPP_ADDITIONAL_LINK_LIBRARIES}
${OPENFLIPPER_STATIC_PLUGINS} ${OPENFLIPPER_STATIC_PLUGINS}
......
...@@ -11,6 +11,7 @@ OpenFlipper. ...@@ -11,6 +11,7 @@ OpenFlipper.
<ul> <ul>
<li> 5.5 >= Qt >= 4.8.6 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0</li> <li> 5.5 >= Qt >= 4.8.6 ( http://www.qt.io/download/ ) Use the OpenGL version for Qt >= 5.0</li>
<li> GLUT ( http://www.opengl.org/resources/libraries/glut/ )</li> <li> GLUT ( http://www.opengl.org/resources/libraries/glut/ )</li>
<li> GLEW (>=1.6) ( http://glew.sourceforge.net )</li>
</ul> </ul>
\section optlibs Optional libraries ( Without these libraries some functionality might not be available) \section optlibs Optional libraries ( Without these libraries some functionality might not be available)
......
...@@ -446,9 +446,13 @@ int main(int argc, char **argv) ...@@ -446,9 +446,13 @@ int main(int argc, char **argv)
} }
} }
} }
// After setting all Options from command line, build the real gui // After setting all Options from command line, build the real gui
w->init(); w->init();
#ifndef __APPLE__
initGlew();
#endif
for ( int i = 0 ; i < args.FileCount(); ++i ) for ( int i = 0 ; i < args.FileCount(); ++i )
w->commandLineOpen(args.File(i), openPolyMeshes); w->commandLineOpen(args.File(i), openPolyMeshes);
......
...@@ -42,12 +42,14 @@ include_directories ( ...@@ -42,12 +42,14 @@ include_directories (
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}
${ADDITIONAL_PLUGINLIB_INCS} ${ADDITIONAL_PLUGINLIB_INCS}
${PACKAGE_INCLUDES} ${PACKAGE_INCLUDES}
) )
link_directories ( link_directories (
${GLEW_LIBRARY_DIR}
${ADDITIONAL_PLUGINLIB_LINK_DIRS} ${ADDITIONAL_PLUGINLIB_LINK_DIRS}
) )
...@@ -174,6 +176,7 @@ target_link_libraries (OpenFlipperPluginLib ...@@ -174,6 +176,7 @@ target_link_libraries (OpenFlipperPluginLib
ACG ACG
${QT_LIBRARIES} ${QT_LIBRARIES}
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}
${GLEW_LIBRARY}
${GLUT_LIBRARIES} ${GLUT_LIBRARIES}
${FTGL_LIBS} ${FTGL_LIBS}
${ADDITIONAL_PLUGINLIB_LIBS} ${ADDITIONAL_PLUGINLIB_LIBS}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
# [TRANSLATION_ADDFILES file1 file2 ...] # [TRANSLATION_ADDFILES file1 file2 ...]
# [LICENSEMANAGER]) # [LICENSEMANAGER])
# #
# DIRS = additional directories with source files # DIRS = additional directories with source files
# DEPS = required dependencies for find_package macro # DEPS = required dependencies for find_package macro
# OPTDEPS = optional dependencies for find_package macro, if found, a define ENABLE_<Depname> will be added automatically # OPTDEPS = optional dependencies for find_package macro, if found, a define ENABLE_<Depname> will be added automatically
...@@ -28,6 +29,7 @@ ...@@ -28,6 +29,7 @@
# INCDIRS = additional include directories # INCDIRS = additional include directories
# ADDSRC = additional source files # ADDSRC = additional source files
# INSTALLDATA = directories that will be installed into the openflipper data directory # INSTALLDATA = directories that will be installed into the openflipper data directory
# GLEWDEFINITIONS = Checks glew if it defines the given definitions
# #
# TRANSLATION_LANGUAGES = language codes for translation # TRANSLATION_LANGUAGES = language codes for translation
# TRANSLATION_ADDFILES = additional files that should be included into the translation files # TRANSLATION_ADDFILES = additional files that should be included into the translation files
...@@ -70,7 +72,7 @@ endmacro () ...@@ -70,7 +72,7 @@ endmacro ()
macro (_get_plugin_parameters _prefix) macro (_get_plugin_parameters _prefix)
set (_current_var _foo) set (_current_var _foo)
set (_supported_var DIRS DEPS OPTDEPS LDFLAGSADD CFLAGSADD CDEFINITIONSADD set (_supported_var DIRS DEPS OPTDEPS LDFLAGSADD CFLAGSADD CDEFINITIONSADD
LIBRARIES ADD_CORE_APP_LIBRARIES LIBDIRS INCDIRS ADDSRC INSTALLDATA TRANSLATION_LANGUAGES TRANSLATION_ADDFILES) LIBRARIES ADD_CORE_APP_LIBRARIES LIBDIRS INCDIRS ADDSRC INSTALLDATA GLEWDEFINITIONS TRANSLATION_LANGUAGES TRANSLATION_ADDFILES)
set (_supported_flags LICENSEMANAGER) set (_supported_flags LICENSEMANAGER)
foreach (_val ${_supported_var}) foreach (_val ${_supported_var})
set (${_prefix}_${_val}) set (${_prefix}_${_val})
...@@ -374,6 +376,26 @@ macro (_plugin_licensemanagement) ...@@ -374,6 +376,26 @@ macro (_plugin_licensemanagement)
endif() endif()
endmacro () endmacro ()
#======================================================
# check dependencies in GLEW library
# _prefix : prefix used ( usually the plugin name )
#======================================================
macro (_check_plugin_glew_deps _prefix )
foreach (_extension ${${_prefix}_GLEWDEFINITIONS})
acg_test_glew_definition( ${_extension} ${_prefix}_GLEW_HAS_DEFINITION_${_extension} )
# If the dependency is not found, we disable the plugin
if(NOT ${_prefix}_GLEW_HAS_DEFINITION_${_extension} )
set (${_prefix}_HAS_DEPS FALSE)
acg_set (_${_prefix}_MISSING_DEPS "${_${_prefix}_MISSING_DEPS} GLEW extension ${_extension}")
endif()
endforeach()
endmacro ()
#====================================================== #======================================================
...@@ -416,6 +438,10 @@ function (_build_openflipper_plugin plugin) ...@@ -416,6 +438,10 @@ function (_build_openflipper_plugin plugin)
endforeach () endforeach ()
set_property( GLOBAL PROPERTY GLOBAL_CORE_APP_LIBRARIES ${global_core_app_libraries} ) set_property( GLOBAL PROPERTY GLOBAL_CORE_APP_LIBRARIES ${global_core_app_libraries} )
# CHECK for GLEW definitions
#============================================================================================
_check_plugin_glew_deps (${_PLUGIN})
#============================================================================================ #============================================================================================
# Remember Lib dirs for bundle generation # Remember Lib dirs for bundle generation
...@@ -460,6 +486,7 @@ function (_build_openflipper_plugin plugin) ...@@ -460,6 +486,7 @@ function (_build_openflipper_plugin plugin)
${${_PLUGIN}_DEPS_INCDIRS} ${${_PLUGIN}_DEPS_INCDIRS}
${${_PLUGIN}_INCDIRS} ${${_PLUGIN}_INCDIRS}
${OPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}
${GLEW_INCLUDE_DIR}
${GLUT_INCLUDE_DIR} ${GLUT_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/OpenFlipper/PluginLib ${CMAKE_BINARY_DIR}/OpenFlipper/PluginLib
${PACKAGE_INCLUDES} ${PACKAGE_INCLUDES}
......