mirror of
https://github.com/glfw/glfw.git
synced 2025-10-04 05:36:35 +00:00
continuing meson integration
This commit is contained in:
parent
14ce745acd
commit
1f19d7fc77
241
src/meson.build
Normal file
241
src/meson.build
Normal file
@ -0,0 +1,241 @@
|
|||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add common sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
dependencies = []
|
||||||
|
|
||||||
|
sources = ['internal.h',
|
||||||
|
'mappings.h',
|
||||||
|
'../include/GLFW/glfw3.h',
|
||||||
|
'../include/GLFW/glfw3native.h',
|
||||||
|
'context.c',
|
||||||
|
'init.c',
|
||||||
|
'input.c',
|
||||||
|
'monitor.c',
|
||||||
|
'vulkan.c',
|
||||||
|
'window.c']
|
||||||
|
|
||||||
|
if host_system == 'linux' or host_system == 'bsd'
|
||||||
|
dependencies += [rt_dep, math_dep, cc.find_library('dl', required: false)]
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Create generated files
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
conf_data = configuration_data()
|
||||||
|
foreach b : ['win32',
|
||||||
|
'x11',
|
||||||
|
'wayland',
|
||||||
|
'mir',
|
||||||
|
'osmesa',
|
||||||
|
'cocoa']
|
||||||
|
conf_data.set('_GLFW_'+b.to_upper(), backend == b)
|
||||||
|
endforeach
|
||||||
|
conf_data.set('_GLFW_BUILD_DLL', get_option('default_library') == 'shared')
|
||||||
|
conf_data.set('_GLFW_VULKAN_STATIC', get_option('glfw_vulkan_static'))
|
||||||
|
conf_data.set('_GLFW_USE_HYBRID_HPG', get_option('glfw_use_hybrid_hpg'))
|
||||||
|
conf_file = configure_file(configuration: conf_data,
|
||||||
|
output: 'glfw_config.h')
|
||||||
|
sources += conf_file
|
||||||
|
|
||||||
|
#configure_file(input: 'src/glfw3.pc.in',
|
||||||
|
# output: 'src/glfw3.pc',
|
||||||
|
# configuration: conf_data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add multithreading sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
dependencies += threads_dep
|
||||||
|
|
||||||
|
if host_system == 'windows'
|
||||||
|
sources += ['win32_thread.c']
|
||||||
|
else
|
||||||
|
sources += ['posix_thread.h',
|
||||||
|
'posix_thread.c']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add joystick sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if host_system == 'windows'
|
||||||
|
sources += ['win32_joystick.h',
|
||||||
|
'win32_joystick.c']
|
||||||
|
elif host_system == 'darwin'
|
||||||
|
sources += ['cocoa_joystick.h',
|
||||||
|
'cocoa_joystick.c']
|
||||||
|
elif host_system == 'linux'
|
||||||
|
sources += ['linux_joystick.h',
|
||||||
|
'linux_joystick.c']
|
||||||
|
else
|
||||||
|
sources += ['null_joystick.h',
|
||||||
|
'null_joystick.c']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add time sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if host_system == 'windows'
|
||||||
|
sources += ['win32_time.c']
|
||||||
|
elif host_system == 'darwin'
|
||||||
|
sources += ['cocoa_time.c']
|
||||||
|
else
|
||||||
|
sources += ['posix_time.h',
|
||||||
|
'posix_time.c']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add OpenGL context sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
sources += ['osmesa_context.h',
|
||||||
|
'osmesa_context.c']
|
||||||
|
|
||||||
|
if backend != 'osmesa'
|
||||||
|
sources += ['egl_context.h',
|
||||||
|
'egl_context.c']
|
||||||
|
endif
|
||||||
|
|
||||||
|
if backend == 'win32'
|
||||||
|
sources += ['wgl_context.h',
|
||||||
|
'wgl_context.c']
|
||||||
|
elif backend == 'x11'
|
||||||
|
sources += ['glx_context.h',
|
||||||
|
'glx_context.c']
|
||||||
|
elif backend == 'cocoa'
|
||||||
|
sources += ['nsgl_context.h',
|
||||||
|
'nsgl_context.m']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add Vulkan sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
dependencies += [dependency('vulkan', required: false)] # TODO
|
||||||
|
# # Dependencies required by the MoltenVK static library
|
||||||
|
# set(GLFW_VULKAN_DEPS
|
||||||
|
# "-lc++"
|
||||||
|
# "-framework Cocoa"
|
||||||
|
# "-framework Metal"
|
||||||
|
# "-framework QuartzCore")
|
||||||
|
|
||||||
|
if get_option('glfw_vulkan_static')
|
||||||
|
#if (VULKAN_FOUND AND VULKAN_STATIC_LIBRARY)
|
||||||
|
# list(APPEND glfw_LIBRARIES "${VULKAN_STATIC_LIBRARY}" ${GLFW_VULKAN_DEPS})
|
||||||
|
# if (BUILD_SHARED_LIBS)
|
||||||
|
# message(WARNING "Linking Vulkan loader static library into GLFW")
|
||||||
|
# endif()
|
||||||
|
#else()
|
||||||
|
# if (BUILD_SHARED_LIBS OR GLFW_BUILD_EXAMPLES OR GLFW_BUILD_TESTS)
|
||||||
|
# message(FATAL_ERROR "Vulkan loader static library not found")
|
||||||
|
# else()
|
||||||
|
# message(WARNING "Vulkan loader static library not found")
|
||||||
|
# endif()
|
||||||
|
#endif()
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add backend sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if backend == 'win32'
|
||||||
|
dependencies += cc.find_library('gdi32')
|
||||||
|
sources += ['win32_init.c',
|
||||||
|
'win32_platform.h',
|
||||||
|
'win32_monitor.c',
|
||||||
|
'win32_window.c']
|
||||||
|
elif backend == 'x11'
|
||||||
|
dependencies += dependency('x11')
|
||||||
|
# TODO: XRandR header found?
|
||||||
|
# TODO: Xinerama header found?
|
||||||
|
# TODO: Xkb header found?
|
||||||
|
# TODO: Xcursor header found?
|
||||||
|
sources += ['x11_init.c',
|
||||||
|
'x11_platform.h',
|
||||||
|
'x11_monitor.c',
|
||||||
|
'x11_window.c']
|
||||||
|
elif backend == 'wayland'
|
||||||
|
dependencies += [dependency('ecm'),
|
||||||
|
dependency('wayland'),
|
||||||
|
dependency('wayland-scanner'),
|
||||||
|
dependency('wayland-protocols', version: '1.1'),
|
||||||
|
dependency('wayland-egl')]
|
||||||
|
sources += ['wl_init.c',
|
||||||
|
'wl_platform.h',
|
||||||
|
'wl_monitor.c',
|
||||||
|
'wl_window.c']
|
||||||
|
#ecm_add_wayland_client_protocol(glfw_SOURCES
|
||||||
|
# PROTOCOL
|
||||||
|
# "${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/relative-pointer/relative-pointer-unstable-v1.xml"
|
||||||
|
# BASENAME relative-pointer-unstable-v1)
|
||||||
|
#ecm_add_wayland_client_protocol(glfw_SOURCES
|
||||||
|
# PROTOCOL
|
||||||
|
# "${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml"
|
||||||
|
# BASENAME pointer-constraints-unstable-v1)
|
||||||
|
elif backend == 'mir'
|
||||||
|
dependencies += [dependency('mirclient')]
|
||||||
|
sources += ['mir_init.c',
|
||||||
|
'mir_platform.h',
|
||||||
|
'mir_monitor.c',
|
||||||
|
'mir_window.c']
|
||||||
|
elif backend == 'osmesa'
|
||||||
|
dependencies += dependency('osmesa')
|
||||||
|
sources += ['null_init.c',
|
||||||
|
'null_platform.h',
|
||||||
|
'null_monitor.c',
|
||||||
|
'null_window.c']
|
||||||
|
elif backend == 'cocoa'
|
||||||
|
#list(APPEND glfw_LIBRARIES
|
||||||
|
# "-framework Cocoa"
|
||||||
|
# "-framework IOKit"
|
||||||
|
# "-framework CoreFoundation"
|
||||||
|
# "-framework CoreVideo")
|
||||||
|
sources += ['cocoa_init.m',
|
||||||
|
'cocoa_platform.h',
|
||||||
|
'cocoa_monitor.m',
|
||||||
|
'cocoa_window.m']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Add other sources
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if host_system == 'linux' and backend != 'osmesa'
|
||||||
|
if backend != 'x11' # X11 already includes xkbcommon TODO really???
|
||||||
|
dependencies += dependency('xkbcommon')
|
||||||
|
endif
|
||||||
|
sources += ['xkb_unicode.h',
|
||||||
|
'xkb_unicode.c']
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Declare library and its dependency object
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
glfw_library = library('glfw',
|
||||||
|
sources,
|
||||||
|
version: meson.project_version(),
|
||||||
|
c_args: ['-D_GLFW_USE_CONFIG_H'],
|
||||||
|
dependencies: dependencies,
|
||||||
|
include_directories: [include_directories('../include'),
|
||||||
|
include_directories('.')])
|
||||||
|
glfw_dep = declare_dependency(link_with: glfw_library,
|
||||||
|
include_directories:
|
||||||
|
[include_directories('../include'),
|
||||||
|
include_directories('.')])
|
||||||
|
|
||||||
|
|
||||||
|
# vim: set softtabstop=4 shiftwidth=4:
|
Loading…
Reference in New Issue
Block a user