diff options
Diffstat (limited to 'Modules/FindOpenGL.cmake')
-rw-r--r-- | Modules/FindOpenGL.cmake | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/Modules/FindOpenGL.cmake b/Modules/FindOpenGL.cmake new file mode 100644 index 000000000..98d8808c0 --- /dev/null +++ b/Modules/FindOpenGL.cmake @@ -0,0 +1,160 @@ +# - Try to find OpenGL +# Once done this will define +# +# OPENGL_FOUND - system has OpenGL +# OPENGL_XMESA_FOUND - system has XMESA +# OPENGL_GLU_FOUND - system has GLU +# OPENGL_INCLUDE_DIR - the GL include directory +# OPENGL_LIBRARIES - Link these to use OpenGL and GLU +# +# If you want to use just GL you can use these values +# OPENGL_gl_LIBRARY - Path to OpenGL Library +# OPENGL_glu_LIBRARY - Path to GLU Library +# +# On OSX default to using the framework version of opengl +# People will have to change the cache values of OPENGL_glu_LIBRARY +# and OPENGL_gl_LIBRARY to use OpenGL with X11 on OSX + +#============================================================================= +# Copyright 2001-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +IF (WIN32) + IF (CYGWIN) + + FIND_PATH(OPENGL_INCLUDE_DIR GL/gl.h ) + + FIND_LIBRARY(OPENGL_gl_LIBRARY opengl32 ) + + FIND_LIBRARY(OPENGL_glu_LIBRARY glu32 ) + + ELSE (CYGWIN) + + IF(BORLAND) + SET (OPENGL_gl_LIBRARY import32 CACHE STRING "OpenGL library for win32") + SET (OPENGL_glu_LIBRARY import32 CACHE STRING "GLU library for win32") + ELSE(BORLAND) + SET (OPENGL_gl_LIBRARY opengl32 CACHE STRING "OpenGL library for win32") + SET (OPENGL_glu_LIBRARY glu32 CACHE STRING "GLU library for win32") + ENDIF(BORLAND) + + ENDIF (CYGWIN) + +ELSE (WIN32) + + IF (APPLE) + + FIND_LIBRARY(OPENGL_gl_LIBRARY OpenGL DOC "OpenGL lib for OSX") + FIND_LIBRARY(OPENGL_glu_LIBRARY AGL DOC "AGL lib for OSX") + FIND_PATH(OPENGL_INCLUDE_DIR OpenGL/gl.h DOC "Include for OpenGL on OSX") + + ELSE(APPLE) + # Handle HP-UX cases where we only want to find OpenGL in either hpux64 + # or hpux32 depending on if we're doing a 64 bit build. + IF(CMAKE_SIZEOF_VOID_P EQUAL 4) + SET(HPUX_IA_OPENGL_LIB_PATH /opt/graphics/OpenGL/lib/hpux32/) + ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) + SET(HPUX_IA_OPENGL_LIB_PATH + /opt/graphics/OpenGL/lib/hpux64/ + /opt/graphics/OpenGL/lib/pa20_64) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4) + + # The first line below is to make sure that the proper headers + # are used on a Linux machine with the NVidia drivers installed. + # They replace Mesa with NVidia's own library but normally do not + # install headers and that causes the linking to + # fail since the compiler finds the Mesa headers but NVidia's library. + # Make sure the NVIDIA directory comes BEFORE the others. + # - Atanas Georgiev <atanas@cs.columbia.edu> + + FIND_PATH(OPENGL_INCLUDE_DIR GL/gl.h + /usr/share/doc/NVIDIA_GLX-1.0/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include /usr/X11R6/include + ) + + FIND_PATH(OPENGL_xmesa_INCLUDE_DIR GL/xmesa.h + /usr/share/doc/NVIDIA_GLX-1.0/include + /usr/openwin/share/include + /opt/graphics/OpenGL/include /usr/X11R6/include + ) + + FIND_LIBRARY(OPENGL_gl_LIBRARY + NAMES GL MesaGL + PATHS /opt/graphics/OpenGL/lib + /usr/openwin/lib + /usr/shlib /usr/X11R6/lib + ${HPUX_IA_OPENGL_LIB_PATH} + ) + + # On Unix OpenGL most certainly always requires X11. + # Feel free to tighten up these conditions if you don't + # think this is always true. + # It's not true on OSX. + + IF (OPENGL_gl_LIBRARY) + IF(NOT X11_FOUND) + INCLUDE(FindX11) + ENDIF(NOT X11_FOUND) + IF (X11_FOUND) + IF (NOT APPLE) + SET (OPENGL_LIBRARIES ${X11_LIBRARIES}) + ENDIF (NOT APPLE) + ENDIF (X11_FOUND) + ENDIF (OPENGL_gl_LIBRARY) + + FIND_LIBRARY(OPENGL_glu_LIBRARY + NAMES GLU MesaGLU + PATHS ${OPENGL_gl_LIBRARY} + /opt/graphics/OpenGL/lib + /usr/openwin/lib + /usr/shlib /usr/X11R6/lib + ) + + ENDIF(APPLE) +ENDIF (WIN32) + +IF(OPENGL_gl_LIBRARY) + + IF(OPENGL_xmesa_INCLUDE_DIR) + SET( OPENGL_XMESA_FOUND "YES" ) + ELSE(OPENGL_xmesa_INCLUDE_DIR) + SET( OPENGL_XMESA_FOUND "NO" ) + ENDIF(OPENGL_xmesa_INCLUDE_DIR) + + SET( OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} ${OPENGL_LIBRARIES}) + IF(OPENGL_glu_LIBRARY) + SET( OPENGL_GLU_FOUND "YES" ) + SET( OPENGL_LIBRARIES ${OPENGL_glu_LIBRARY} ${OPENGL_LIBRARIES} ) + ELSE(OPENGL_glu_LIBRARY) + SET( OPENGL_GLU_FOUND "NO" ) + ENDIF(OPENGL_glu_LIBRARY) + + # This deprecated setting is for backward compatibility with CMake1.4 + SET (OPENGL_LIBRARY ${OPENGL_LIBRARIES}) + +ENDIF(OPENGL_gl_LIBRARY) + +# This deprecated setting is for backward compatibility with CMake1.4 +SET(OPENGL_INCLUDE_PATH ${OPENGL_INCLUDE_DIR}) + +# handle the QUIETLY and REQUIRED arguments and set OPENGL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenGL DEFAULT_MSG OPENGL_gl_LIBRARY) + +MARK_AS_ADVANCED( + OPENGL_INCLUDE_DIR + OPENGL_xmesa_INCLUDE_DIR + OPENGL_glu_LIBRARY + OPENGL_gl_LIBRARY +) |