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.
This commit is contained in:
		
							
								
								
									
										41
									
								
								subprojects/packagefiles/libjpegqs/meson.build
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								subprojects/packagefiles/libjpegqs/meson.build
									
									
									
									
									
										Normal file
									
								
							@@ -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('.'),
 | 
			
		||||
)
 | 
			
		||||
		Reference in New Issue
	
	Block a user