From 8e3005d6257ec5e01eeeb96db424efe62fac99aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 21 Feb 2013 12:46:46 +0100 Subject: [PATCH] Updated FindGLEW.cmake, fixed Windows support. On Win it needs both *.dll and *.lib to be successfully linked, currently the variables must be set manually. --- modules/FindGLEW.cmake | 48 +++++++++++++++++++++++----------------- modules/FindMagnum.cmake | 2 +- src/CMakeLists.txt | 2 +- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/modules/FindGLEW.cmake b/modules/FindGLEW.cmake index abc1b044a..ef623d969 100644 --- a/modules/FindGLEW.cmake +++ b/modules/FindGLEW.cmake @@ -3,33 +3,41 @@ # This module defines: # # GLEW_FOUND - True if GLEW library is found -# GLEW_LIBRARY - GLEW dynamic library +# GLEW_LIBRARIES - GLEW libraries # GLEW_INCLUDE_DIR - Include dir # -if(GLEW_LIBRARY AND GLEW_INCLUDE_DIR) - - set(GLEW_FOUND TRUE) +# Include dir +find_path(GLEW_INCLUDE_DIR + NAMES GL/glew.h) +# Library +if(NOT WIN32) + find_library(GLEW_LIBRARY GLEW) + set(GLEW_LIBRARIES_ GLEW_LIBRARY) + mark_as_advanced(GLEW_LIBRARY) else() + find_library(GLEW_LIBRARY_DLL glew32) + find_library(GLEW_LIBRARY_LIB glew32) + set(GLEW_LIBRARIES_ GLEW_LIBRARY_DLL GLEW_LIBRARY_LIB) + mark_as_advanced(GLEW_LIBRARY_DLL GLEW_LIBRARY_LIB) +endif() - # Library - if(NOT WIN32) - find_library(GLEW_LIBRARY GLEW) - else() - find_library(GLEW_LIBRARY glew32) - endif() +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args("GLEW" DEFAULT_MSG + ${GLEW_LIBRARIES_} + GLEW_INCLUDE_DIR) - # Include dir - find_path(GLEW_INCLUDE_DIR - NAMES glew.h - PATH_SUFFIXES GL - ) +if(NOT GLEW_FOUND) + return() +endif() - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args("GLEW" DEFAULT_MSG - GLEW_LIBRARY - GLEW_INCLUDE_DIR - ) +unset(GLEW_LIBRARIES_) +if(NOT WIN32) + set(GLEW_LIBRARIES ${GLEW_LIBRARY}) + mark_as_advanced(GLEW_LIBRARY) +else() + set(GLEW_LIBRARIES ${GLEW_LIBRARY_DLL} ${GLEW_LIBRARY_LIB}) + mark_as_advanced(GLEW_LIBRARY_DLL GLEW_LIBRARY_LIB) endif() diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 51f01af9b..55ec02cf1 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -262,7 +262,7 @@ else() set(MAGNUM_LIBRARIES ${MAGNUM_LIBRARIES} ${OPENGLES2_LIBRARY}) endif() if(NOT MAGNUM_TARGET_GLES) - set(MAGNUM_LIBRARIES ${MAGNUM_LIBRARIES} ${GLEW_LIBRARY}) + set(MAGNUM_LIBRARIES ${MAGNUM_LIBRARIES} ${GLEW_LIBRARIES}) endif() # Installation dirs diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 788f83301..ed0ce0c4a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -124,7 +124,7 @@ else() set(Magnum_LIBS ${Magnum_LIBS} ${OPENGLES2_LIBRARY}) endif() if(NOT TARGET_GLES) - set(Magnum_LIBS ${Magnum_LIBS} ${GLEW_LIBRARY}) + set(Magnum_LIBS ${Magnum_LIBS} ${GLEW_LIBRARIES}) endif() target_link_libraries(Magnum ${Magnum_LIBS})