1project('wavbreaker', 'c', 2 version : '0.13', 3 default_options: [ 4 'c_std=c99', 5 'warning_level=1', 6 ], 7) 8 9subdir('po') 10 11prefix = get_option('prefix') 12localedir = get_option('localedir') 13 14glib = dependency('glib-2.0') 15gtk3 = dependency('gtk+-3.0', version : '>= 3.22') 16ao = dependency('ao') 17 18cc = meson.get_compiler('c') 19libm = cc.find_library('m') 20 21deps = [glib, gtk3, ao] 22 23have_mpg123 = false 24if get_option('mp3') 25 mpg123 = dependency('libmpg123', required : false) 26 if mpg123.found() 27 have_mpg123 = true 28 deps += mpg123 29 endif 30endif 31 32wavbreaker_sources = [ 33 'src/about.c', 34 'src/aoaudio.c', 35 'src/appconfig.c', 36 'src/autosplit.c', 37 'src/cdda.c', 38 'src/cue.c', 39 'src/draw.c', 40 'src/guimerge.c', 41 'src/moodbar.c', 42 'src/overwritedialog.c', 43 'src/popupmessage.c', 44 'src/reallyquit.c', 45 'src/sample.c', 46 'src/saveas.c', 47 'src/toc.c', 48 'src/wav.c', 49 'src/wavbreaker.c', 50] 51 52if get_option('windows_app') 53 windows = import('windows') 54 wavbreaker_sources += windows.compile_resources('data/wavbreaker.rc') 55endif 56 57add_project_arguments(['-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE', 58 '-DGTK_DISABLE_SINGLE_INCLUDES', '-DGSEAL_ENABLE', 59 '-DGDK_DISABLE_DEPRECATED', '-DGTK_DISABLE_DEPRECATED'], language : 'c') 60 61conf = configuration_data() 62# Surround the version in quotes to make it a C string 63conf.set_quoted('VERSION', meson.project_version()) 64conf.set_quoted('PACKAGE', meson.project_name()) 65conf.set_quoted('LOCALEDIR', join_paths(prefix, localedir)) 66conf.set('WANT_MOODBAR', get_option('moodbar')) 67conf.set('HAVE_MPG123', have_mpg123) 68configure_file(output : 'config.h', 69 configuration : conf) 70 71meta = configuration_data() 72meta.set('VERSION', meson.project_version()) 73info_plist = configure_file(output : 'Info.plist', 74 input : 'data/Info.plist.in', 75 configuration : meta) 76 77if get_option('macos_app') 78 install_data('data/wavbreaker.icns', install_dir : 'Contents/Resources') 79 install_data(info_plist, install_dir : 'Contents') 80else 81 install_data('data/net.sourceforge.wavbreaker.desktop', install_dir: get_option('datadir') + '/applications') 82 icon_dir = get_option('datadir') + '/icons/hicolor' 83 install_data('data/net.sourceforge.wavbreaker.svg', install_dir: icon_dir + '/scalable/apps') 84endif 85 86install_man('man/wavbreaker.1') 87install_man('man/wavinfo.1') 88install_man('man/wavmerge.1') 89 90executable('wavbreaker', 91 wavbreaker_sources, 92 dependencies : deps, 93 gui_app : true, 94 install : true) 95 96executable('wavmerge', 97 'src/wavmerge.c', 98 'src/wav.c', 99 dependencies : [glib], 100 install : true) 101 102executable('wavgen', 103 'src/wavgen.c', 104 'src/wav.c', 105 dependencies : [glib, libm], 106 install : true) 107 108executable('wavinfo', 109 'src/wavinfo.c', 110 'src/wav.c', 111 dependencies : [glib], 112 install : true) 113