pidgin/pidgin

Really disable some plugins
default tip
29 hours ago, Gary Kramlich
44125b8e3b27
Really disable some plugins

Previous we disabled some plugins that we want to keep around but can't port
yet by setting `build_by_default` to `false`. However, this isn't working on
many machines. I haven't figured out why, so instead lets just make their
meson.build files exit early.

Testing Done:
Ran the turtles on a machine that was still building these plugins.

Reviewed at https://reviews.imfreedom.org/r/3142/
purple_coresources = [
'accounts.c',
'action.c',
'circularbuffer.c',
'cmds.c',
'connection.c',
'core.c',
'debug.c',
'image.c',
'media/backend-iface.c',
'media/candidate.c',
'media/codec.c',
'media/enum-types.c',
'media.c',
'mediamanager.c',
'network.c',
'notify.c',
'plugins.c',
'prefs.c',
'proxy.c',
'purpleaccount.c',
'purpleaccountmanager.c',
'purpleaccountoption.c',
'purpleaccountusersplit.c',
'purpleaddcontactrequest.c',
'purpleattachment.c',
'purpleauthorizationrequest.c',
'purpleauthorizationrequestnotification.c',
'purpleavatar.c',
'purplechanneljoindetails.c',
'purpleconnectionerrorinfo.c',
'purplecontact.c',
'purplecontactinfo.c',
'purplecontactmanager.c',
'purpleconversation.c',
'purpleconversationmanager.c',
'purpleconversationmember.c',
'purplecreateconversationdetails.c',
'purplecredentialmanager.c',
'purplecredentialprovider.c',
'purpledebugui.c',
'purplefiletransfer.c',
'purplefiletransfermanager.c',
'purplegdkpixbuf.c',
'purplegio.c',
'purplehistoryadapter.c',
'purplehistorymanager.c',
'purpleidlemanager.c',
'purplekeyvaluepair.c',
'purplemarkup.c',
'purplemenu.c',
'purplemessage.c',
'purplenoopcredentialprovider.c',
'purplenotification.c',
'purplenotificationmanager.c',
'purpleoptions.c',
'purplepath.c',
'purpleperson.c',
'purpleplugininfo.c',
'purplepresence.c',
'purplepresencemanager.c',
'purpleprotocol.c',
'purpleprotocolactions.c',
'purpleprotocolclient.c',
'purpleprotocolcontacts.c',
'purpleprotocolconversation.c',
'purpleprotocolfiletransfer.c',
'purpleprotocolmanager.c',
'purpleprotocolmedia.c',
'purpleprotocolroster.c',
'purpleprotocolserver.c',
'purpleprotocolwhiteboard.c',
'purpleproxyinfo.c',
'purplesavedpresence.c',
'purplesqlite3.c',
'purplesqlitehistoryadapter.c',
'purpletags.c',
'purpleui.c',
'purpleversion.c',
'purplewhiteboard.c',
'purplewhiteboardmanager.c',
'purplewhiteboarduiops.c',
'request.c',
'request/purplerequestfield.c',
'request/purplerequestfieldaccount.c',
'request/purplerequestfieldbool.c',
'request/purplerequestfieldchoice.c',
'request/purplerequestfieldimage.c',
'request/purplerequestfieldint.c',
'request/purplerequestfieldlabel.c',
'request/purplerequestfieldlist.c',
'request/purplerequestfieldstring.c',
'request/purplerequestgroup.c',
'request/purplerequestpage.c',
'signals.c',
'util.c',
'xmlnode.c'
]
purple_coreheaders = [
'accounts.h',
'action.h',
'circularbuffer.h',
'cmds.h',
'connection.h',
'core.h',
'debug.h',
'image.h',
'media.h',
'media-gst.h',
'mediamanager.h',
'network.h',
'notify.h',
'plugins.h',
'prefs.h',
'proxy.h',
'purpleaccount.h',
'purpleaccountmanager.h',
'purpleaccountoption.h',
'purpleaccountusersplit.h',
'purpleaddcontactrequest.h',
'purpleauthorizationrequest.h',
'purpleauthorizationrequestnotification.h',
'purpleavatar.h',
'purplechanneljoindetails.h',
'purpleconnectionerrorinfo.h',
'purplecontact.h',
'purplecontactinfo.h',
'purplecontactmanager.h',
'purpleconversation.h',
'purpleconversationmanager.h',
'purpleconversationmember.h',
'purplecreateconversationdetails.h',
'purplecredentialmanager.h',
'purplecredentialprovider.h',
'purpledebugui.h',
'purplefiletransfer.h',
'purplefiletransfermanager.h',
'purplegdkpixbuf.h',
'purplegio.h',
'purplehistoryadapter.h',
'purplehistorymanager.h',
'purpleidlemanager.h',
'purpleattachment.h',
'purplekeyvaluepair.h',
'purplemarkup.h',
'purplemenu.h',
'purplemessage.h',
'purplenoopcredentialprovider.h',
'purplenotification.h',
'purplenotificationmanager.h',
'purpleoptions.h',
'purplepath.h',
'purpleperson.h',
'purpleplugininfo.h',
'purplepresence.h',
'purplepresencemanager.h',
'purpleprotocol.h',
'purpleprotocolactions.h',
'purpleprotocolclient.h',
'purpleprotocolcontacts.h',
'purpleprotocolconversation.h',
'purpleprotocolfiletransfer.h',
'purpleprotocolmedia.h',
'purpleprotocolmanager.h',
'purpleprotocolroster.h',
'purpleprotocolserver.h',
'purpleprotocolwhiteboard.h',
'purpleproxyinfo.h',
'purplesavedpresence.h',
'purplesqlite3.h',
'purplesqlitehistoryadapter.h',
'purpletags.h',
'purpletyping.h',
'purpleui.h',
'purpleversion.h',
'purplewhiteboard.h',
'purplewhiteboardmanager.h',
'purplewhiteboardops.h',
'purplewhiteboarduiops.h',
'request.h',
'signals.h',
'util.h',
'xmlnode.h',
]
purple_private_headers = [
'purplefiletransfermanagerprivate.h',
'purpleidlemanagerprivate.h',
'purplepresencemanagerprivate.h',
'purpleprivate.h',
]
purple_request_headers = [
'request/purplerequestfield.h',
'request/purplerequestfieldaccount.h',
'request/purplerequestfieldbool.h',
'request/purplerequestfieldchoice.h',
'request/purplerequestfieldimage.h',
'request/purplerequestfieldint.h',
'request/purplerequestfieldlabel.h',
'request/purplerequestfieldlist.h',
'request/purplerequestfieldstring.h',
'request/purplerequestgroup.h',
'request/purplerequestpage.h',
]
purple_builtsources = []
purple_builtheaders = []
purple_generated_sources = []
# An environment for unit tests.
testenv = environment()
purple_resource = gnome.compile_resources('purpleresources',
'resources/libpurple.gresource.xml',
source_dir : 'resources',
c_name : 'purple')
purple_builtsources += purple_resource
purple_filebase = f'purple-@purple_major_version@'
purple_include_base = purple_filebase / 'libpurple'
if IS_WIN32
purple_coresources += [
'win32/libc_interface.c',
'win32/win32dep.c'
]
purple_coreheaders += [
'win32/win32dep.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_enumheaders = [
'connection.h',
'debug.h',
'notify.h',
'plugins.h',
'purpleaccount.h',
'purpleconnectionerrorinfo.h',
'purplecontactinfo.h',
'purpleconversation.h',
'purplefiletransfer.h',
'purplemessage.h',
'purplenotification.h',
'purpleplugininfo.h',
'purplepresence.h',
'purpleprotocol.h',
'purpleproxyinfo.h',
'purpletyping.h',
'xmlnode.h'
]
enums = gnome.mkenums_simple('purpleenums',
sources : purple_enumheaders,
decorator : '_PURPLE_EXTERN',
header_prefix : '#include "purpleversion.h"',
install_header : true,
install_dir : get_option('includedir') / purple_include_base)
enums_c = enums[0]
enums_h = enums[1]
PURPLE_H_INCLUDES = []
foreach header : purple_coreheaders + purple_mediaheaders + purple_request_headers + ['purpleversionconsts.h', 'purpleenums.h']
PURPLE_H_INCLUDES += f'#include <libpurple/@header@>'
endforeach
purple_h_conf = configuration_data()
purple_h_conf.set('PURPLE_H_INCLUDES', '\n'.join(PURPLE_H_INCLUDES))
purple_h = configure_file(input : 'purple.h.in',
output : 'purple.h',
configuration : purple_h_conf,
install : true,
install_dir : get_option('includedir') / purple_filebase)
version_h = configure_file(input : 'purpleversionconsts.h.in',
output : 'purpleversionconsts.h',
configuration : version_conf,
install : true,
install_dir : get_option('includedir') / purple_include_base)
purple_builtsources += enums_c
purple_builtheaders += [
purple_h,
version_h,
enums_h,
]
subdir('data')
libpurple_inc = include_directories('.')
libpurple = library('purple3',
purple_coresources + purple_builtsources +
purple_builtheaders + purple_schemas +
purple_private_headers + ['glibcompat.h'],
c_args : ['-DPURPLE_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple"'],
gnu_symbol_visibility : 'hidden',
include_directories : [toplevel_inc, libpurple_inc],
install : true,
version : PURPLE_LIB_VERSION,
dependencies : # static_link_libs
[dnsapi, ws2_32, glib, gio, gplugin_dep, libsoup,
libxml, gdk_pixbuf, gstreamer, gstreamer_app, json,
sqlite3, math, birb_dep])
install_headers(purple_coreheaders,
subdir : purple_include_base)
install_headers(purple_mediaheaders,
subdir : purple_include_base / 'media')
install_headers(purple_request_headers,
subdir : purple_include_base / 'request')
pkgconfig.generate(
libpurple,
name : 'libpurple3',
description : 'libpurple3 is a GLib-based instant messenger library.',
version : meson.project_version(),
filebase : purple_filebase,
# TODO: Only use purple_filebase once everything is ported to only use purple.h
subdirs : [purple_filebase, purple_include_base],
libraries : [glib, gdk_pixbuf, gplugin_dep],
variables : [
f'plugindir=${libdir}/@purple_filebase@',
])
if enable_introspection
introspection_sources = (purple_coresources + purple_coreheaders +
purple_builtheaders + purple_mediaheaders + purple_request_headers)
libpurple_gir = gnome.generate_gir(libpurple,
sources : introspection_sources,
includes : ['Birb-1.0', 'GdkPixbuf-2.0', 'GLib-2.0', 'Gio-2.0', 'GObject-2.0', 'Gst-1.0', 'GPlugin-1.0'],
header : 'purple.h',
namespace : 'Purple',
symbol_prefix : 'purple',
identifier_prefix : 'Purple',
export_packages : purple_filebase,
nsversion : f'@purple_major_version@.@purple_minor_version@',
dependencies: [birb_dep, gplugin_dep],
install : true,
extra_args : ['-DPURPLE_COMPILATION', '--quiet'])
purple_generated_sources += libpurple_gir
endif
libpurple_dep = declare_dependency(
# Ensure purple headers built before any dependencies:
sources : [purple_builtheaders] + purple_generated_sources,
include_directories : [toplevel_inc, libpurple_inc],
link_with : libpurple,
dependencies : [birb_dep, gdk_pixbuf, gstreamer, gplugin_dep, glib, gio])
meson.override_dependency(purple_filebase, libpurple_dep)
subdir('tests')
subdir('plugins')
test(
'purple_license_headers',
check_license_header,
verbose : true,
args : [
meson.current_source_dir(),
'check_license_header_template.h',
] + ['glibcompat.h'] + purple_coresources + purple_coreheaders +
purple_mediaheaders + purple_private_headers + purple_request_headers)