From a94d26aec2ebbf2d5687135f765f20e213f0a7e5 Mon Sep 17 00:00:00 2001 From: SEK1RO Date: Sat, 27 Jun 2026 14:41:21 +0300 Subject: [PATCH 1/2] sfml: update from 3.0.2 to 3.1.0 --- releases.json | 1 + .../sfml/examples/http/meson.build | 6 +++ .../packagefiles/sfml/examples/meson.build | 6 ++- .../sfml/examples/sftp/meson.build | 6 +++ .../sfml/examples/sound_device/meson.build | 6 +++ .../sfml/examples/text/meson.build | 8 ++++ .../sfml/examples/text/resources/meson.build | 25 ++++++++++ subprojects/packagefiles/sfml/meson.build | 13 +++-- .../sfml/src/SFML/Audio/meson.build | 6 +-- .../sfml/src/SFML/Graphics/meson.build | 42 +++++++++++++++-- .../sfml/src/SFML/Network/meson.build | 47 ++++++++++++++++++- .../sfml/src/SFML/System/meson.build | 6 +-- subprojects/sfml.wrap | 8 ++-- 13 files changed, 156 insertions(+), 24 deletions(-) create mode 100644 subprojects/packagefiles/sfml/examples/http/meson.build create mode 100644 subprojects/packagefiles/sfml/examples/sftp/meson.build create mode 100644 subprojects/packagefiles/sfml/examples/sound_device/meson.build create mode 100644 subprojects/packagefiles/sfml/examples/text/meson.build create mode 100644 subprojects/packagefiles/sfml/examples/text/resources/meson.build diff --git a/releases.json b/releases.json index 6b66d5e1e7..2a424d7aad 100644 --- a/releases.json +++ b/releases.json @@ -4274,6 +4274,7 @@ "sfml-all" ], "versions": [ + "3.1.0-1", "3.0.2-1", "3.0.1-1", "2.6.2-2", diff --git a/subprojects/packagefiles/sfml/examples/http/meson.build b/subprojects/packagefiles/sfml/examples/http/meson.build new file mode 100644 index 0000000000..82f59c237a --- /dev/null +++ b/subprojects/packagefiles/sfml/examples/http/meson.build @@ -0,0 +1,6 @@ +executable( + 'http', + 'Http.cpp', + dependencies: sfml_dep, + override_options: override_opts, +) diff --git a/subprojects/packagefiles/sfml/examples/meson.build b/subprojects/packagefiles/sfml/examples/meson.build index b76672b7fc..14b6096868 100644 --- a/subprojects/packagefiles/sfml/examples/meson.build +++ b/subprojects/packagefiles/sfml/examples/meson.build @@ -1,15 +1,19 @@ examples_inc = include_directories('include') subdir('ftp') +subdir('http') +subdir('sftp') subdir('sockets') subdir('voip') subdir('sound') subdir('sound_capture') +subdir('sound_device') subdir('window') subdir('event_handling') subdir('opengl') subdir('stencil') +subdir('text') subdir('joystick') subdir('shader') @@ -19,7 +23,7 @@ subdir('vulkan') if host_machine.system() == 'windows' subdir('win32') subdir('raw_input') -elif host_machine.system() in ['linux', 'freebsd'] +elif host_machine.system() in ['linux', 'freebsd', 'openbsd'] subdir('X11') subdir('raw_input') elif host_machine.system() == 'darwin' diff --git a/subprojects/packagefiles/sfml/examples/sftp/meson.build b/subprojects/packagefiles/sfml/examples/sftp/meson.build new file mode 100644 index 0000000000..8c403f09db --- /dev/null +++ b/subprojects/packagefiles/sfml/examples/sftp/meson.build @@ -0,0 +1,6 @@ +executable( + 'sftp', + 'Sftp.cpp', + dependencies: sfml_dep, + override_options: override_opts, +) diff --git a/subprojects/packagefiles/sfml/examples/sound_device/meson.build b/subprojects/packagefiles/sfml/examples/sound_device/meson.build new file mode 100644 index 0000000000..fe8634ced4 --- /dev/null +++ b/subprojects/packagefiles/sfml/examples/sound_device/meson.build @@ -0,0 +1,6 @@ +executable( + 'sound_device', + 'SoundDevice.cpp', + dependencies: [sfml_dep, thread_dep], + override_options: override_opts, +) diff --git a/subprojects/packagefiles/sfml/examples/text/meson.build b/subprojects/packagefiles/sfml/examples/text/meson.build new file mode 100644 index 0000000000..a5ab08a3c0 --- /dev/null +++ b/subprojects/packagefiles/sfml/examples/text/meson.build @@ -0,0 +1,8 @@ +subdir('resources') + +executable( + 'text', + 'Text.cpp', + dependencies: sfml_dep, + override_options: override_opts, +) diff --git a/subprojects/packagefiles/sfml/examples/text/resources/meson.build b/subprojects/packagefiles/sfml/examples/text/resources/meson.build new file mode 100644 index 0000000000..a49a279b8c --- /dev/null +++ b/subprojects/packagefiles/sfml/examples/text/resources/meson.build @@ -0,0 +1,25 @@ +fs = import('fs') + +resources = [ + NotoNaskhArabic-Regular.ttf, + NotoSerif-Regular.ttf, + NotoSerifArmenian-Regular.ttf, + NotoSerifDevanagari-Regular.ttf, + NotoSerifEthiopic-Regular.ttf, + NotoSerifGeorgian-Regular.ttf, + NotoSerifHebrew-Regular.ttf, + NotoSerifJP-Regular.subset.ttf, + NotoSerifKhmer-Regular.ttf, + NotoSerifKR-Regular.subset.ttf, + NotoSerifMyanmar-Regular.ttf, + NotoSerifTamil-Regular.ttf, + NotoSerifTC-Regular.subset.ttf, + NotoSerifThai-Regular.ttf, + NotoSerifTibetan-Regular.ttf, + tuffy.ttf, +] + +foreach resource : resources + fs.copyfile(resource) +endforeach + diff --git a/subprojects/packagefiles/sfml/meson.build b/subprojects/packagefiles/sfml/meson.build index b6d6e925ab..883ae4eef0 100644 --- a/subprojects/packagefiles/sfml/meson.build +++ b/subprojects/packagefiles/sfml/meson.build @@ -2,7 +2,7 @@ project( 'sfml', 'cpp', license: 'Zlib', - version: '3.0.2', + version: '3.1.0', default_options: ['wrap_mode=forcefallback'], meson_version: '>=0.64.0', ) @@ -15,15 +15,14 @@ winmm_dep = cpp.find_library( 'winmm', required: host_machine.system() == 'windows', ) -w32_dep = cpp.find_library( - 'ws2_32', - required: host_machine.system() == 'windows', -) stb_inc = include_directories('extlibs/headers/stb_image') glad_inc = include_directories('extlibs/headers/glad/include') vulkan_inc = include_directories('extlibs/headers/vulkan') -mp3_inc = include_directories('extlibs/headers/minimp3') +mp3_inc = include_directories('extlibs/headers/dr_mp3') +qoi_inc = include_directories('extlibs/headers/qoi') +wepoll_inc = include_directories('extlibs/headers/wepoll') +unicode_inc = include_directories('extlibs/headers/cpp-unicodelib') pub_inc = include_directories('include') priv_inc = include_directories('src') @@ -56,6 +55,6 @@ sfml_dep = declare_dependency( meson.override_dependency('sfml', sfml_dep) meson.override_dependency('sfml-all', sfml_dep) -if get_option('examples') and build_machine.system() != 'android' +if get_option('examples') subdir('examples') endif diff --git a/subprojects/packagefiles/sfml/src/SFML/Audio/meson.build b/subprojects/packagefiles/sfml/src/SFML/Audio/meson.build index e78fa17d71..0d7d0275e4 100644 --- a/subprojects/packagefiles/sfml/src/SFML/Audio/meson.build +++ b/subprojects/packagefiles/sfml/src/SFML/Audio/meson.build @@ -44,11 +44,11 @@ audio_cpp_args += [ audio_cpp_args += '-DMA_USE_STDINT' miniaudio_dep = dependency('miniaudio') -flac_dep = dependency('flac') -vorbis_dep = dependency('vorbis') +flac_dep = dependency('flac', version: '>=1.5.0') +vorbis_dep = dependency('vorbis', version: '>=1.3.7') vorbisenc_dep = dependency('vorbisenc') vorbisfile_dep = dependency('vorbisfile') -ogg_dep = dependency('ogg') +ogg_dep = dependency('ogg', version: '>=1.3.6') audio_lib = library( 'sfml-audio', diff --git a/subprojects/packagefiles/sfml/src/SFML/Graphics/meson.build b/subprojects/packagefiles/sfml/src/SFML/Graphics/meson.build index 2056d8e73d..5111bbabdc 100644 --- a/subprojects/packagefiles/sfml/src/SFML/Graphics/meson.build +++ b/subprojects/packagefiles/sfml/src/SFML/Graphics/meson.build @@ -35,15 +35,49 @@ graphics_sources += files( 'RenderTextureImplFBO.cpp', ) -freetype_dep = dependency('freetype2') +graphics_args = [] + +graphics_args += get_option('default_library') != 'static' ? '-DSFML_GRAPHICS_EXPORTS' : '-DSFML_STATIC' + +freetype_dep = dependency('freetype2', version: '>=2.14.3') +harfbuzz_dep = dependency( + 'harfbuzz', + #version: '>=14.1.0', + default_options: [ + 'subset=disabled', #font subsetting and instancing library + 'raster=disabled', #glyph rasterization library + 'vector=disabled', #glyph vector drawing library + 'gpu=disabled', #GPU rasterization library + ], +) + +#harfbuzz +graphics_args += [ + '-DHB_DISABLE_DEPRECATED', + '-DHB_NO_ATEXIT', + '-DHB_NO_BORING_EXPANSION', + '-DHB_NO_BUFFER_MESSAGE', + '-DHB_NO_BUFFER_SERIALIZE', + '-DHB_NO_BUFFER_VERIFY', + '-DHB_NO_BITMAP', + '-DHB_NO_DRAW', + '-DHB_NO_ERRNO', + '-DHB_NO_GETENV', + '-DHB_NO_MT', + '-DHB_NO_PAINT', + '-DHB_NO_SETLOCALE', + '-DHB_OPTIMIZE_SIZE', +] + +sheenbidi_dep = dependency('sheenbidi') graphics_lib = library( 'sfml-graphics', graphics_sources, - cpp_args: get_option('default_library') != 'static' ? '-DSFML_GRAPHICS_EXPORTS' : '-DSFML_STATIC', - include_directories: [glad_inc, pub_inc, priv_inc, stb_inc], + cpp_args: graphics_args, + include_directories: [glad_inc, pub_inc, priv_inc, stb_inc, qoi_inc], link_with: [window_lib, system_lib], - dependencies: [gl_dep, freetype_dep], + dependencies: [gl_dep, freetype_dep, harfbuzz_dep, sheenbidi_dep], override_options: override_opts, install: true, ) diff --git a/subprojects/packagefiles/sfml/src/SFML/Network/meson.build b/subprojects/packagefiles/sfml/src/SFML/Network/meson.build index 8e19f1b014..5885aacd21 100644 --- a/subprojects/packagefiles/sfml/src/SFML/Network/meson.build +++ b/subprojects/packagefiles/sfml/src/SFML/Network/meson.build @@ -2,10 +2,12 @@ network_sources = files( '@0@/SocketImpl.cpp'.format( host_machine.system() == 'windows' ? 'Win32' : 'Unix', ), + 'Dns.cpp', 'Ftp.cpp', 'Http.cpp', 'IpAddress.cpp', 'Packet.cpp', + 'Sftp.cpp', 'Socket.cpp', 'SocketSelector.cpp', 'TcpListener.cpp', @@ -13,13 +15,54 @@ network_sources = files( 'UdpSocket.cpp', ) +network_deps = [] + +if host_machine.system() == 'windows' + foreach lib : ['ws2_32', 'Crypt32', 'Dnsapi'] + network_win_deps += cpp.find_library(lib, required: true) + endforeach +endif + +if host_machine.system() in ['linux', 'darwin'] + network_deps += cpp.find_library('resolv', required: true) +endif + +network_deps += [ + dependency('mbedtls'), + dependency('mbedcrypto'), + dependency('mbedx509'), + dependency( + 'libssh2', + default_options: [ + 'crypto_backend=mbedtls', + 'examples=false', + ], + ) +] + +network_inc = [pub_inc, priv_inc] + +if host_machine.system() == 'windows' + network_inc += wepoll_inc +endif + +network_link_args = [] + +if host_machine.system() == 'darwin' + network_link_args = [ + '-framework Security', + '-framework CoreFoundation', + ] +endif + network_lib = library( 'sfml-network', network_sources, cpp_args: get_option('default_library') != 'static' ? '-DSFML_NETWORK_EXPORTS' : '-DSFML_STATIC', - include_directories: [pub_inc, priv_inc], + include_directories: network_inc, link_with: system_lib, - dependencies: w32_dep, + link_args: network_link_args, + dependencies: network_deps, override_options: override_opts, install: true, ) diff --git a/subprojects/packagefiles/sfml/src/SFML/System/meson.build b/subprojects/packagefiles/sfml/src/SFML/System/meson.build index 68ebe13053..ab5e0a0bea 100644 --- a/subprojects/packagefiles/sfml/src/SFML/System/meson.build +++ b/subprojects/packagefiles/sfml/src/SFML/System/meson.build @@ -5,9 +5,9 @@ system_sources = files( 'MemoryInputStream.cpp', 'Sleep.cpp', 'String.cpp', + 'TimeoutWithPredicate.cpp', 'Utils.cpp', - 'Vector2.cpp', - 'Vector3.cpp', + 'Version.cpp', ) if host_machine.system() == 'windows' @@ -20,7 +20,7 @@ system_lib = library( 'sfml-system', system_sources, cpp_args: get_option('default_library') != 'static' ? '-DSFML_SYSTEM_EXPORTS' : '-DSFML_STATIC', - include_directories: [pub_inc, priv_inc], + include_directories: [pub_inc, priv_inc, unicode_inc], dependencies: [thread_dep, winmm_dep], override_options: override_opts, install: true, diff --git a/subprojects/sfml.wrap b/subprojects/sfml.wrap index 0ff90b3aac..3a36ca14aa 100644 --- a/subprojects/sfml.wrap +++ b/subprojects/sfml.wrap @@ -1,8 +1,8 @@ [wrap-file] -directory = SFML-3.0.2 -source_url = https://github.com/SFML/SFML/archive/refs/tags/3.0.2.tar.gz -source_filename = SFML-3.0.2.tar.gz -source_hash = 0034e05f95509e5d3fb81b1625713e06da7b068f210288ce3fd67106f8f46995 +directory = SFML-3.1.0 +source_url = https://github.com/SFML/SFML/archive/refs/tags/3.1.0.tar.gz +source_filename = SFML-3.1.0.tar.gz +source_hash = 91209a112c2bd0bc6f4ce0d5f3e413cfb48b57c0de59f5507dc81f71b1ad7a5c patch_directory = sfml [provide] From 5cb550b9b3cb511a714066b31753d996dfa8d581 Mon Sep 17 00:00:00 2001 From: SEK1RO Date: Sat, 27 Jun 2026 14:47:54 +0300 Subject: [PATCH 2/2] quotes --- .../sfml/examples/text/resources/meson.build | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/subprojects/packagefiles/sfml/examples/text/resources/meson.build b/subprojects/packagefiles/sfml/examples/text/resources/meson.build index a49a279b8c..564af54665 100644 --- a/subprojects/packagefiles/sfml/examples/text/resources/meson.build +++ b/subprojects/packagefiles/sfml/examples/text/resources/meson.build @@ -1,22 +1,22 @@ fs = import('fs') resources = [ - NotoNaskhArabic-Regular.ttf, - NotoSerif-Regular.ttf, - NotoSerifArmenian-Regular.ttf, - NotoSerifDevanagari-Regular.ttf, - NotoSerifEthiopic-Regular.ttf, - NotoSerifGeorgian-Regular.ttf, - NotoSerifHebrew-Regular.ttf, - NotoSerifJP-Regular.subset.ttf, - NotoSerifKhmer-Regular.ttf, - NotoSerifKR-Regular.subset.ttf, - NotoSerifMyanmar-Regular.ttf, - NotoSerifTamil-Regular.ttf, - NotoSerifTC-Regular.subset.ttf, - NotoSerifThai-Regular.ttf, - NotoSerifTibetan-Regular.ttf, - tuffy.ttf, + 'NotoNaskhArabic-Regular.ttf', + 'NotoSerif-Regular.ttf', + 'NotoSerifArmenian-Regular.ttf', + 'NotoSerifDevanagari-Regular.ttf', + 'NotoSerifEthiopic-Regular.ttf', + 'NotoSerifGeorgian-Regular.ttf', + 'NotoSerifHebrew-Regular.ttf', + 'NotoSerifJP-Regular.subset.ttf', + 'NotoSerifKhmer-Regular.ttf', + 'NotoSerifKR-Regular.subset.ttf', + 'NotoSerifMyanmar-Regular.ttf', + 'NotoSerifTamil-Regular.ttf', + 'NotoSerifTC-Regular.subset.ttf', + 'NotoSerifThai-Regular.ttf', + 'NotoSerifTibetan-Regular.ttf', + 'tuffy.ttf', ] foreach resource : resources