FindGLEW.cmake 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. # file Copyright.txt or https://cmake.org/licensing for details.
  3. #[=======================================================================[.rst:
  4. FindGLEW
  5. --------
  6. Find the OpenGL Extension Wrangler Library (GLEW)
  7. IMPORTED Targets
  8. ^^^^^^^^^^^^^^^^
  9. This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
  10. if GLEW has been found.
  11. Result Variables
  12. ^^^^^^^^^^^^^^^^
  13. This module defines the following variables:
  14. ::
  15. GLEW_INCLUDE_DIRS - include directories for GLEW
  16. GLEW_LIBRARIES - libraries to link against GLEW
  17. GLEW_FOUND - true if GLEW has been found and can be used
  18. #]=======================================================================]
  19. find_path(GLEW_INCLUDE_DIR GL/glew.h)
  20. if(NOT GLEW_LIBRARY)
  21. find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32)
  22. find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64)
  23. include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
  24. select_library_configurations(GLEW)
  25. endif ()
  26. include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
  27. find_package_handle_standard_args(GLEW
  28. REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY)
  29. if(GLEW_FOUND)
  30. set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
  31. if(NOT GLEW_LIBRARIES)
  32. set(GLEW_LIBRARIES ${GLEW_LIBRARY})
  33. endif()
  34. if (NOT TARGET GLEW::GLEW)
  35. add_library(GLEW::GLEW UNKNOWN IMPORTED)
  36. set_target_properties(GLEW::GLEW PROPERTIES
  37. INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
  38. if(GLEW_LIBRARY_RELEASE)
  39. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
  40. set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_LIBRARY_RELEASE}")
  41. endif()
  42. if(GLEW_LIBRARY_DEBUG)
  43. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
  44. set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_LIBRARY_DEBUG}")
  45. endif()
  46. if(NOT GLEW_LIBRARY_RELEASE AND NOT GLEW_LIBRARY_DEBUG)
  47. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_LOCATION "${GLEW_LIBRARY}")
  48. endif()
  49. endif()
  50. endif()
  51. mark_as_advanced(GLEW_INCLUDE_DIR)