2022-07-08 04:25:01 +00:00
|
|
|
project(glfw)
|
|
|
|
|
|
|
|
# Silence Warnings
|
|
|
|
add_compile_options(-w)
|
|
|
|
|
|
|
|
## GLFW
|
|
|
|
|
|
|
|
# Download
|
|
|
|
set(BUILD_SHARED_LIBS TRUE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_EXAMPLES FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_TESTS FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_DOCS FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_INSTALL FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_WIN32 FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_COCOA FALSE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_X11 TRUE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_BUILD_WAYLAND TRUE CACHE BOOL "" FORCE)
|
|
|
|
set(GLFW_LIBRARY_TYPE "SHARED" CACHE BOOL "" FORCE)
|
|
|
|
add_subdirectory(src EXCLUDE_FROM_ALL)
|
|
|
|
|
|
|
|
# Ensure Build
|
|
|
|
add_custom_target(glfw-build ALL DEPENDS glfw)
|
|
|
|
|
2022-10-08 20:08:53 +00:00
|
|
|
# Remove When glfw/glfw#2192 Is Merged
|
|
|
|
target_compile_definitions(glfw PRIVATE -D_GLFW_LINUX_JOYSTICK)
|
|
|
|
# Remove When glfw/glfw#2198 Is Merged
|
|
|
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/publicize-glfw-symbol.h"
|
|
|
|
"#pragma once\n"
|
|
|
|
"extern __attribute__((visibility(\"default\"))) void _glfwDetectJoystickConnectionLinux(void);\n"
|
|
|
|
)
|
|
|
|
target_compile_options(glfw PRIVATE -include PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/publicize-glfw-symbol.h")
|
|
|
|
|
2022-07-08 04:25:01 +00:00
|
|
|
# Install
|
|
|
|
install(TARGETS glfw DESTINATION "${MCPI_LIB_DIR}")
|
|
|
|
if(BUILD_ARM_COMPONENTS)
|
|
|
|
install(TARGETS glfw EXPORT sdk DESTINATION "${MCPI_SDK_LIB_DIR}")
|
|
|
|
endif()
|
2022-07-13 20:46:33 +00:00
|
|
|
|
|
|
|
# License
|
|
|
|
install(FILES src/LICENSE.md DESTINATION "${MCPI_LEGAL_DIR}/glfw")
|