diff options
Diffstat (limited to 'Client/ThirdParty/Box2D/extern/glfw/CMakeLists.txt')
-rw-r--r-- | Client/ThirdParty/Box2D/extern/glfw/CMakeLists.txt | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/Client/ThirdParty/Box2D/extern/glfw/CMakeLists.txt b/Client/ThirdParty/Box2D/extern/glfw/CMakeLists.txt new file mode 100644 index 0000000..f95070e --- /dev/null +++ b/Client/ThirdParty/Box2D/extern/glfw/CMakeLists.txt @@ -0,0 +1,92 @@ +find_package(Threads REQUIRED) + +# Establish target libraries and include directories +if (APPLE) + + list(APPEND glfw_LIBRARIES + "-framework Cocoa" + "-framework IOKit" + "-framework CoreFoundation" + "-framework CoreVideo") + +elseif (UNIX) + find_library(RT_LIBRARY rt) + if (RT_LIBRARY) + list(APPEND glfw_LIBRARIES "${RT_LIBRARY}") + endif() + + find_library(MATH_LIBRARY m) + if (MATH_LIBRARY) + list(APPEND glfw_LIBRARIES "${MATH_LIBRARY}") + endif() + + if (CMAKE_DL_LIBS) + list(APPEND glfw_LIBRARIES "${CMAKE_DL_LIBS}") + endif() + + find_package(X11 REQUIRED) + + # Set up library and include paths + list(APPEND glfw_INCLUDE_DIRS "${X11_X11_INCLUDE_PATH}") + list(APPEND glfw_LIBRARIES "${X11_X11_LIB}" "${CMAKE_THREAD_LIBS_INIT}") + + # Check for XRandR (modern resolution switching and gamma control) + if (NOT X11_Xrandr_FOUND) + message(FATAL_ERROR "The RandR headers were not found") + endif() + + # Check for Xinerama (legacy multi-monitor support) + if (NOT X11_Xinerama_FOUND) + message(FATAL_ERROR "The Xinerama headers were not found") + endif() + + # Check for Xkb (X keyboard extension) + if (NOT X11_Xkb_FOUND) + message(FATAL_ERROR "The X keyboard extension headers were not found") + endif() + + # Check for Xcursor (cursor creation from RGBA images) + if (NOT X11_Xcursor_FOUND) + message(FATAL_ERROR "The Xcursor headers were not found") + endif() + + list(APPEND glfw_INCLUDE_DIRS "${X11_Xrandr_INCLUDE_PATH}" + "${X11_Xinerama_INCLUDE_PATH}" + "${X11_Xkb_INCLUDE_PATH}" + "${X11_Xcursor_INCLUDE_PATH}") +endif() + +set(common_HEADERS src/internal.h src/mappings.h + include/GLFW/glfw3.h + include/GLFW/glfw3native.h) +set(common_SOURCES src/context.c src/init.c src/input.c src/monitor.c src/vulkan.c src/window.c) + +if (APPLE) + set(glfw_HEADERS ${common_HEADERS} src/cocoa_platform.h src/cocoa_joystick.h + src/posix_thread.h src/nsgl_context.h src/egl_context.h src/osmesa_context.h) + set(glfw_SOURCES ${common_SOURCES} src/cocoa_init.m src/cocoa_joystick.m + src/cocoa_monitor.m src/cocoa_window.m src/cocoa_time.c src/posix_thread.c + src/nsgl_context.m src/egl_context.c src/osmesa_context.c) + set_source_files_properties(${glfw_SOURCES} PROPERTIES LANGUAGE C) +elseif (WIN32) + set(glfw_HEADERS ${common_HEADERS} src/win32_platform.h src/win32_joystick.h + src/wgl_context.h src/egl_context.h src/osmesa_context.h) + set(glfw_SOURCES ${common_SOURCES} src/win32_init.c src/win32_joystick.c + src/win32_monitor.c src/win32_time.c src/win32_thread.c src/win32_window.c + src/wgl_context.c src/egl_context.c src/osmesa_context.c) +elseif (UNIX) + set(glfw_HEADERS ${common_HEADERS} src/x11_platform.h src/xkb_unicode.h src/posix_time.h + src/posix_thread.h src/glx_context.h src/egl_context.h src/osmesa_context.h) + set(glfw_SOURCES ${common_SOURCES} src/x11_init.c src/x11_monitor.c src/x11_window.c + src/xkb_unicode.c src/posix_time.c src/posix_thread.c src/glx_context.c + src/egl_context.c src/osmesa_context.c) + set(glfw_HEADERS ${glfw_HEADERS} src/linux_joystick.h) + set(glfw_SOURCES ${glfw_SOURCES} src/linux_joystick.c) +endif() + +add_library(glfw STATIC ${glfw_SOURCES} ${glfw_HEADERS}) +target_include_directories(glfw PUBLIC include) +target_include_directories(glfw PRIVATE ${glfw_INCLUDE_DIRS}) +target_link_libraries(glfw INTERFACE ${glfw_LIBRARIES}) + +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${glfw_SOURCES} ${glfw_HEADERS}) |