cmake/Modules/FindGLUT.cmake

169 lines
4.5 KiB
CMake
Raw Normal View History

2016-10-30 18:24:19 +01:00
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
2014-08-03 19:52:23 +02:00
#.rst:
# FindGLUT
# --------
#
2015-04-27 22:25:09 +02:00
# try to find glut library and include files.
#
# IMPORTED Targets
# ^^^^^^^^^^^^^^^^
#
# This module defines the :prop_tgt:`IMPORTED` targets:
#
# ``GLUT::GLUT``
# Defined if the system has GLUT.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module sets the following variables:
2014-08-03 19:52:23 +02:00
#
# ::
#
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
# GLUT_LIBRARIES, the libraries to link against
# GLUT_FOUND, If false, do not try to use GLUT.
#
# Also defined, but not for general use are:
2014-08-03 19:52:23 +02:00
#
# ::
#
# GLUT_glut_LIBRARY = the full path to the glut library.
# GLUT_Xmu_LIBRARY = the full path to the Xmu library.
# GLUT_Xi_LIBRARY = the full path to the Xi Library.
2013-03-16 19:13:01 +02:00
if (WIN32)
find_path( GLUT_INCLUDE_DIR NAMES GL/glut.h
PATHS ${GLUT_ROOT_PATH}/include )
2013-03-16 19:13:01 +02:00
find_library( GLUT_glut_LIBRARY NAMES glut glut32 freeglut
PATHS
${OPENGL_LIBRARY_DIR}
${GLUT_ROOT_PATH}/Release
)
2013-03-16 19:13:01 +02:00
else ()
if (APPLE)
2015-04-27 22:25:09 +02:00
find_path(GLUT_INCLUDE_DIR glut.h ${OPENGL_LIBRARY_DIR})
find_library(GLUT_glut_LIBRARY GLUT DOC "GLUT library for OSX")
find_library(GLUT_cocoa_LIBRARY Cocoa DOC "Cocoa framework for OSX")
if(GLUT_cocoa_LIBRARY AND NOT TARGET GLUT::Cocoa)
add_library(GLUT::Cocoa UNKNOWN IMPORTED)
# Cocoa should always be a Framework, but we check to make sure.
if(GLUT_cocoa_LIBRARY MATCHES "/([^/]+)\\.framework$")
set_target_properties(GLUT::Cocoa PROPERTIES
IMPORTED_LOCATION "${GLUT_cocoa_LIBRARY}/${CMAKE_MATCH_1}")
else()
set_target_properties(GLUT::Cocoa PROPERTIES
IMPORTED_LOCATION "${GLUT_cocoa_LIBRARY}")
endif()
endif()
2013-03-16 19:13:01 +02:00
else ()
if (BEOS)
set(_GLUT_INC_DIR /boot/develop/headers/os/opengl)
set(_GLUT_glut_LIB_DIR /boot/develop/lib/x86)
else()
find_library( GLUT_Xi_LIBRARY Xi
/usr/openwin/lib
)
find_library( GLUT_Xmu_LIBRARY Xmu
/usr/openwin/lib
)
2015-04-27 22:25:09 +02:00
if(GLUT_Xi_LIBRARY AND NOT TARGET GLUT::Xi)
add_library(GLUT::Xi UNKNOWN IMPORTED)
set_target_properties(GLUT::Xi PROPERTIES
IMPORTED_LOCATION "${GLUT_Xi_LIBRARY}")
endif()
if(GLUT_Xmu_LIBRARY AND NOT TARGET GLUT::Xmu)
add_library(GLUT::Xmu UNKNOWN IMPORTED)
set_target_properties(GLUT::Xmu PROPERTIES
IMPORTED_LOCATION "${GLUT_Xmu_LIBRARY}")
endif()
2013-03-16 19:13:01 +02:00
endif ()
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
2013-03-16 19:13:01 +02:00
${_GLUT_INC_DIR}
)
2013-03-16 19:13:01 +02:00
find_library( GLUT_glut_LIBRARY glut
/usr/openwin/lib
2013-03-16 19:13:01 +02:00
${_GLUT_glut_LIB_DIR}
)
2013-03-16 19:13:01 +02:00
unset(_GLUT_INC_DIR)
unset(_GLUT_glut_LIB_DIR)
endif ()
endif ()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
2012-04-19 19:04:21 +03:00
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLUT REQUIRED_VARS GLUT_glut_LIBRARY GLUT_INCLUDE_DIR)
2013-03-16 19:13:01 +02:00
if (GLUT_FOUND)
2012-04-19 19:04:21 +03:00
# Is -lXi and -lXmu required on all platforms that have it?
# If not, we need some way to figure out what platform we are on.
2013-03-16 19:13:01 +02:00
set( GLUT_LIBRARIES
2012-04-19 19:04:21 +03:00
${GLUT_glut_LIBRARY}
)
2017-07-20 19:35:53 +02:00
foreach(v GLUT_Xmu_LIBRARY GLUT_Xi_LIBRARY GLUT_cocoa_LIBRARY)
if(${v})
list(APPEND GLUT_LIBRARIES ${${v}})
endif()
endforeach()
2013-03-16 19:13:01 +02:00
2015-04-27 22:25:09 +02:00
if(NOT TARGET GLUT::GLUT)
add_library(GLUT::GLUT UNKNOWN IMPORTED)
set_target_properties(GLUT::GLUT PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${GLUT_INCLUDE_DIR}")
if(GLUT_glut_LIBRARY MATCHES "/([^/]+)\\.framework$")
set_target_properties(GLUT::GLUT PROPERTIES
IMPORTED_LOCATION "${GLUT_glut_LIBRARY}/${CMAKE_MATCH_1}")
else()
set_target_properties(GLUT::GLUT PROPERTIES
IMPORTED_LOCATION "${GLUT_glut_LIBRARY}")
endif()
if(TARGET GLUT::Xmu)
set_property(TARGET GLUT::GLUT APPEND
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Xmu)
endif()
if(TARGET GLUT::Xi)
set_property(TARGET GLUT::GLUT APPEND
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Xi)
endif()
if(TARGET GLUT::Cocoa)
set_property(TARGET GLUT::GLUT APPEND
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Cocoa)
endif()
endif()
2012-04-19 19:04:21 +03:00
#The following deprecated settings are for backwards compatibility with CMake1.4
2013-03-16 19:13:01 +02:00
set (GLUT_LIBRARY ${GLUT_LIBRARIES})
set (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
endif()
2013-03-16 19:13:01 +02:00
mark_as_advanced(
GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
GLUT_Xmu_LIBRARY
GLUT_Xi_LIBRARY
)