diff --git a/releases.json b/releases.json index 13a01a1fa..21fcb5475 100644 --- a/releases.json +++ b/releases.json @@ -2529,6 +2529,14 @@ "2.0.2-1" ] }, + "qrencode": { + "dependency_names": [ + "libqrencode" + ], + "versions": [ + "4.1.1-1" + ] + }, "quazip": { "dependency_names": [ "quazip" diff --git a/subprojects/packagefiles/qrencode/meson.build b/subprojects/packagefiles/qrencode/meson.build new file mode 100644 index 000000000..94807248c --- /dev/null +++ b/subprojects/packagefiles/qrencode/meson.build @@ -0,0 +1,53 @@ +project( + 'qrencode', + 'c', + license: 'mit', + version: '4.1.1', +) +cc = meson.get_compiler('c') + +sources = files( + 'bitstream.c', + 'mask.c', + 'mmask.c', + 'mqrspec.c', + 'qrencode.c', + 'qrinput.c', + 'qrspec.c', + 'rsecc.c', + 'split.c', +) +c_args = [ + '-DSTATIC_IN_RELEASE=static', + '-DMAJOR_VERSION=' + meson.project_version().split('.')[0], + '-DMINOR_VERSION=' + meson.project_version().split('.')[1], + '-DMICRO_VERSION=' + meson.project_version().split('.')[2], + '-DVERSION="' + meson.project_version() + '"', +] +if cc.check_header('pthread.h') + c_args += ['-DHAVE_LIBPTHREAD'] +endif +if cc.has_function('strdup', prefix: '#include ') + c_args += ['-DHAVE_STRDUP'] +endif + +libqrencode = library( + 'qrencode', + sources, + c_args: c_args, + dependencies: [dependency('threads')], + vs_module_defs: 'qrencode.def', + install: true, + version: meson.project_version(), +) +import('pkgconfig').generate( + libqrencode, + name: 'libqrencode', + description: 'A QR Code encoding library', + version: meson.project_version(), +) +libqrencode_dep = declare_dependency( + link_with: libqrencode, + include_directories: include_directories('.'), +) +meson.override_dependency('libqrencode', libqrencode_dep) diff --git a/subprojects/packagefiles/qrencode/qrencode.def b/subprojects/packagefiles/qrencode/qrencode.def new file mode 100644 index 000000000..3ab369f71 --- /dev/null +++ b/subprojects/packagefiles/qrencode/qrencode.def @@ -0,0 +1,38 @@ +EXPORTS + QRinput_new + QRinput_new2 + QRinput_newMQR + QRinput_append + QRinput_appendECIheader + QRinput_getVersion + QRinput_setVersion + QRinput_getErrorCorrectionLevel + QRinput_setErrorCorrectionLevel + QRinput_setVersionAndErrorCorrectionLevel + QRinput_free + QRinput_check + QRinput_Struct_new + QRinput_Struct_setParity + QRinput_Struct_appendInput + QRinput_Struct_free + QRinput_splitQRinputToStruct + QRinput_Struct_insertStructuredAppendHeaders + QRinput_setFNC1First + QRinput_setFNC1Second + QRcode_encodeInput + QRcode_encodeString + QRcode_encodeString8bit + QRcode_encodeStringMQR + QRcode_encodeString8bitMQR + QRcode_encodeData + QRcode_encodeDataMQR + QRcode_free + QRcode_encodeInputStructured + QRcode_encodeStringStructured + QRcode_encodeString8bitStructured + QRcode_encodeDataStructured + QRcode_List_size + QRcode_List_free + QRcode_APIVersion + QRcode_APIVersionString + QRcode_clearCache diff --git a/subprojects/qrencode.wrap b/subprojects/qrencode.wrap new file mode 100644 index 000000000..0ce641ff2 --- /dev/null +++ b/subprojects/qrencode.wrap @@ -0,0 +1,9 @@ +[wrap-file] +directory = qrencode-4.1.1 +source_url = https://fukuchi.org/works/qrencode/qrencode-4.1.1.tar.gz +source_filename = qrencode-4.1.1.tar.gz +source_hash = da448ed4f52aba6bcb0cd48cac0dd51b8692bccc4cd127431402fca6f8171e8e +patch_directory = qrencode + +[provide] +dependency_names = libqrencode diff --git a/tools/sanity_checks.py b/tools/sanity_checks.py index fee3aa9fa..eb07918e4 100755 --- a/tools/sanity_checks.py +++ b/tools/sanity_checks.py @@ -46,16 +46,8 @@ 'glbinding-aux_export.h' ], 'gumbo-parser': [ - 'gumbo.def', 'tokenizer.cc', ], - 'jbig2dec': [ - 'jbig2dec.def', - ], - 'jbigkit': [ - 'jbig.def', - 'jbig85.def' - ], 'icu': [ 'export_module.py' ], @@ -65,30 +57,12 @@ 'libexif': [ 'def.py', ], - 'lmdb': [ - 'lmdb.def', - ], - 'liblbfgs': [ - 'liblbfgs.def' - ], - 'libunibreak': [ - 'unibreak.def' - ], 'm4': [ 'm4_test_runner.py', ], - 'minizip-ng': [ - 'mz.def', - ], 'mpdecimal': [ 'gettests.py', ], - 'mujs': [ - 'mujs.def', - ], - 'netstring-c': [ - 'netstring-c.def', - ], 'nowide': [ 'test_iostream_interactive.py', ], @@ -119,12 +93,6 @@ 'doxyfile-patcher.py', 'arm2gnu-wrapper.py', 'generate_windows_rc.py', - 'theora.def' - ], - 'vorbis': [ - 'vorbis.def', - 'vorbisenc.def', - 'vorbisfile.def' ], 'libffi': [ 'test-cc-supports-hidden-visibility.py', @@ -448,7 +416,7 @@ def check_new_release(self, name: str, builddir: str = '_build', deps=None, prog def is_permitted_file(self, subproject: str, filename: str): if filename in PERMITTED_FILES: return True - if filename.endswith('.h.meson'): + if filename.endswith('.h.meson') or filename.endswith('.def'): return True if subproject in PER_PROJECT_PERMITTED_FILES and filename in PER_PROJECT_PERMITTED_FILES[subproject]: return True