kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #30103
[PATCH 1/2] Update FindGLEW.cmake
---
CMakeModules/FindGLEW.cmake | 155 ++++++++++++++++----------------------------
1 file changed, 56 insertions(+), 99 deletions(-)
diff --git a/CMakeModules/FindGLEW.cmake b/CMakeModules/FindGLEW.cmake
index 621fe3b3f..ac2eb9ee8 100644
--- a/CMakeModules/FindGLEW.cmake
+++ b/CMakeModules/FindGLEW.cmake
@@ -1,112 +1,69 @@
-# Copyright (c) 2009 Boudewijn Rempt <boud@xxxxxxxxxxx>
+# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#.rst:
+# FindGLEW
+# --------
#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+# Find the OpenGL Extension Wrangler Library (GLEW)
#
-# - try to find glew library and include files
-# GLEW_INCLUDE_DIR, where to find GL/glew.h, etc.
-# GLEW_LIBRARIES, the libraries to link against
-# GLEW_FOUND, If false, do not try to use GLEW.
-# Also defined, but not for general use are:
-# GLEW_GLEW_LIBRARY = the full path to the glew library.
-
-IF (WIN32)
-
- IF(CYGWIN)
-
- FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h)
-
- FIND_LIBRARY( GLEW_GLEW_LIBRARY glew32
- ${OPENGL_LIBRARY_DIR}
- /usr/lib/w32api
- /usr/X11R6/lib
- )
-
-
- ELSE(CYGWIN)
-
- FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h
- $ENV{GLEW_ROOT_PATH}/include
- )
-
- FIND_LIBRARY( GLEW_GLEW_LIBRARY
- NAMES glew glew32 glew32s
- PATHS
- $ENV{GLEW_ROOT_PATH}/lib
- $ENV{GLEW_ROOT_PATH}/lib/Release/Win32
- ${OPENGL_LIBRARY_DIR}
- )
-
- ENDIF(CYGWIN)
-
-ELSE (WIN32)
-
- IF (APPLE)
-# These values for Apple could probably do with improvement.
- FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h
- /System/Library/Frameworks/GLEW.framework/Versions/A/Headers
- /opt/local/include
- ${OPENGL_LIBRARY_DIR}
- )
+# 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_LIBRARY( GLEW_GLEW_LIBRARY GLEW
- /opt/local/lib
- )
+find_path(GLEW_INCLUDE_DIR GL/glew.h)
- ELSE (APPLE)
+if(NOT GLEW_LIBRARY)
+ find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64)
+ find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64)
- FIND_PATH( GLEW_INCLUDE_DIR GL/glew.h
- /usr/include/GL
- /usr/openwin/share/include
- /usr/openwin/include
- /usr/X11R6/include
- /usr/include/X11
- /opt/graphics/OpenGL/include
- /opt/graphics/OpenGL/contrib/libglew
- )
+ include(SelectLibraryConfigurations)
+ select_library_configurations(GLEW)
+endif ()
- FIND_LIBRARY( GLEW_GLEW_LIBRARY GLEW
- /usr/openwin/lib
- /usr/X11R6/lib
- /usr/lib
- /usr/lib/x86_64-linux-gnu
- )
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(GLEW
+ REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY)
- ENDIF (APPLE)
+if(GLEW_FOUND)
+ set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
-ENDIF (WIN32)
+ if(NOT GLEW_LIBRARIES)
+ set(GLEW_LIBRARIES ${GLEW_LIBRARY})
+ endif()
-SET( GLEW_FOUND "NO" )
-IF(GLEW_INCLUDE_DIR)
- IF(GLEW_GLEW_LIBRARY)
- # 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.
- SET( GLEW_LIBRARIES
- ${GLEW_GLEW_LIBRARY}
- ${GLEW_cocoa_LIBRARY}
- )
- SET( GLEW_FOUND "YES" )
+ if (NOT TARGET GLEW::GLEW)
+ add_library(GLEW::GLEW UNKNOWN IMPORTED)
+ set_target_properties(GLEW::GLEW PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
-#The following deprecated settings are for backwards compatibility with CMake1.4
- SET (GLEW_LIBRARY ${GLEW_LIBRARIES})
- SET (GLEW_INCLUDE_PATH ${GLEW_INCLUDE_DIR})
+ 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()
- ENDIF(GLEW_GLEW_LIBRARY)
-ENDIF(GLEW_INCLUDE_DIR)
+ 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(GLEW_FOUND)
- IF(NOT GLEW_FIND_QUIETLY)
- MESSAGE(STATUS "Found Glew: ${GLEW_LIBRARIES}")
- ENDIF(NOT GLEW_FIND_QUIETLY)
-ELSE(GLEW_FOUND)
- IF(GLEW_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could not find Glew")
- ENDIF(GLEW_FIND_REQUIRED)
-ENDIF(GLEW_FOUND)
+ 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
- GLEW_GLEW_LIBRARY
- GLEW_Xmu_LIBRARY
- GLEW_Xi_LIBRARY
-)
+mark_as_advanced(GLEW_INCLUDE_DIR)
Follow ups