shithub: libtags

ref: 47a009f78b0ee0b5a5588718ce3a9a39f75c4813
dir: /meson.build/

View raw version
project(
	'libtags',
	'c',
	version: '1.0',
	default_options: [
		'c_std=c99',
		'warning_level=3',
		'buildtype=debug',
	],
)

add_project_arguments(
	'-Wmissing-prototypes',
	'-Wformat=2',
	'-D_DEFAULT_SOURCE',
	language: 'c',
)

cc = meson.get_compiler('c')

if(cc.has_argument('-Wno-#warnings'))
	add_project_arguments('-Wno-#warnings', language: 'c')
elif(cc.has_argument('-Wno-cpp'))
	add_project_arguments('-Wno-cpp', language: 'c')
endif

src_lib = [
	'437.c',
	'8859.c',
	'flac.c',
	'id3genres.c',
	'id3v1.c',
	'id3v2.c',
	'it.c',
	'm4a.c',
	'mod.c',
	'opus.c',
	's3m.c',
	'tags.c',
	'utf16.c',
	'vorbis.c',
	'wav.c',
	'xm.c',
]

src_readtags = [
	'examples/readtags.c',
]


if(get_option('fuzz'))
	if(cc.has_argument('-Wno-gnu-statement-expression-from-macro-expansion'))
		add_project_arguments('-Wno-gnu-statement-expression-from-macro-expansion', language: 'c')
	endif
	add_project_arguments([ '-U_FORTIFY_SOURCE', '-D_FORTIFY_SOURCE=0' ], language: 'c')
endif

lib = static_library(
	'tags',
	sources: src_lib,
	install: true,
)

install_headers(
	'tags.h',
)

libtags = declare_dependency(
	link_with: lib,
)

executable(
	'readtags',
	sources: src_readtags,
	dependencies: [ libtags ],
	install: false,
)

if(get_option('fuzz'))
	executable(
		'harness',
		sources: [ 'harness.c' ],
		dependencies: [ libtags ],
		install: false,
	)
endif