From 1ec2581552fec9d991b28e867a5b786b7b3e5f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pl=C3=ADnio=20Victor?= Date: Mon, 6 Apr 2026 14:10:26 -0300 Subject: [PATCH] +meson_options.txt --- meson.build | 36 +++++++++++--------------- meson_options.txt | 64 +++++++++++++++++++++++++++++++++++++++++++++++ raylib.wrap | 6 +++++ 3 files changed, 85 insertions(+), 21 deletions(-) create mode 100644 meson_options.txt create mode 100644 raylib.wrap diff --git a/meson.build b/meson.build index d89470e80..380b8fc07 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,6 @@ project('raylib', 'c', version_array = meson.project_version().split('.') version_major = version_array[0] version_minor = version_array[1] -version_patch = version_array[2] api_version = '@0@.@1@'.format(version_major, version_minor) raylib_sources = [ @@ -32,7 +31,7 @@ graphics = get_option('graphics') build_shared_libs = get_option('default_library') == 'shared' compiler_flags = [] -link_flags = [] +link_args = [] dependencies = [] include_dirs = ['src'] defines = [] @@ -41,8 +40,8 @@ if platform == 'desktop' defines += 'PLATFORM_DESKTOP' if host_machine.system() == 'windows' - dependencies += cc.find_library('winmm', required: true) - dependencies += cc.find_library('opengl32', required: true) + dependencies += dependency('winmm', required: true) + dependencies += dependency('opengl', required: false) elif host_machine.system() == 'darwin' compiler_flags += '-DGL_SILENCE_DEPRECATION' dependencies += dependency('appleframeworks', modules: ['OpenGL', 'Cocoa', 'IOKit', 'CoreVideo', 'CoreAudio']) @@ -99,6 +98,8 @@ if platform == 'desktop' 'src/external/glfw/src/posix_poll.c', 'src/external/glfw/src/posix_thread.c', 'src/external/glfw/src/posix_time.c', + 'src/external/glfw/src/linux_joystick.c', + 'src/external/glfw/src/osmesa_context.c', ] if get_option('glfw_backend') == 'x11' @@ -150,14 +151,14 @@ elif platform == 'android' dependencies += dependency('egl', required: true) dependencies += dependency('glesv2', required: true) dependencies += dependency('openal', required: false) - dependencies += cc.find_library('atomic', required: false) + dependencies += dependency('threads', required: true) elif platform == 'drm' defines += 'PLATFORM_DRM' defines += '_DEFAULT_SOURCE' - dependencies += cc.find_library('drm', required: true) - dependencies += cc.find_library('gbm', required: false) + dependencies += dependency('drm', required: true) + dependencies += dependency('gbm', required: false) dependencies += dependency('egl', required: false) dependencies += dependency('glesv2', required: false) dependencies += dependency('threads', required: true) @@ -188,8 +189,8 @@ elif platform == 'rgfw' if host_machine.system() == 'darwin' dependencies += dependency('appleframeworks', modules: ['OpenGL', 'Cocoa']) elif host_machine.system() == 'windows' - dependencies += cc.find_library('gdi32', required: true) - dependencies += dependency('opengl', required: true) + dependencies += dependency('gdi32', required: false) + dependencies += dependency('opengl', required: false) elif host_machine.system() == 'linux' dependencies += dependency('x11', required: true) dependencies += dependency('opengl', required: true) @@ -320,9 +321,7 @@ if build_shared_libs compiler_flags += '-fvisibility=hidden' endif -if get_option('use_audio') - dependencies += dependency('m', required: false) -endif +link_args += '-lm' if not get_option('use_external_glfw') and platform == 'desktop' glfw_args = [] @@ -349,14 +348,6 @@ if not get_option('use_external_glfw') and platform == 'desktop' include_dirs += 'src/external/glfw/include' endif -raylib_kwargs = { - 'sources': raylib_sources, - 'dependencies': dependencies, - 'include_directories': include_dirs, - 'c_args': compiler_flags, - 'defines': defines, -} - defines_args = [] foreach d : defines defines_args += '-D' + d @@ -367,6 +358,7 @@ if build_shared_libs raylib_lib = shared_library('raylib', sources: raylib_sources, dependencies: dependencies, + link_args: link_args, include_directories: include_dirs, c_args: all_c_args, version: meson.project_version(), @@ -376,6 +368,7 @@ else raylib_lib = static_library('raylib', sources: raylib_sources, dependencies: dependencies, + link_args: link_args, include_directories: include_dirs, c_args: all_c_args, ) @@ -385,6 +378,7 @@ raylib_dep = declare_dependency( include_directories: include_dirs, sources: raylib_public_headers, dependencies: dependencies, + link_args: link_args, link_with: raylib_lib, ) @@ -396,5 +390,5 @@ pkgconfig.generate(raylib_lib, description: 'Simple and easy-to-use library to enjoy videogames programming', version: meson.project_version(), filebase: 'raylib', - libraries: dependencies, + libraries: dependencies + [raylib_lib], ) diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 000000000..3787513ab --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,64 @@ +option('platform', type: 'combo', + choices: ['desktop', 'web', 'android', 'drm', 'sdl', 'rgfw'], + value: 'desktop', + description: 'Target platform') + +option('graphics', type: 'combo', + choices: ['default', 'opengl33', 'opengl43', 'opengles2', 'opengles3', 'software'], + value: 'default', + description: 'Graphics API') + +option('glfw_backend', type: 'combo', + choices: ['x11', 'wayland'], + value: 'x11', + description: 'GLFW backend on Linux (X11 or Wayland)') + +option('use_external_glfw', type: 'boolean', value: false, + description: 'Use system GLFW instead of bundled') + +option('use_audio', type: 'boolean', value: true, + description: 'Build with audio module') + +option('support_module_rshapes', type: 'boolean', value: true, + description: 'Support module rshapes') +option('support_module_rtextures', type: 'boolean', value: true, + description: 'Support module rtextures') +option('support_module_rtext', type: 'boolean', value: true, + description: 'Support module rtext') +option('support_module_rmodels', type: 'boolean', value: true, + description: 'Support module rmodels') +option('support_module_raudio', type: 'boolean', value: true, + description: 'Support module raudio') +option('support_tracelog', type: 'boolean', value: true, + description: 'Support tracelog') +option('support_camera_system', type: 'boolean', value: true, + description: 'Support camera system') +option('support_gestures_system', type: 'boolean', value: true, + description: 'Support gestures system') +option('support_compression_api', type: 'boolean', value: true, + description: 'Support compression API') +option('support_automation_events', type: 'boolean', value: true, + description: 'Support automation events') + +option('support_fileformat_tga', type: 'boolean', value: false, + description: 'Support TGA format') +option('support_fileformat_jpg', type: 'boolean', value: false, + description: 'Support JPG format') +option('support_fileformat_bmp', type: 'boolean', value: true, + description: 'Support BMP format') +option('support_fileformat_hdr', type: 'boolean', value: false, + description: 'Support HDR format') +option('support_fileformat_ktx', type: 'boolean', value: false, + description: 'Support KTX format') +option('support_fileformat_astc', type: 'boolean', value: false, + description: 'Support ASTC format') +option('support_fileformat_pvr', type: 'boolean', value: false, + description: 'Support PVR format') +option('support_fileformat_obj', type: 'boolean', value: true, + description: 'Support OBJ format') +option('support_fileformat_gltf', type: 'boolean', value: true, + description: 'Support GLTF format') +option('support_fileformat_vox', type: 'boolean', value: true, + description: 'Support VOX format') +option('support_fileformat_flac', type: 'boolean', value: false, + description: 'Support FLAC format') diff --git a/raylib.wrap b/raylib.wrap new file mode 100644 index 000000000..ebb2c4566 --- /dev/null +++ b/raylib.wrap @@ -0,0 +1,6 @@ +[wrap-git] +url = https://github.com/pliniopvv/raylib-wrap.git +revision = master + +[provide] +raylib = raylib_dep