find_path(GLFW_INCLUDE_DIR GLFW/glfw3.h
  HINTS
    ENV GLFWDIR
  PATHS
    "/usr"
    "/usr/local"
    "~/Library/Frameworks"
    "/Library/Frameworks"
    "/opt"
    "$ENV{PROGRAMFILES}/glfw"
    "$ENV{PROGRAMFILES}/glfw3"
  PATH_SUFFIXES
    include
)

# Search for the library
FIND_LIBRARY(GLFW_LIBRARY
  NAMES
    glfw glfw3 GLFW GLFW3
  HINTS
    ENV GLFWDIR
  PATHS
    "/usr"
    "/usr/local"
    "~/Library/Frameworks"
    "/Library/Frameworks"
    "/opt"
    "$ENV{PROGRAMFILES}/glfw"
    "$ENV{PROGRAMFILES}/glfw3"
  PATH_SUFFIXES
    lib
    lib32
    lib64
    libs
    lib-vc2012
    lib-vc2013
    lib-vc2015
    lib-vc2017
    lib-vc2019
    lib-vc2022
)

INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(
  GLFW
  REQUIRED_VARS GLFW_LIBRARY GLFW_INCLUDE_DIR
)

mark_as_advanced(GLFW_LIBRARY GLFW_INCLUDE_DIR)