From 45238d78cd9535b33bfbeeaaac4645af1bd93834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Tue, 18 Jan 2022 23:35:14 +0100 Subject: Mesonize JPEG Quant Smooth Now SIMD works on amd64, although the build remains questionable, because it assumes that all of its compiler flags will work. This way we lose an uncomfortable git submodule. Also, add Meson subprojects to .gitignore. --- subprojects/libjpegqs.wrap | 9 ++++++ subprojects/packagefiles/libjpegqs/meson.build | 41 ++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 subprojects/libjpegqs.wrap create mode 100644 subprojects/packagefiles/libjpegqs/meson.build (limited to 'subprojects') diff --git a/subprojects/libjpegqs.wrap b/subprojects/libjpegqs.wrap new file mode 100644 index 0000000..c6a8f6f --- /dev/null +++ b/subprojects/libjpegqs.wrap @@ -0,0 +1,9 @@ +[wrap-file] +directory = jpeg-quantsmooth-1.20210408 +source_url = https://github.com/ilyakurdyukov/jpeg-quantsmooth/archive/refs/tags/1.20210408.tar.gz +source_filename = jpeg-quantsmooth-1.20210408.tar.gz +source_hash = 5937ca26db33888cab8638c1a8dc7a367a953bd0857ceb1290d5abc6febf3116 +patch_directory = libjpegqs + +[provide] +libjpegqs = jpegqs_dep diff --git a/subprojects/packagefiles/libjpegqs/meson.build b/subprojects/packagefiles/libjpegqs/meson.build new file mode 100644 index 0000000..9755f59 --- /dev/null +++ b/subprojects/packagefiles/libjpegqs/meson.build @@ -0,0 +1,41 @@ +# vim: noet ts=4 sts=4 sw=4: +project('jpeg-qs', 'c') +add_project_arguments(meson.get_compiler('c') + .get_supported_arguments('-Wno-misleading-indentation'), + '-DWITH_LOG', language : 'c') + +deps = [ + dependency('libjpeg'), + meson.get_compiler('c').find_library('m', required : false), +] + +if host_machine.cpu_family() == 'x86_64' + jpegqs_avx512 = static_library('jpegqs-avx512', 'libjpegqs.c', + c_args : ['-DSIMD_SELECT', '-DSIMD_NAME=avx512', + '-mavx512f', '-mfma', '-DSIMD_AVX512'], + dependencies : deps) + jpegqs_avx2 = static_library('jpegqs-avx2', 'libjpegqs.c', + c_args : ['-DSIMD_SELECT', '-DSIMD_NAME=avx2', + '-mavx2', '-mfma', '-DSIMD_AVX2'], + dependencies : deps) + jpegqs_sse2 = static_library('jpegqs-sse2', 'libjpegqs.c', + c_args : ['-DSIMD_SELECT', '-DSIMD_NAME=sse2', '-msse2', '-DSIMD_SSE2'], + dependencies : deps) + jpegqs_base = static_library('jpegqs-base', 'libjpegqs.c', + c_args : ['-DSIMD_SELECT', '-DSIMD_NAME=base', '-DSIMD_BASE'], + dependencies : deps) + + jpegqs_lib = static_library('jpegqs', 'libjpegqs.c', + c_args : ['-DSIMD_SELECT'], + dependencies : deps, + link_with : [jpegqs_base, jpegqs_sse2, jpegqs_avx2, jpegqs_avx512]) +else + jpegqs_lib = static_library('jpegqs', 'libjpegqs.c', + c_args : ['-DNO_SIMD'], + dependencies : deps) +endif + +jpegqs_dep = declare_dependency( + link_with : jpegqs_lib, + include_directories : include_directories('.'), +) -- cgit v1.2.3