FindGLEW.cmake 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. #
  7. # Find the OpenGL Extension Wrangler Library (GLEW)
  8. #
  9. # IMPORTED Targets
  10. # ^^^^^^^^^^^^^^^^
  11. #
  12. # This module defines the :prop_tgt:`IMPORTED` target ``GLEW::GLEW``,
  13. # if GLEW has been found.
  14. #
  15. # Result Variables
  16. # ^^^^^^^^^^^^^^^^
  17. #
  18. # This module defines the following variables:
  19. #
  20. # ::
  21. #
  22. # GLEW_INCLUDE_DIRS - include directories for GLEW
  23. # GLEW_LIBRARIES - libraries to link against GLEW
  24. # GLEW_FOUND - true if GLEW has been found and can be used
  25. find_path(GLEW_INCLUDE_DIR GL/glew.h)
  26. if(NOT GLEW_LIBRARY)
  27. find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32)
  28. find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64)
  29. include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
  30. select_library_configurations(GLEW)
  31. endif ()
  32. include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
  33. find_package_handle_standard_args(GLEW
  34. REQUIRED_VARS GLEW_INCLUDE_DIR GLEW_LIBRARY)
  35. if(GLEW_FOUND)
  36. set(GLEW_INCLUDE_DIRS ${GLEW_INCLUDE_DIR})
  37. if(NOT GLEW_LIBRARIES)
  38. set(GLEW_LIBRARIES ${GLEW_LIBRARY})
  39. endif()
  40. if (NOT TARGET GLEW::GLEW)
  41. add_library(GLEW::GLEW UNKNOWN IMPORTED)
  42. set_target_properties(GLEW::GLEW PROPERTIES
  43. INTERFACE_INCLUDE_DIRECTORIES "${GLEW_INCLUDE_DIRS}")
  44. if(GLEW_LIBRARY_RELEASE)
  45. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
  46. set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_RELEASE "${GLEW_LIBRARY_RELEASE}")
  47. endif()
  48. if(GLEW_LIBRARY_DEBUG)
  49. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
  50. set_target_properties(GLEW::GLEW PROPERTIES IMPORTED_LOCATION_DEBUG "${GLEW_LIBRARY_DEBUG}")
  51. endif()
  52. if(NOT GLEW_LIBRARY_RELEASE AND NOT GLEW_LIBRARY_DEBUG)
  53. set_property(TARGET GLEW::GLEW APPEND PROPERTY IMPORTED_LOCATION "${GLEW_LIBRARY}")
  54. endif()
  55. endif()
  56. endif()
  57. mark_as_advanced(GLEW_INCLUDE_DIR)