1project('purple-plugin-pack', 'c', 2 version : '2.8.0') 3 4####################################################################### 5# Our header 6####################################################################### 7add_project_arguments('-DHAVE_CONFIG_H', language : 'c') 8conf = configuration_data() 9 10conf.set_quoted('PP_VERSION', meson.project_version()) 11 12# I'm lazy and figured config.h is the best place for this ;) 13conf.set_quoted('PP_WEBSITE', 'https://bitbucket.org/pidgin/purple-plugin-pack') 14 15####################################################################### 16# Good ol' gettext 17####################################################################### 18 19GETTEXT_PACKAGE = 'plugin_pack' 20conf.set_quoted('GETTEXT_PACKAGE', GETTEXT_PACKAGE) 21 22####################################################################### 23# Look for the C compiler 24####################################################################### 25compiler = meson.get_compiler('c') 26 27# this is used as the suffix below (for purple-3, pidgin-3, etc) 28# and also as the -3 param to plugin_pack.py 29if get_option('purple-version') == '2' 30 PURPLE_VER = '' 31 IS_PURPLE_TWO = true 32else 33 PURPLE_VER = '-' + get_option('purple-version') 34 IS_PURPLE_TWO = false 35endif 36 37####################################################################### 38# Check for purple 39####################################################################### 40PURPLE = dependency('purple@0@'.format(PURPLE_VER)) 41 42PURPLE_LIBDIR = PURPLE.get_pkgconfig_variable('plugindir') 43PURPLE_DATADIR = PURPLE.get_pkgconfig_variable('datadir') 44 45PP_LOCALEDIR = join_paths(get_option('prefix'), get_option('localedir')) 46conf.set_quoted('PP_LOCALEDIR', PP_LOCALEDIR) 47 48####################################################################### 49# Check for pidgin 50####################################################################### 51PIDGIN = dependency('pidgin@0@'.format(PURPLE_VER), required : false) 52conf.set('HAVE_PIDGIN', PIDGIN.found()) 53 54if PIDGIN.found() 55 PIDGIN_LIBDIR = PIDGIN.get_pkgconfig_variable('plugindir') 56 PIDGIN_DATADIR = PIDGIN.get_pkgconfig_variable('datadir') 57 PIDGIN_PIXMAPSDIR = join_paths(PIDGIN_DATADIR, 'pixmaps/pidgin') 58else 59 PIDGIN_LIBDIR = '' 60 PIDGIN_DATADIR = '' 61 PIDGIN_PIXMAPSDIR = '' 62endif 63 64####################################################################### 65# Check for finch 66####################################################################### 67FINCH = dependency('finch', required : false) 68conf.set('HAVE_FINCH', FINCH.found()) 69 70if FINCH.found() 71 FINCH_LIBDIR = FINCH.get_pkgconfig_variable('libdir') 72 FINCH_DATADIR = FINCH.get_pkgconfig_variable('datadir') 73else 74 FINCH_LIBDIR = '' 75 FINCH_DATADIR = '' 76endif 77 78####################################################################### 79# check for gtk 80####################################################################### 81GLIB = dependency('glib-2.0', version : '>= 2.32.0', required : true) 82GTK = dependency('gtk+-2.0', version : '>= 2.10.0', required : false) 83 84####################################################################### 85# check for gnt 86####################################################################### 87GNT = dependency('gnt', required : false) 88 89####################################################################### 90# check for pango 91####################################################################### 92PANGO = dependency('pango', required : false) 93 94####################################################################### 95# check for cairo 96####################################################################### 97CAIRO = dependency('cairo', required : false) 98 99####################################################################### 100# Check for libjson-glib 101####################################################################### 102JSON_GLIB = dependency('json-glib-1.0', required : false) 103 104####################################################################### 105# Check for ZLib 106####################################################################### 107ZLIB = dependency('zlib', required : false) 108 109####################################################################### 110# Check for switchspell 111####################################################################### 112GTKSPELL = dependency('gtkspell-2.0', version : '>= 2.0.2', required : false) 113 114BUILD_SWITCH_SPELL = false 115 116if GTKSPELL.found() 117 # FIXME: This is a hack that should not exist. 118 if run_command('pkg-config', '--static', '--libs', 'gtkspell-2.0').stdout().contains('enchant') 119 ENCHANT = dependency('enchant-2', required : false) 120 ASPELL = [] 121 BUILD_SWITCH_SPELL = ENCHANT.found() 122 123 conf.set('HAVE_ENCHANT', ENCHANT.found()) 124 else 125 ASPELL = dependency('aspell', required : false) 126 ENCHANT = [] 127 BUILD_SWITCH_SPELL = ASPELL.found() 128 endif 129endif 130 131####################################################################### 132# Check for some basic headers 133####################################################################### 134if compiler.has_header('regex.h') 135 conf.set('HAS_REGEX_H', true) 136else 137 error('regex.h cannot be found') 138endif 139 140####################################################################### 141# Disable installation of translation files 142####################################################################### 143INSTALL_I18N = get_option('nls') 144subdir('po') 145conf.set('ENABLE_NLS', INSTALL_I18N) 146 147####################################################################### 148# Add all plugin directories: 149####################################################################### 150TYPES = get_option('types').split(',') 151if TYPES.contains('all') 152 TYPES = ['default', 'abusive', 'incomplete'] 153else 154 foreach type : TYPES 155 if not ['default', 'abusive', 'incomplete'].contains(type) 156 error('"@0@" is not a supported plugin type'.format(type)) 157 endif 158 endforeach 159endif 160 161PP_PURPLE_BUILD = [] 162PP_PIDGIN_BUILD = [] 163PP_FINCH_BUILD = [] 164 165subdir('album') 166subdir('autoreply') 167subdir('bash') 168subdir('blistops') 169subdir('capsnot') 170subdir('colorize') 171subdir('convbadger') 172subdir('dewysiwygification') 173subdir('dice') 174subdir('difftopic') 175subdir('eight_ball') 176subdir('enhancedhist') 177subdir('flip') 178subdir('gRIM') 179subdir('google') 180subdir('groupmsg') 181subdir('highlight') 182subdir('icon-override') 183subdir('ignore') 184subdir('irc-more') 185subdir('irchelper') 186subdir('irssi') 187subdir('lastseen') 188subdir('listhandler') 189subdir('listlog') 190subdir('mystatusbox') 191subdir('nicksaid') 192subdir('ning') 193subdir('okcupid') 194subdir('oldlogger') 195subdir('omegle') 196subdir('plonkers') 197subdir('schedule') 198subdir('sepandtab') 199subdir('showoffline') 200subdir('simfix') 201subdir('slashexec') 202subdir('snpp') 203subdir('splitter') 204subdir('sslinfo') 205subdir('switchspell') 206subdir('timelog') 207subdir('translate') 208subdir('xmppprio') 209 210####################################################################### 211# Install the metainfo file 212####################################################################### 213install_data('purple-plugin-pack.metainfo.xml', 214 install_dir : get_option('datadir') / 'metainfo') 215 216####################################################################### 217# Output!! 218####################################################################### 219configure_file( 220 output : 'pp_config.h', 221 configuration : conf) 222 223rpm_conf = configuration_data() 224rpm_conf.set('PACKAGE', meson.project_name()) 225rpm_conf.set('VERSION', meson.project_version()) 226configure_file( 227 input : 'plugin_pack.spec.in', 228 output : 'plugin_pack.spec', 229 configuration : rpm_conf) 230 231message('') 232message('@0@ @1@ Configuration complete'.format(meson.project_name(), meson.project_version())) 233message('') 234 235message('Build purple plugins.............: ' + PURPLE.found().to_string()) 236if PURPLE.found() 237 message('Installing purple plugins to.....: ' + PURPLE_LIBDIR) 238 message('Installing purple plugin data to.: ' + PURPLE_DATADIR) 239 message('Purple plugins to be built.......: ' + ' '.join(PP_PURPLE_BUILD)) 240endif 241message('') 242 243message('Build pidgin plugins.............: ' + PIDGIN.found().to_string()) 244if PIDGIN.found() 245 message('Installing pidgin plugins to.....: ' + PIDGIN_LIBDIR) 246 message('Installing pidgin plugin data to.: ' + PIDGIN_DATADIR) 247 message('Pidgin plugins to be built.......: ' + ' '.join(PP_PIDGIN_BUILD)) 248endif 249message('') 250 251message('Build finch plugins..............: ' + FINCH.found().to_string()) 252if FINCH.found() 253 message('Installing finch plugins to......: ' + FINCH_LIBDIR) 254 message('Installing finch plugin data to..: ' + FINCH_DATADIR) 255 message('Finch plugins to be built........: ' + ' '.join(PP_FINCH_BUILD)) 256endif 257message('') 258 259