CMake: Ship Debian's FindGLEW.cmake script
This will be used only when compiling under MinGW, since MinGW's GLEW config script seems to be really broken. Fixes #4662. Signed-off-by: Paul Cercueil <paul@crapouillou.net>master
parent
420a9222ce
commit
a3a932ac4d
|
@ -18,6 +18,11 @@ endif()
|
|||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if (MINGW)
|
||||
# Fix build errors on AppVeyor with MinGW due to a broken GLEW config script
|
||||
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
|
||||
endif (MINGW)
|
||||
|
||||
# We don't want a 'bin' folder on Windows
|
||||
if (WIN32)
|
||||
set(CMAKE_INSTALL_BINDIR ${CMAKE_INSTALL_PREFIX})
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#.rst:
|
||||
# FindGLEW
|
||||
# --------
|
||||
#
|
||||
# Find the OpenGL Extension Wrangler Library (GLEW)
|
||||
#
|
||||
# IMPORTED Targets
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
|
||||
# if GLEW has been found.
|
||||
#
|
||||
# Result Variables
|
||||
# ^^^^^^^^^^^^^^^^
|
||||
#
|
||||
# This module defines the following variables:
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# GLEW_INCLUDE_DIRS - include directories for GLEW
|
||||
# GLEW_LIBRARIES - libraries to link against GLEW
|
||||
# GLEW_FOUND - true if GLEW has been found and can be used
|
||||
|
||||
find_path(GLEW_INCLUDE_DIR GL/glew.h)
|
||||
|
||||
if(NOT GLEW_LIBRARY)
|
||||
find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32)
|
||||
find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64)
|
||||
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(GLEW)
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GLEW
|
||||
REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY)
|
||||
|
||||
if(GLEW_FOUND)
|
||||
set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
|
||||
|
||||
if(NOT GLEW_LIBRARIES)
|
||||
set(GLEW_LIBRARIES ${GLEW_LIBRARY})
|
||||
endif()
|
||||
|
||||
if (NOT TARGET GLEW::GLEW)
|
||||
add_library(GLEW::GLEW UNKNOWN IMPORTED)
|
||||
set_target_properties(GLEW::GLEW PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
|
||||
|
||||
if(GLEW_LIBRARY_RELEASE)
|
||||
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
|
||||
if(GLEW_LIBRARY_DEBUG)
|
||||
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
|
||||
if(NOT GLEW_LIBRARY_RELEASE AND NOT GLEW_LIBRARY_DEBUG)
|
||||
set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_LOCATION "${GLEW_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
mark_as_advanced(GLEW_INCLUDE_DIR)
|
Loading…
Reference in New Issue