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

Merge branch 'VS2015-fixes' into 'master'

Fix internal compiler error on VS2015



See merge request !56
parents 2cd43724 254a4c90
Pipeline #1512 passed with stage
...@@ -7,6 +7,11 @@ if("${PROJECT_NAME}" STREQUAL "") ...@@ -7,6 +7,11 @@ if("${PROJECT_NAME}" STREQUAL "")
project (OpenMesh) project (OpenMesh)
endif() endif()
if ( WIN32 )
# This is the base directory for windows library search used in the finders we ship.
set(CMAKE_WINDOWS_LIBS_DIR "c:/libs" CACHE STRING "Default Library search dir on windows." )
endif()
if (NOT WIN32 AND NOT CMAKE_BUILD_TYPE) if (NOT WIN32 AND NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to Release") message(STATUS "No build type selected, default to Release")
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
......
# - Try to find GLEW # - Try to find GLEW
# Once done this will define # Once done this will define
# #
# GLEW_FOUND - system has GLEW # GLEW_FOUND - system has GLEW
# GLEW_INCLUDE_DIR - the GLEW include directory # GLEW_INCLUDE_DIR - the GLEW include directory
# GLEW_LIBRARY_DIR - where the libraries are # GLEW_LIBRARY_DIR - where the libraries are
# GLEW_LIBRARY - Link these to use GLEW # GLEW_LIBRARY - Link these to use GLEW
# #
IF (GLEW_INCLUDE_DIR) IF (GLEW_INCLUDE_DIR)
# Already in cache, be silent # Already in cache, be silent
SET(GLEW_FIND_QUIETLY TRUE) SET(GLEW_FIND_QUIETLY TRUE)
ENDIF (GLEW_INCLUDE_DIR) ENDIF (GLEW_INCLUDE_DIR)
if( WIN32 ) if( WIN32 )
if( MSVC80 )
set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" ) # Check if the base path is set
endif( MSVC80 ) if ( NOT CMAKE_WINDOWS_LIBS_DIR )
if( MSVC71 ) # This is the base directory for windows library search used in the finders we shipp.
set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" ) set(CMAKE_WINDOWS_LIBS_DIR "c:\libs" CACHE STRING "Default Library search dir on windows." )
endif( MSVC71 ) endif()
FIND_PATH( GLEW_INCLUDE_DIR gl/glew.h gl/wglew.h
PATHS "c:/glew/include" "c:/libs/glew/include" ${COMPILER_PATH}/PlatformSDK/Include ) if ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*Win64" )
SET( GLEW_NAMES glew32 ) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x64/")
FIND_LIBRARY( GLEW_LIBRARY elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*" )
NAMES ${GLEW_NAMES} SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x32/")
PATHS "c:/glew/lib" "c:/libs/glew/lib" ${COMPILER_PATH}/PlatformSDK/Lib ) elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*Win64" )
else( WIN32 ) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x64/")
FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h GL/wglew.h elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*" )
PATHS /usr/local/include /usr/include ) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x32/")
SET( GLEW_NAMES glew GLEW ) elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*Win64" )
FIND_LIBRARY( GLEW_LIBRARY SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
NAMES ${GLEW_NAMES} elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
PATHS /usr/lib /usr/local/lib ) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
endif( WIN32 ) endif()
GET_FILENAME_COMPONENT( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} PATH ) if( MSVC80 )
set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ 8/VC" )
IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY) endif( MSVC80 )
SET(GLEW_FOUND TRUE) if( MSVC71 )
ELSE (GLEW_INCLUDE_DIR AND GLEW_LIBRARY) set( COMPILER_PATH "C:/Program\ Files/Microsoft\ Visual\ Studio\ .NET\ 2003/Vc7" )
SET( GLEW_FOUND FALSE ) endif( MSVC71 )
SET( GLEW_LIBRARY_DIR )
ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY) FIND_PATH( GLEW_INCLUDE_DIR gl/glew.h gl/wglew.h
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/include"
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/include"
${COMPILER_PATH}/PlatformSDK/Include
"${VS_SEARCH_PATH}glew-1.10.0/include")
SET( GLEW_NAMES glew32 )
FIND_LIBRARY( GLEW_LIBRARY
NAMES ${GLEW_NAMES}
PATHS "${CMAKE_WINDOWS_LIBS_DIR}/glew/lib"
"${CMAKE_WINDOWS_LIBS_DIR}/glew-1.6.0/lib"
${COMPILER_PATH}/PlatformSDK/Lib
"${VS_SEARCH_PATH}glew-1.10.0/lib" )
else( WIN32 )
FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h GL/wglew.h
PATHS /usr/local/include /usr/include )
SET( GLEW_NAMES glew GLEW )
FIND_LIBRARY( GLEW_LIBRARY
NAMES ${GLEW_NAMES}
PATHS /usr/lib /usr/local/lib )
endif( WIN32 )
GET_FILENAME_COMPONENT( GLEW_LIBRARY_DIR ${GLEW_LIBRARY} PATH )
IF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
SET(GLEW_FOUND TRUE)
ELSE (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
SET( GLEW_FOUND FALSE )
SET( GLEW_LIBRARY_DIR )
ENDIF (GLEW_INCLUDE_DIR AND GLEW_LIBRARY)
# - try to find glut library and include files # - try to find glut library and include files
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc. # GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
# GLUT_LIBRARIES, the libraries to link against # GLUT_LIBRARIES, the libraries to link against
# GLUT_FOUND, If false, do not try to use GLUT. # GLUT_FOUND, If false, do not try to use GLUT.
# Also defined, but not for general use are: # Also defined, but not for general use are:
# GLUT_glut_LIBRARY = the full path to the glut library. # GLUT_glut_LIBRARY = the full path to the glut library.
# GLUT_Xmu_LIBRARY = the full path to the Xmu library. # GLUT_Xmu_LIBRARY = the full path to the Xmu library.
# GLUT_Xi_LIBRARY = the full path to the Xi Library. # GLUT_Xi_LIBRARY = the full path to the Xi Library.
#============================================================================= #=============================================================================
# Copyright 2001-2009 Kitware, Inc. # Copyright 2001-2009 Kitware, Inc.
# #
# Distributed under the OSI-approved BSD License (the "License"); # Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details. # see accompanying file Copyright.txt for details.
# #
# This software is distributed WITHOUT ANY WARRANTY; without even the # This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information. # See the License for more information.
#============================================================================= #=============================================================================
# (To distributed this file outside of CMake, substitute the full # (To distributed this file outside of CMake, substitute the full
# License text for the above reference.) # License text for the above reference.)
IF (WIN32) IF (WIN32)
FIND_PATH( GLUT_INCLUDE_DIR NAMES GL/glut.h
PATHS ${GLUT_ROOT_PATH}/include # Check if the base path is set
"C:/libs/glut-3.7/include" ) if ( NOT CMAKE_WINDOWS_LIBS_DIR )
FIND_LIBRARY( GLUT_glut_LIBRARY NAMES glut32 glut # This is the base directory for windows library search used in the finders we shipp.
PATHS set(CMAKE_WINDOWS_LIBS_DIR "c:\libs" CACHE STRING "Default Library search dir on windows." )
${OPENGL_LIBRARY_DIR} endif()
${GLUT_ROOT_PATH}/Release
"C:/libs/glut-3.7/lib" if ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*Win64" )
) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x64/")
ELSE (WIN32) elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 11.*" )
SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2012/x32/")
IF (APPLE) elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*Win64" )
# These values for Apple could probably do with improvement. SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x64/")
FIND_PATH( GLUT_INCLUDE_DIR glut.h elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 12.*" )
/System/Library/Frameworks/GLUT.framework/Versions/A/Headers SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2013/x32/")
${OPENGL_LIBRARY_DIR} elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*Win64" )
) SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x64/")
SET(GLUT_glut_LIBRARY "-framework GLUT" CACHE STRING "GLUT library for OSX") elseif ( CMAKE_GENERATOR MATCHES "^Visual Studio 14.*" )
SET(GLUT_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX") SET(VS_SEARCH_PATH "${CMAKE_WINDOWS_LIBS_DIR}/vs2015/x32/")
ELSE (APPLE) endif()
FIND_PATH( GLUT_INCLUDE_DIR NAMES GL/glut.h
PATHS ${GLUT_ROOT_PATH}/include
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/include"
"${VS_SEARCH_PATH}/freeglut-3.0.0/include"
"${VS_SEARCH_PATH}/freeglut-2.8.1/include" )
FIND_LIBRARY( GLUT_glut_LIBRARY NAMES glut32 glut freeglut
PATHS
${OPENGL_LIBRARY_DIR}
${GLUT_ROOT_PATH}/Release
"${CMAKE_WINDOWS_LIBS_DIR}/glut-3.7/lib"
"${VS_SEARCH_PATH}/freeglut-3.0.0/lib"
"${VS_SEARCH_PATH}/freeglut-2.8.1/lib"
)
GET_FILENAME_COMPONENT( GLUT_LIBRARY_DIR ${GLUT_glut_LIBRARY} PATH )
ELSE (WIN32)
IF (APPLE)
# These values for Apple could probably do with improvement.
FIND_PATH( GLUT_INCLUDE_DIR glut.h
/System/Library/Frameworks/GLUT.framework/Versions/A/Headers
${OPENGL_LIBRARY_DIR}
)
SET(GLUT_glut_LIBRARY "-framework GLUT" CACHE STRING "GLUT library for OSX")
SET(GLUT_cocoa_LIBRARY "-framework Cocoa" CACHE STRING "Cocoa framework for OSX")
ELSE (APPLE)
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h
/usr/include/GL
/usr/openwin/share/include
/usr/openwin/include
/opt/graphics/OpenGL/include
/opt/graphics/OpenGL/contrib/libglut
)
FIND_LIBRARY( GLUT_glut_LIBRARY glut
/usr/openwin/lib
)
FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
/usr/openwin/lib
)
FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu
/usr/openwin/lib
)
ENDIF (APPLE)
ENDIF (WIN32)
SET( GLUT_FOUND "NO" )
IF(GLUT_INCLUDE_DIR)
IF(GLUT_glut_LIBRARY)
FIND_PATH( GLUT_INCLUDE_DIR GL/glut.h SET( GLUT_LIBRARIES
/usr/include/GL ${GLUT_glut_LIBRARY}
/usr/openwin/share/include ${GLUT_cocoa_LIBRARY}
/usr/openwin/include )
/opt/graphics/OpenGL/include SET( GLUT_FOUND "YES" )
/opt/graphics/OpenGL/contrib/libglut
) #The following deprecated settings are for backwards compatibility with CMake1.4
SET (GLUT_LIBRARY ${GLUT_LIBRARIES})
FIND_LIBRARY( GLUT_glut_LIBRARY glut SET (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
/usr/openwin/lib
) ENDIF(GLUT_glut_LIBRARY)
ENDIF(GLUT_INCLUDE_DIR)
FIND_LIBRARY( GLUT_Xi_LIBRARY Xi
/usr/openwin/lib MARK_AS_ADVANCED(
) GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
FIND_LIBRARY( GLUT_Xmu_LIBRARY Xmu GLUT_Xmu_LIBRARY
/usr/openwin/lib GLUT_Xi_LIBRARY
) )
ENDIF (APPLE)
ENDIF (WIN32)
SET( GLUT_FOUND "NO" )
IF(GLUT_INCLUDE_DIR)
IF(GLUT_glut_LIBRARY)
SET( GLUT_LIBRARIES
${GLUT_glut_LIBRARY}
${GLUT_cocoa_LIBRARY}
)
SET( GLUT_FOUND "YES" )
#The following deprecated settings are for backwards compatibility with CMake1.4
SET (GLUT_LIBRARY ${GLUT_LIBRARIES})
SET (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
ENDIF(GLUT_glut_LIBRARY)
ENDIF(GLUT_INCLUDE_DIR)
MARK_AS_ADVANCED(
GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
GLUT_Xmu_LIBRARY
GLUT_Xi_LIBRARY
)
...@@ -848,8 +848,15 @@ compute_screen_space_error(VHierarchyNodeHandle node_handle, VHierarchyNodeHandl ...@@ -848,8 +848,15 @@ compute_screen_space_error(VHierarchyNodeHandle node_handle, VHierarchyNodeHandl
Mesh::VertexFaceIter vf_it; Mesh::VertexFaceIter vf_it;
Mesh::HalfedgeHandle heh; Mesh::HalfedgeHandle heh;
Mesh::VertexHandle vh; Mesh::VertexHandle vh;
Vec3f residual, res; Vec3f residual;
Vec3f lp, tri[3]; Vec3f res;
Vec3f lp;
#if (_MSC_VER >= 1900 )
// Workaround for internal compiler error
Vec3f tri[3]{ {},{},{} };
#else
Vec3f tri[3];
#endif
float s, t; float s, t;
VHierarchyNodeHandleContainer::iterator n_it, n_end(leaf_nodes.end()); VHierarchyNodeHandleContainer::iterator n_it, n_end(leaf_nodes.end());
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment