From 5431e04a61352e23d52759a52ffd8129bfe6eb37 Mon Sep 17 00:00:00 2001 From: "Dr. Manuel Schmitz" Date: Wed, 8 Apr 2026 08:34:13 +0100 Subject: [PATCH 1/5] Provide patch for TCLAP v1.2.5 --- releases.json | 1 + subprojects/packagefiles/tclap/meson.build | 4 ++-- subprojects/tclap.wrap | 11 +++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/releases.json b/releases.json index 1e7cf20ca7..619c31ec25 100644 --- a/releases.json +++ b/releases.json @@ -4533,6 +4533,7 @@ "tclap" ], "versions": [ + "1.2.5-1", "1.2.4-2", "1.2.4-1", "1.2.2-1", diff --git a/subprojects/packagefiles/tclap/meson.build b/subprojects/packagefiles/tclap/meson.build index 1125b7f578..19a0948e1e 100644 --- a/subprojects/packagefiles/tclap/meson.build +++ b/subprojects/packagefiles/tclap/meson.build @@ -1,8 +1,9 @@ project( 'tclap', 'cpp', - version: '1.2.4', + version: '1.2.5', license: 'MIT', + meson_version: '>=0.56.0', ) # This is a minimum meson.build to use TCLAP. @@ -14,7 +15,6 @@ project( # -- tclap_dep = declare_dependency( - version: '1.2.4', include_directories: 'include', ) diff --git a/subprojects/tclap.wrap b/subprojects/tclap.wrap index b7c1bac3dc..87e74bb45c 100644 --- a/subprojects/tclap.wrap +++ b/subprojects/tclap.wrap @@ -1,10 +1,9 @@ [wrap-file] -directory = tclap-1.2.4 -source_url = https://sourceforge.net/projects/tclap/files/tclap-1.2.4.tar.gz -source_filename = tclap-1.2.4.tar.gz -source_hash = 634c5b59dbb1ccbc9d6a5f6de494a257e29a3f59dcb6fc30445ff39b45188574 +directory = tclap-1.2.5 +source_url = https://sourceforge.net/projects/tclap/files/tclap-1.2.5.tar.gz +source_filename = tclap-1.2.5.tar.gz +source_hash = bb649f76dae35e8d0dcba4b52acfd4e062d787e6a81b43f7a4b01275153165a6 patch_directory = tclap [provide] -tclap = tclap_dep - +dependency_names = tclap From ed3debf95b6bd09f694b986f43c9ef0c954a89b9 Mon Sep 17 00:00:00 2001 From: "Dr. Schmitz Manuel (LBC)" Date: Wed, 8 Apr 2026 09:57:07 +0200 Subject: [PATCH 2/5] Override tclap_dep properly. --- subprojects/packagefiles/tclap/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/subprojects/packagefiles/tclap/meson.build b/subprojects/packagefiles/tclap/meson.build index 19a0948e1e..86328d963a 100644 --- a/subprojects/packagefiles/tclap/meson.build +++ b/subprojects/packagefiles/tclap/meson.build @@ -17,6 +17,7 @@ project( tclap_dep = declare_dependency( include_directories: 'include', ) +meson.override_dependency('tclap', tclap_dep) # -- # Examples From abd6dc82643482fb670c7ac4cf75b227d4a2425d Mon Sep 17 00:00:00 2001 From: "Dr. Manuel Schmitz" Date: Wed, 8 Apr 2026 09:02:11 +0100 Subject: [PATCH 3/5] Fix tests. --- subprojects/packagefiles/tclap/tests/meson.build | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/subprojects/packagefiles/tclap/tests/meson.build b/subprojects/packagefiles/tclap/tests/meson.build index d5c4739aa3..25eb0cac8e 100644 --- a/subprojects/packagefiles/tclap/tests/meson.build +++ b/subprojects/packagefiles/tclap/tests/meson.build @@ -6,6 +6,13 @@ if not meson.can_run_host_binaries() endif +test_wrapper = executable( + 'test_wrapper', + 'test_wrapper.cpp', + dependencies: tclap_dep, +) + + if not find_program( '/bin/bash', required: false, From d9efad4c062c71e6f95275c467d3f47eede55521 Mon Sep 17 00:00:00 2001 From: "Dr. Manuel Schmitz" Date: Wed, 8 Apr 2026 09:15:04 +0100 Subject: [PATCH 4/5] Cleanup. This removes the extra indirection through *.sh files, which all have the same structure. It also fixes a bug that makes tests fail when the path contains blanks/whitespaces. --- .../packagefiles/tclap/tests/meson.build | 281 +++++++++--------- 1 file changed, 140 insertions(+), 141 deletions(-) diff --git a/subprojects/packagefiles/tclap/tests/meson.build b/subprojects/packagefiles/tclap/tests/meson.build index 25eb0cac8e..65fe6ff32e 100644 --- a/subprojects/packagefiles/tclap/tests/meson.build +++ b/subprojects/packagefiles/tclap/tests/meson.build @@ -13,159 +13,158 @@ test_wrapper = executable( ) -if not find_program( - '/bin/bash', - required: false, -).found() - subdir_done() # Required command interpreter missing. -endif - - -if not find_program( - 'cmp', - required: false, -).found() - subdir_done() # Required shell command not found. -endif - - -# The test scripts need $srcdir pointing to the directory of the 'test*.out' files. -srcdir_param = 'srcdir=' + meson.current_source_dir() - - # Required because test*.sh scripts contain relative paths. wd = meson.current_build_dir() -if find_program( - 'tee', - required: false, -).found() and find_program( - 'diff', - required: false, -).found() - - tests = [ - # - ['test 1', 'test1.sh', test1], - ['test 2', 'test2.sh', test1], - ['test 3', 'test3.sh', test1], - ['test 4', 'test4.sh', test1], - ['test 5', 'test5.sh', test2], - ['test 6', 'test6.sh', test2], - ['test 7', 'test7.sh', test2], - ['test 8', 'test8.sh', test2], - ['test 9', 'test9.sh', test2], - ['test 10', 'test10.sh', test2], - ['test 11', 'test11.sh', test2], - ['test 12', 'test12.sh', test2], - ['test 13', 'test13.sh', test3], - ['test 14', 'test14.sh', test3], - ['test 15', 'test15.sh', test3], - ['test 16', 'test16.sh', test3], - ['test 17', 'test17.sh', test3], - ['test 18', 'test18.sh', test4], - ['test 19', 'test19.sh', test4], - ['test 20', 'test20.sh', test5], - ['test 21', 'test21.sh', test5], - ['test 22', 'test22.sh', test5], - ['test 23', 'test23.sh', test5], - ['test 24', 'test24.sh', test5], - ['test 25', 'test25.sh', test5], - ['test 26', 'test26.sh', test2], - ['test 27', 'test27.sh', test2], - ['test 28', 'test28.sh', test2], - ['test 29', 'test29.sh', test2], - ['test 30', 'test30.sh', test2], - ['test 31', 'test31.sh', test3], - ['test 32', 'test32.sh', test3], - ['test 33', 'test33.sh', test5], - ['test 34', 'test34.sh', test6], - ['test 35', 'test35.sh', test6], - ['test 36', 'test36.sh', test6], - ['test 37', 'test37.sh', test7], - ['test 38', 'test38.sh', test7], - ['test 39', 'test39.sh', test7], - ['test 40', 'test40.sh', test1], - ['test 41', 'test41.sh', test2], - ['test 42', 'test42.sh', test3], - ['test 43', 'test43.sh', test4], - ['test 44', 'test44.sh', test5], - ['test 45', 'test45.sh', test6], - ['test 46', 'test46.sh', test7], - ['test 47', 'test47.sh', test8], - ['test 48', 'test48.sh', test8], - ['test 49', 'test49.sh', test8], - ['test 50', 'test50.sh', test8], - ['test 51', 'test51.sh', test8], - ['test 52', 'test52.sh', test8], - ['test 53', 'test53.sh', test8], - ['test 54', 'test54.sh', test8], - ['test 55', 'test55.sh', test3], - ['test 56', 'test56.sh', test2], - ['test 57', 'test57.sh', test5], - ['test 58', 'test58.sh', test9], - ['test 59', 'test59.sh', test9], - ['test 60', 'test60.sh', test9], - ['test 61', 'test61.sh', test2], - ['test 62', 'test62.sh', test2], - ['test 63', 'test63.sh', test11], - ['test 64', 'test64.sh', test11], - ['test 65', 'test65.sh', test12], - ['test 66', 'test66.sh', test12], - ['test 67', 'test67.sh', test12], - ['test 68', 'test68.sh', test13], - ['test 69', 'test69.sh', test18], - ['test 70', 'test70.sh', test18], - ['test 71', 'test71.sh', test19], - ['test 72', 'test72.sh', test19], - ['test 73', 'test73.sh', test2], - ['test 74', 'test74.sh', test20], - ['test 75', 'test75.sh', test20], - ['test 76', 'test76.sh', test20], - ['test 77', 'test77.sh', test20], - ['test 78', 'test78.sh', test21], - ['test 79', 'test79.sh', test21], - ] - - foreach t : tests - test( - t[0], - find_program(t[1]), - env: srcdir_param, - depends: t[2], - workdir: wd, - is_parallel: false, # All test scripts use local filename tmp.out. - ) - endforeach - -endif - - tests = [ - # - ['test 80', 'test80.sh', test22], - ['test 81', 'test81.sh', test22], - ['test 82', 'test82.sh', test23], - ['test 83', 'test83.sh', test24], - ['test 84', 'test84.sh', test25], - ['test 85', 'test85.sh', test25], - ['test 86', 'test86.sh', test14], - ['test 87', 'test87.sh', test26], - ['test 88', 'test88.sh', test27], - ['test 89', 'test89.sh', test28], - ['test 90', 'test90.sh', test29], - ['test 91', 'test91.sh', test30], + # + ['test 1', 'test1.out', test1, '-r -n mike'], + ['test 2', 'test2.out', test1, '-n mike'], + ['test 3', 'test3.out', test1, '-n mike -r'], + ['test 4', 'test4.out', test1, ''], + ['test 5', 'test5.out', test2, '-i 10 -s homer marge bart lisa'], + ['test 6', 'test6.out', test2, '-i 10 -s hello goodbye -ABC'], + ['test 7', 'test7.out', test2, '-i 10 -s hello goodbye -hABC'], + ['test 8', 'test8.out', test2, '--version'], + ['test 9', 'test9.out', test2, '-i 10 -s hello goodbye -- -hv one two'], + ['test 10', 'test10.out', test2, '-i 10 -s hello'], + ['test 11', 'test11.out', test2, '-i 10 -s hello -i 9'], + ['test 12', 'test12.out', test2, '-i 10 -s hello -f nine'], + [ + 'test 13', + 'test13.out', + test3, + '--stringTest=bill -i=9 -i=8 -B homer marge bart', + ], + [ + 'test 14', + 'test14.out', + test3, + '--stringTest=aaa homer marge bart -- one two', + ], + [ + 'test 15', + 'test15.out', + test3, + '--stringTest bbb homer marge bart -- -hv two', + ], + ['test 16', 'test16.out', test3, '--stringTest one homer -B -Bh'], + ['test 17', 'test17.out', test3, '--stringTest=one homer -B'], + ['test 18', 'test18.out', test4, '-Bs --Bs asdf'], + ['test 19', 'test19.out', test4, '-BA --Bs asdf'], + [ + 'test 20', + 'test20.out', + test5, + '-a asdf -c fdas --eee blah -i sss -i fdsf', + ], + ['test 21', 'test21.out', test5, '-b asdf -c fdas -g asdf -j homer'], + ['test 22', 'test22.out', test5, '-a fdsa -b asdf -c fdas'], + ['test 23', 'test23.out', test5, '-d junk -c fdas'], + ['test 24', 'test24.out', test5, '--aaa dilbert -b asdf -c fdas'], + [ + 'test 25', + 'test25.out', + test5, + '--aaa asdf -c fdas --fff blah -i one -i two', + ], + ['test 26', 'test26.out', test2, '-i 2 -f 4..2 -s asdf asdf'], + ['test 27', 'test27.out', test2, '-i 2 -f 4.0.2 -s asdf asdf'], + ['test 28', 'test28.out', test2, '-i 2a -f 4.2 -s asdf asdf'], + ['test 29', 'test29.out', test2, '-i 0xA -f 4.2 -s asdf asdf'], + ['test 30', 'test30.out', test2, '-i 2.1 -f 4.2 -s asdf asdf'], + ['test 31', 'test31.out', test3, '-i=9a -i=1 -s=asdf asdf asdf'], + ['test 32', 'test32.out', test3, '-f=9 -f=1.0.0 -s=asdf asdf asdf'], + [ + 'test 33', + 'test33.out', + test5, + '-a asdf -c fdas --eee blah --ddd -j o --jjj t', + ], + ['test 34', 'test34.out', test6, '-n homer 2'], + ['test 35', 'test35.out', test6, '-n mike 2'], + ['test 36', 'test36.out', test6, '-n homer 6'], + ['test 37', 'test37.out', test7, '-n homer 2 -n marge 1 3'], + ['test 38', 'test38.out', test7, '-n mike 2 1'], + ['test 39', 'test39.out', test7, '2 -n homer -n bart 6'], + ['test 40', 'test40.out', test1, '--help'], + ['test 41', 'test41.out', test2, '--help'], + ['test 42', 'test42.out', test3, '--help'], + ['test 43', 'test43.out', test4, '--help'], + ['test 44', 'test44.out', test5, '--help'], + ['test 45', 'test45.out', test6, '--help'], + ['test 46', 'test46.out', test7, '--help'], + ['test 47', 'test47.out', test8, '-s=bill -i=9 -i=8 -B homer marge bart'], + ['test 48', 'test48.out', test8, '-s=aaa homer marge bart -- one two'], + ['test 49', 'test49.out', test8, '-s bbb homer marge bart -- -hv two'], + ['test 50', 'test50.out', test8, '-s one homer -B -Bh'], + ['test 51', 'test51.out', test8, '-s=one homer -B'], + ['test 52', 'test52.out', test8, '-i=9a -i=1 -s=asdf asdf asdf'], + ['test 53', 'test53.out', test8, '-f=9 -f=1.0.0 -s=asdf asdf asdf'], + ['test 54', 'test54.out', test8, '--help'], + ['test 55', 'test55.out', test3, '--stringTest=asdf - asdf zero one'], + ['test 56', 'test56.out', test2, '-i 1 - -s fdsa one two'], + [ + 'test 57', + 'test57.out', + test5, + '--aaa asdf -c fdas --fff blah -i one -i two -j huh', + ], + ['test 58', 'test58.out', test9, ''], + ['test 59', 'test59.out', test9, '-VVV -N --noise -r blah'], + ['test 60', 'test60.out', test9, '-VVV -N --noise -rr'], + ['test 61', 'test61.out', test2, '-i 10 -s hello "-1 -1"'], + ['test 62', 'test62.out', test2, ''], + ['test 63', 'test63.out', test11, ''], + ['test 64', 'test64.out', test11, '-v "1 2 3"'], + [ + 'test 65', + 'test65.out', + test12, + '-v "1 2 3" -v "4 5 6" -v "7 8 9" -v "-1 0.2 0.4"', + ], + ['test 66', 'test66.out', test12, ''], + ['test 67', 'test67.out', test12, '-v "a 1 0.3"'], + ['test 68', 'test68.out', test13, ''], + ['test 69', 'test69.out', test18, '--bob'], + ['test 70', 'test70.out', test18, '--help'], + ['test 71', 'test71.out', test19, '-i 0xA'], + ['test 72', 'test72.out', test19, '-i 012'], + ['test 73', 'test73.out', test2, '-i 1 -s asdf fff*fff'], + ['test 74', 'test74.out', test20, '-a -b'], + ['test 75', 'test75.out', test20, '-b -a'], + ['test 76', 'test76.out', test20, '-ba'], + ['test 77', 'test77.out', test20, '-ab'], + ['test 78', 'test78.out', test21, '~~reverse /n mike'], + ['test 79', 'test79.out', test21, ''], + ['test 80', 'test80.out', test22, 'asdf -n mike asdf fds xxx'], + ['test 81', 'test81.out', test22, 'asdf asdf -r fds xxx'], + [ + 'test 82', + 'test82.out', + test23, + 'blah --blah -s=bill -i=9 -i=8 -B homer marge bart', + ], + ['test 83', 'test83.out', test24, ''], + ['test 84', 'test84.out', test25, '-h x'], + ['test 85', 'test85.out', test25, '-h'], + ['test 86', 'test86.out', test14, '-v "3.2 -47.11 0"'], + ['test 87', 'test87.out', test26, '-v "1 2 3"'], + ['test 88', 'test88.out', test27, ''], + ['test 89', 'test89.out', test28, ''], + ['test 90', 'test90.out', test29, ''], + ['test 91', 'test91.out', test30, '-p "1 2.3"'], ] + foreach t : tests test( t[0], - find_program(t[1]), - env: srcdir_param, + test_wrapper, + args: [meson.current_source_dir() / t[1], t[2], t[3]], depends: t[2], workdir: wd, - is_parallel: false, # All test scripts use local filename tmp.out. ) endforeach From 0cf576d0a2b13f82b77be858f8ae8cccbf3e62d7 Mon Sep 17 00:00:00 2001 From: "Dr. Manuel Schmitz" Date: Wed, 8 Apr 2026 09:40:10 +0100 Subject: [PATCH 5/5] Disable tests on MS Windows. --- subprojects/packagefiles/tclap/meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/subprojects/packagefiles/tclap/meson.build b/subprojects/packagefiles/tclap/meson.build index 86328d963a..98d008e603 100644 --- a/subprojects/packagefiles/tclap/meson.build +++ b/subprojects/packagefiles/tclap/meson.build @@ -29,6 +29,10 @@ subdir('examples') # Tests # -- -subdir('tests') +# TCLAP is known to have problems on Windows platforms. +# Re-enable tests when TCLAP has solved those. +if host_machine.system() != 'windows' + subdir('tests') +endif