diff --git a/releases.json b/releases.json index 8e4d721bdc..c415a4f560 100644 --- a/releases.json +++ b/releases.json @@ -2125,6 +2125,7 @@ "libgrapheme" ], "versions": [ + "3.0.0-1", "2.0.2-2", "2.0.2-1" ] diff --git a/subprojects/libgrapheme.wrap b/subprojects/libgrapheme.wrap index 7091064c1d..2fef8edb3a 100644 --- a/subprojects/libgrapheme.wrap +++ b/subprojects/libgrapheme.wrap @@ -1,9 +1,9 @@ [wrap-file] -directory = libgrapheme-2.0.2 -source_url = https://dl.suckless.org/libgrapheme/libgrapheme-2.0.2.tar.gz -source_filename = libgrapheme-2.0.2.tar.gz -source_hash = a68bbddde76bd55ba5d64116ce5e42a13df045c81c0852de9ab60896aa143125 +directory = libgrapheme-3.0.0 +source_url = https://dl.suckless.org/libgrapheme/libgrapheme-3.0.0.tar.gz +source_filename = libgrapheme-3.0.0.tar.gz +source_hash = 32585af73dda62fbcc0fed14f199aa1bc988ad01dad0bfbd06cf175d9cf3d68c patch_directory = libgrapheme [provide] -libgrapheme = libgrapheme_dep +dependency_names = libgrapheme diff --git a/subprojects/packagefiles/libgrapheme/benchmark/meson.build b/subprojects/packagefiles/libgrapheme/benchmark/meson.build index 1014f3910f..e29783f133 100644 --- a/subprojects/packagefiles/libgrapheme/benchmark/meson.build +++ b/subprojects/packagefiles/libgrapheme/benchmark/meson.build @@ -1,10 +1,18 @@ -benches = ['case', 'character', 'line', 'sentence', 'utf8-decode', 'word'] +benchmarks = [ + 'bidirectional', + 'case', + 'character', + 'line', + 'sentence', + 'utf8-decode', + 'word', +] libutf8proc_dep = dependency('libutf8proc') bench_c_flags = cc.get_supported_arguments('-Wno-overlength-strings') -foreach exe_name : benches +foreach exe_name : benchmarks src = exe_name + '.c' exe = executable( 'bench-' + exe_name, diff --git a/subprojects/packagefiles/libgrapheme/gen/chdir_wrapper.py b/subprojects/packagefiles/libgrapheme/chdir_wrapper.py similarity index 100% rename from subprojects/packagefiles/libgrapheme/gen/chdir_wrapper.py rename to subprojects/packagefiles/libgrapheme/chdir_wrapper.py diff --git a/subprojects/packagefiles/libgrapheme/gen/meson.build b/subprojects/packagefiles/libgrapheme/gen/meson.build index 6067819164..49a20e8e49 100644 --- a/subprojects/packagefiles/libgrapheme/gen/meson.build +++ b/subprojects/packagefiles/libgrapheme/gen/meson.build @@ -1,5 +1,11 @@ gendir = include_directories('.') gen_headers_tgt = { + 'bidirectional': files( + '../data/BidiBrackets.txt', + '../data/BidiMirroring.txt', + '../data/DerivedBidiClass.txt', + '../data/UnicodeData.txt', + ), 'case': files( '../data/DerivedCoreProperties.txt', '../data/SpecialCasing.txt', @@ -10,20 +16,28 @@ gen_headers_tgt = { '../data/GraphemeBreakProperty.txt', '../data/emoji-data.txt', ), - 'character-test': files('../data/GraphemeBreakTest.txt'), 'line': files( '../data/EastAsianWidth.txt', '../data/LineBreak.txt', '../data/emoji-data.txt', ), - 'line-test': files('../data/LineBreakTest.txt'), 'sentence': files('../data/SentenceBreakProperty.txt'), - 'sentence-test': files('../data/SentenceBreakTest.txt'), 'word': files('../data/WordBreakProperty.txt'), - 'word-test': files('../data/WordBreakTest.txt'), } -chdir_wrapper = files('chdir_wrapper.py') +if get_option('test') or get_option('benchmark') + gen_headers_tgt = gen_headers_tgt + { + 'bidirectional-test': files( + '../data/BidiCharacterTest.txt', + '../data/BidiTest.txt', + ), + 'character-test': files('../data/GraphemeBreakTest.txt'), + 'line-test': files('../data/LineBreakTest.txt'), + 'sentence-test': files('../data/SentenceBreakTest.txt'), + 'word-test': files('../data/WordBreakTest.txt'), + } +endif + gen_headers = [] foreach exe_name, data_files : gen_headers_tgt src = exe_name + '.c' diff --git a/subprojects/packagefiles/libgrapheme/meson.build b/subprojects/packagefiles/libgrapheme/meson.build index 04be07f270..ed21f2e6f7 100644 --- a/subprojects/packagefiles/libgrapheme/meson.build +++ b/subprojects/packagefiles/libgrapheme/meson.build @@ -1,7 +1,7 @@ project( 'libgrapheme', 'c', - version: '2.0.2', + version: '3.0.0', default_options: ['c_std=c99', 'warning_level=3', 'b_lundef=false'], meson_version: '>=0.57.0', license: 'ISC', @@ -20,6 +20,8 @@ cc = meson.get_compiler('c') cc_id = cc.get_id() os_name = target_machine.system() +chdir_wrapper = files('chdir_wrapper.py') + subdir('src') subdir('gen') @@ -68,3 +70,5 @@ endif if get_option('benchmark') subdir('benchmark') endif + +meson.override_dependency('libgrapheme', libgrapheme_dep) diff --git a/subprojects/packagefiles/libgrapheme/meson_options.txt b/subprojects/packagefiles/libgrapheme/meson_options.txt index 6077b5f096..4e5351658f 100644 --- a/subprojects/packagefiles/libgrapheme/meson_options.txt +++ b/subprojects/packagefiles/libgrapheme/meson_options.txt @@ -1,13 +1,13 @@ option( 'test', type: 'boolean', - value: true, + value: false, description: 'Build tests', ) option( 'benchmark', type: 'boolean', - value: true, + value: false, description: 'Build benchmarks', ) option( diff --git a/subprojects/packagefiles/libgrapheme/src/meson.build b/subprojects/packagefiles/libgrapheme/src/meson.build index 4dc8d47a65..bf310075c4 100644 --- a/subprojects/packagefiles/libgrapheme/src/meson.build +++ b/subprojects/packagefiles/libgrapheme/src/meson.build @@ -1,4 +1,5 @@ src_files = files( + 'bidirectional.c', 'case.c', 'character.c', 'line.c', diff --git a/subprojects/packagefiles/libgrapheme/test/meson.build b/subprojects/packagefiles/libgrapheme/test/meson.build index b1081fcfb9..33036bf835 100644 --- a/subprojects/packagefiles/libgrapheme/test/meson.build +++ b/subprojects/packagefiles/libgrapheme/test/meson.build @@ -8,12 +8,15 @@ tests = [ 'word', ] +tests_failing = ['line'] + test_c_flags = cc.get_supported_arguments('-Wno-overlength-strings') -foreach test : tests - test_src = test + '.c' +foreach exe_name : tests + test_src = exe_name + '.c' + should_fail = tests_failing.contains(exe_name) exe = executable( - 'test-' + test, + exe_name, [test_src, gen_headers, 'util.c'], dependencies: [libgrapheme_dep], c_args: test_c_flags, @@ -22,5 +25,6 @@ foreach test : tests exe_name, exe, workdir: meson.project_source_root(), + should_fail: should_fail, ) endforeach