Mon, 19 Jun 2017 21:54:28 -0400
Merge with default.
For meson build, delete marshallers and update name of resource file.
purple_coresources = [ 'account.c', 'accounts.c', 'accountopt.c', 'blistnode.c', 'buddy.c', 'buddylist.c', 'buddyicon.c', 'chat.c', 'ciphers/aescipher.c', 'ciphers/descipher.c', 'ciphers/des3cipher.c', 'ciphers/md4hash.c', 'ciphers/pbkdf2cipher.c', 'ciphers/rc4cipher.c', 'cipher.c', 'circularbuffer.c', 'cmds.c', 'connection.c', 'contact.c', 'conversation.c', 'conversationtypes.c', 'conversations.c', 'core.c', 'countingnode.c', 'debug.c', 'e2ee.c', 'eventloop.c', 'group.c', 'http.c', 'idle.c', 'image.c', 'image-store.c', 'keyring.c', 'log.c', 'media/backend-fs2.c', 'media/backend-iface.c', 'media/candidate.c', 'media/codec.c', 'media/enum-types.c', 'media.c', 'mediamanager.c', 'memorypool.c', 'message.c', 'mime.c', 'nat-pmp.c', 'network.c', 'notify.c', 'plugins.c', 'pluginpref.c', 'pounce.c', 'prefs.c', 'presence.c', 'proxy.c', 'protocol.c', 'protocols.c', 'purple-gio.c', 'queuedoutputstream.c', 'request.c', 'request-datasheet.c', 'roomlist.c', 'savedstatuses.c', 'server.c', 'signals.c', 'smiley-custom.c', 'smiley-list.c', 'smiley-parser.c', 'smiley-theme.c', 'smiley.c', 'status.c', 'stringref.c', 'stun.c', 'sound.c', 'sound-theme.c', 'sound-theme-loader.c', 'sslconn.c', 'theme.c', 'theme-loader.c', 'theme-manager.c', 'tls-certificate.c', 'tls-certificate-info.c', 'trie.c', 'upnp.c', 'util.c', 'version.c', 'whiteboard.c', 'xfer.c', 'xmlnode.c' ] purple_coreheaders = [ 'account.h', 'accounts.h', 'accountopt.h', 'blistnode.h', 'buddy.h', 'buddylist.h', 'buddyicon.h', 'chat.h', 'cipher.h', 'circularbuffer.h', 'cmds.h', 'connection.h', 'contact.h', 'conversation.h', 'conversationtypes.h', 'conversations.h', 'core.h', 'countingnode.h', 'dbus-maybe.h', 'debug.h', 'e2ee.h', 'eventloop.h', 'group.h', 'http.h', 'idle.h', 'image.h', 'image-store.h', 'keyring.h', 'log.h', 'media.h', 'mediamanager.h', 'memorypool.h', 'message.h', 'mime.h', 'nat-pmp.h', 'network.h', 'notify.h', 'plugins.h', 'pluginpref.h', 'pounce.h', 'prefs.h', 'presence.h', 'proxy.h', 'protocol.h', 'protocols.h', 'purple-gio.h', 'queuedoutputstream.h', 'request.h', 'request-datasheet.h', 'roomlist.h', 'savedstatuses.h', 'server.h', 'signals.h', 'smiley-custom.h', 'smiley-list.h', 'smiley-parser.h', 'smiley-theme.h', 'smiley.h', 'status.h', 'stringref.h', 'stun.h', 'sound.h', 'sound-theme.h', 'sound-theme-loader.h', 'sslconn.h', 'tests.h', 'theme.h', 'theme-loader.h', 'theme-manager.h', 'tls-certificate.h', 'tls-certificate-info.h', 'trie.h', 'upnp.h', 'util.h', 'whiteboard.h', 'xfer.h', 'xmlnode.h', ] if USE_VV purple_coreheaders += 'media-gst.h' endif if IS_WIN32 purple_coresources += [ 'win32/libc_interface.c', 'win32/win32dep.c' ] purple_coreheaders += [ 'win32/libc_interface.h', 'win32/libc_internal.h', 'win32/win32dep.h', 'win32/wpurpleerror.h' ] libpurplerc = configure_file( input : 'win32/libpurplerc.rc.in', output : 'libpurplerc.rc', configuration : version_conf) purple_coresources += windows.compile_resources(libpurplerc) endif purple_mediaheaders = [ 'media/backend-iface.h', 'media/candidate.h', 'media/codec.h', 'media/enum-types.h' ] purple_cipherheaders = [ 'ciphers/aescipher.h', 'ciphers/descipher.h', 'ciphers/des3cipher.h', 'ciphers/md4hash.h', 'ciphers/pbkdf2cipher.h', 'ciphers/rc4cipher.h', ] purple_enumheaders = [ 'account.h', 'buddyicon.h', 'cipher.h', 'connection.h', 'conversation.h', 'conversationtypes.h', 'debug.h', 'eventloop.h', 'notify.h', 'plugins.h', 'protocol.h', 'protocols.h', 'roomlist.h', 'status.h', 'sound.h', 'xfer.h', 'xmlnode.h' ] enums = gnome.mkenums('enums', sources : purple_enumheaders, h_template : 'enums.h.in', c_template : 'enums.c.in', install_header : true, install_dir : get_option('includedir') + '/libpurple') enums_c = enums[0] enums_h = enums[1] purple_h = configure_file(input : 'purple.h.in', output : 'purple.h', configuration : conf, install : true, install_dir : get_option('includedir') + '/libpurple') version_h = configure_file(input : 'version.h.in', output : 'version.h', configuration : version_conf, install : true, install_dir : get_option('includedir') + '/libpurple') purple_builtsources = [ enums_c, ] purple_builtheaders = [ purple_h, version_h, enums_h, ] if ENABLE_DBUS # purple dbus server dbus_sources = [ 'dbus-server.c', 'dbus-useful.c' ] dbus_headers = [ 'dbus-server.h', 'dbus-bindings.h', 'dbus-purple.h', 'dbus-useful.h', 'dbus-define-api.h', ] dbus_exported = [ 'dbus-useful.h', 'dbus-define-api.h', 'account.h', 'accounts.h', 'blistnode.h', 'buddy.h', 'buddylist.h', 'buddyicon.h', 'connection.h', 'conversation.h', 'conversationtypes.h', 'conversations.h', 'core.h', 'xfer.h', 'log.h', 'notify.h', 'prefs.h', 'presence.h', 'roomlist.h', 'savedstatuses.h', 'smiley.h', 'smiley-list.h', 'status.h', 'server.h', 'util.h', 'xmlnode.h', 'protocol.h', 'protocols.h' ] purple_build_coreheaders = purple_coreheaders + purple_cipherheaders + purple_mediaheaders purple_build_coreheaders += purple_builtheaders # We should probably make this better dbus_signals = purple_coresources + ['protocols/irc/irc.c', 'protocols/jabber/jabber.c'] dbus_analyze_functions = files('dbus-analyze-functions.py')[0] dbus_analyze_signals = files('dbus-analyze-signals.py')[0] dbus_analyze_types = files('dbus-analyze-types.py')[0] dbus_types_c = custom_target('dbus_types_c', input : purple_build_coreheaders, output : 'dbus-types.ch', command : [python, dbus_analyze_types, '-o', '@OUTPUT@', '--pattern=PURPLE_DBUS_DEFINE_TYPE(%s)', '@INPUT@']) dbus_types_h = custom_target('dbus_types_h', input : purple_build_coreheaders, output : 'dbus-types.h', command : [python, dbus_analyze_types, '-o', '@OUTPUT@', '--pattern=PURPLE_DBUS_DECLARE_TYPE(%s)', '@INPUT@'], install : true, install_dir : join_paths(get_option('includedir'), 'libpurple')) dbus_bindings_c = custom_target('dbus_bindings_c', input : dbus_exported, output : 'dbus-bindings.ch', command : [python, dbus_analyze_functions, '-o', '@OUTPUT@', '@INPUT@']) dbus_signals_c = custom_target('dbus_signals_c', input : dbus_signals, output : 'dbus-signals.ch', command : [python, dbus_analyze_signals, '-o', '@OUTPUT@', '@INPUT@']) dbus_builtheaders = [dbus_types_h] dbus_builtsources = [dbus_types_c, dbus_bindings_c, dbus_signals_c] # libpurple-client purple_client_bindings_h1 = custom_target('purple_client_bindings_h1', input : purple_build_coreheaders, output : 'purple-client-bindings1.h', command : [ python, dbus_analyze_types, '--keyword=enum', '--verbatim', '-o', '@OUTPUT@', '@INPUT@' ] ) purple_client_bindings_h2 = custom_target('purple_client_bindings_h2', input : dbus_exported, output : 'purple-client-bindings2.h', command : [ python, dbus_analyze_functions, '--client', '--headers', '-o', '@OUTPUT@', '@INPUT@' ] ) purple_client_bindings_h = custom_target('purple_client_bindings_h', input : [purple_client_bindings_h1, purple_client_bindings_h2], output : 'purple-client-bindings.h', capture : true, command : ['cat', '@INPUT@']) purple_client_bindings_c = custom_target('purple_client_bindings_c', input : dbus_exported, output : 'purple-client-bindings.ch', command : [ python, dbus_analyze_functions, '--client', '-o', '@OUTPUT@', '@INPUT@' ] ) libpurple_client = library('purple-client', 'purple-client.c', purple_client_bindings_c, purple_client_bindings_h, soversion : purple_lt_current, version : PURPLE_LT_VERSION_INFO, dependencies : [dbus, dbus_glib], install : true) # scripts install_data(['purple-remote', 'purple-send', 'purple-send-async', 'purple-url-handler'], install_dir : get_option('bindir')) else dbus_sources = [] dbus_headers = [] dbus_builtsources = [] dbus_builtheaders = [] endif libpurple_inc = include_directories('.') libpurple = library('purple', purple_coresources + purple_builtsources + dbus_sources + dbus_builtsources + purple_builtheaders + dbus_builtheaders, include_directories : [toplevel_inc, libpurple_inc], install : true, soversion : purple_lt_current, version : PURPLE_LT_VERSION_INFO, dependencies : # static_link_libs [dbus, dbus_glib, dnsapi, ws2_32, glib, gio, gplugin, libxml, farstream, gstreamer, gstreamer_video, gstreamer_app, idn, json, gnutls, nss, zlib, math]) libpurple_dep = declare_dependency( sources : purple_builtheaders, # Ensure built before any dependencies. include_directories : [toplevel_inc, libpurple_inc], link_with : libpurple, dependencies : [gstreamer, gplugin, glib, gio]) if ENABLE_DBUS # purple-client-example purple_client_example = executable('purple-client-example', 'purple-client-example.c', purple_client_bindings_h, link_with : [libpurple_client, libpurple], dependencies : [dbus, dbus_glib, glib], install : true) endif install_headers(purple_coreheaders + dbus_headers, subdir : 'libpurple') install_headers(purple_cipherheaders, subdir : 'libpurple/ciphers') install_headers(purple_mediaheaders, subdir : 'libpurple/media') configure_file(input : 'data/purple-3.pc.in', output : 'purple-3.pc', configuration : pkg_conf, install : true, install_dir : get_option('libdir') + '/pkgconfig') if INSTALL_I18N DESKTOP_FILE = 'purple-url-handler.desktop' desktop_file_in = configure_file( input : 'data/' + DESKTOP_FILE + '.in.in', output : DESKTOP_FILE + '.in', configuration : conf) desktop_file = custom_target(DESKTOP_FILE, input : desktop_file_in, output : DESKTOP_FILE, command : [intltool_merge, '--desktop-style', '-u', '-c', '@BUILD_DIR@/po/.intltool-merge-cache', meson.source_root() + '/po', '@INPUT@', '@OUTPUT@'], install : true, install_dir : get_option('datadir') + '/applications') endif # INSTALL_I18N if enable_introspection introspection_sources = (purple_coreheaders + purple_builtheaders + dbus_headers + purple_cipherheaders + purple_mediaheaders) Purple_gir_includes = ['GObject-2.0'] if PLUGINS Purple_gir_includes += ['GPlugin-0.0'] endif if ENABLE_DBUS Purple_gir_includes += ['DBus-1.0', 'DBusGLib-1.0'] endif libpurple_gir = gnome.generate_gir(libpurple, sources : introspection_sources, includes : Purple_gir_includes, namespace : 'Purple', symbol_prefix : 'purple_', identifier_prefix : 'Purple', nsversion : '@0@.@1@'.format(purple_major_version, purple_minor_version), install : true) endif subdir('tests') subdir('example') subdir('plugins') subdir('protocols')