| dofile('rive_build_config.lua') |
| |
| local dependency = require('dependency') |
| glfw = dependency.github('glfw/glfw', '3.4') |
| |
| project('glfw3') |
| do |
| kind('StaticLib') |
| |
| includedirs({ glfw .. '/include' }) |
| |
| files({ |
| glfw .. '/src/internal.h', |
| glfw .. '/src/platform.h', |
| glfw .. '/src/mappings.h', |
| glfw .. '/src/context.c', |
| glfw .. '/src/init.c', |
| glfw .. '/src/input.c', |
| glfw .. '/src/monitor.c', |
| glfw .. '/src/platform.c', |
| glfw .. '/src/vulkan.c', |
| glfw .. '/src/window.c', |
| glfw .. '/src/egl_context.c', |
| glfw .. '/src/osmesa_context.c', |
| glfw .. '/src/null_platform.h', |
| glfw .. '/src/null_joystick.h', |
| glfw .. '/src/null_init.c', |
| glfw .. '/src/null_monitor.c', |
| glfw .. '/src/null_window.c', |
| glfw .. '/src/null_joystick.c', |
| }) |
| |
| filter({ 'system:windows' }) |
| do |
| defines({ |
| '_GLFW_WIN32', |
| 'UNICODE', |
| '_UNICODE', |
| }) |
| |
| files({ |
| glfw .. '/src/win32_time.h', |
| glfw .. '/src/win32_thread.h', |
| glfw .. '/src/win32_module.c', |
| glfw .. '/src/win32_time.c', |
| glfw .. '/src/win32_thread.c', |
| glfw .. '/src/win32_platform.h', |
| glfw .. '/src/win32_joystick.h', |
| glfw .. '/src/win32_init.c', |
| glfw .. '/src/win32_joystick.c', |
| glfw .. '/src/win32_monitor.c', |
| glfw .. '/src/win32_window.c', |
| glfw .. '/src/wgl_context.c', |
| }) |
| end |
| |
| filter({ 'system:macosx' }) |
| do |
| defines({ '_GLFW_COCOA' }) |
| removebuildoptions({ '-fobjc-arc' }) |
| |
| files({ |
| glfw .. '/src/cocoa_time.h', |
| glfw .. '/src/cocoa_time.c', |
| glfw .. '/src/posix_thread.h', |
| glfw .. '/src/posix_module.c', |
| glfw .. '/src/posix_thread.c', |
| glfw .. '/src/cocoa_platform.h', |
| glfw .. '/src/cocoa_joystick.h', |
| glfw .. '/src/cocoa_init.m', |
| glfw .. '/src/cocoa_joystick.m', |
| glfw .. '/src/cocoa_monitor.m', |
| glfw .. '/src/cocoa_window.m', |
| glfw .. '/src/nsgl_context.m', |
| }) |
| end |
| |
| filter({ 'system:linux' }) |
| do |
| defines({ |
| '_GLFW_X11', |
| '_DEFAULT_SOURCE', |
| }) |
| |
| files({ |
| glfw .. '/src/posix_time.h', |
| glfw .. '/src/posix_thread.h', |
| glfw .. '/src/posix_module.c', |
| glfw .. '/src/posix_time.c', |
| glfw .. '/src/posix_thread.c', |
| glfw .. '/src/x11_platform.h', |
| glfw .. '/src/xkb_unicode.h', |
| glfw .. '/src/x11_init.c', |
| glfw .. '/src/x11_monitor.c', |
| glfw .. '/src/x11_window.c', |
| glfw .. '/src/xkb_unicode.c', |
| glfw .. '/src/glx_context.c', |
| glfw .. '/src/linux_joystick.h', |
| glfw .. '/src/linux_joystick.c', |
| glfw .. '/src/posix_poll.h', |
| glfw .. '/src/posix_poll.c', |
| }) |
| end |
| |
| filter({ 'system:not windows', 'system:not macosx', 'system:not linux' }) |
| do |
| -- Don't build GLFW on mobile or web platforms. It's integrated into |
| -- emscripten and unavailable on mobile. |
| kind('None') |
| end |
| end |