2
0

GlfwImport.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. if(USE_EXTERNAL_GLFW STREQUAL "ON")
  2. find_package(glfw3 3.3.3 REQUIRED)
  3. elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE")
  4. find_package(glfw3 3.3.3 QUIET)
  5. endif()
  6. if (glfw3_FOUND)
  7. set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
  8. endif()
  9. # Explicitly check against "ON", because USE_EXTERNAL_GLFW is a tristate option
  10. # Also adding only on desktop (web also uses glfw but it is more limited and is added using an emcc linker flag)
  11. if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MATCHES "Desktop")
  12. MESSAGE(STATUS "Using raylib's GLFW")
  13. set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
  14. set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
  15. set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
  16. set(GLFW_INSTALL OFF CACHE BOOL "" FORCE)
  17. set(GLFW_USE_WAYLAND ${USE_WAYLAND} CACHE BOOL "" FORCE)
  18. set(WAS_SHARED ${BUILD_SHARED_LIBS})
  19. set(BUILD_SHARED_LIBS OFF CACHE BOOL " " FORCE)
  20. add_subdirectory(external/glfw)
  21. set(BUILD_SHARED_LIBS ${WAS_SHARED} CACHE BOOL " " FORCE)
  22. unset(WAS_SHARED)
  23. list(APPEND raylib_sources $<TARGET_OBJECTS:glfw>)
  24. include_directories(BEFORE SYSTEM external/glfw/include)
  25. elseif("${PLATFORM}" STREQUAL "DRM")
  26. MESSAGE(STATUS "No GLFW required on PLATFORM_DRM")
  27. else()
  28. MESSAGE(STATUS "Using external GLFW")
  29. set(GLFW_PKG_DEPS glfw3)
  30. endif()