diff options
author | Alberto Mardegan <alberto.mardegan@canonical.com> | 2013-01-09 19:42:41 +0800 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.co.uk> | 2013-01-09 23:53:42 +0800 |
commit | cfef33e79d3d01b5a407381267bd5f481ceca340 (patch) | |
tree | 792ef5eff3222bb90d1dbfebcd252de6a7b459ce /ubuntu-online-accounts/cc-plugins/generate-plugins.py | |
parent | 7035c0ab139dcabac395fc2798af04db4d89f884 (diff) | |
download | gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar.gz gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar.bz2 gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar.lz gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar.xz gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.tar.zst gsoc2013-empathy-cfef33e79d3d01b5a407381267bd5f481ceca340.zip |
UOA: share a common configuration plugin
The latest libaccounts-glib and libaccount-plugin libraries add support
for using the same binary plugin for different providers.
This means that bug 683415 is no longer valid, and that all the
provider-specific plugins can now be removed.
Fixes bug #691418
Diffstat (limited to 'ubuntu-online-accounts/cc-plugins/generate-plugins.py')
-rwxr-xr-x | ubuntu-online-accounts/cc-plugins/generate-plugins.py | 224 |
1 files changed, 1 insertions, 223 deletions
diff --git a/ubuntu-online-accounts/cc-plugins/generate-plugins.py b/ubuntu-online-accounts/cc-plugins/generate-plugins.py index a5acab488..2845d3632 100755 --- a/ubuntu-online-accounts/cc-plugins/generate-plugins.py +++ b/ubuntu-online-accounts/cc-plugins/generate-plugins.py @@ -25,228 +25,6 @@ class Plugin: self.protocol = protocol self.icon = icon -##### account-plugins/ ##### - -def magic_replace(text, protocol): - p = protocol.replace('-', '_') - - l = protocol.split('-') - l = map(str.title, l) - camel = ''.join(l) - - text = text.replace('$lower', p) - text = text.replace('$UPPER', p.upper()) - text = text.replace('$Camel', camel) - - return text - -def generate_plugin_header(p): - # header - f = open('account-plugins/empathy-accounts-plugin-%s.h' % p.protocol, 'w') - - tmp = '''/* # Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py - * Do NOT edit manually */ - -/* - * empathy-accounts-plugin-%s.h - * - * Copyright (C) 2012 Collabora Ltd. <http://www.collabora.co.uk/> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - - -#ifndef __EMPATHY_ACCOUNTS_PLUGIN_$UPPER_H__ -#define __EMPATHY_ACCOUNTS_PLUGIN_$UPPER_H__ - -#include "empathy-accounts-plugin.h" - -G_BEGIN_DECLS - -typedef struct _EmpathyAccountsPlugin$Camel EmpathyAccountsPlugin$Camel; -typedef struct _EmpathyAccountsPlugin$CamelClass EmpathyAccountsPlugin$CamelClass; - -struct _EmpathyAccountsPlugin$CamelClass -{ - /*<private>*/ - EmpathyAccountsPluginClass parent_class; -}; - -struct _EmpathyAccountsPlugin$Camel -{ - /*<private>*/ - EmpathyAccountsPlugin parent; -}; - -GType empathy_accounts_plugin_$lower_get_type (void); - -/* TYPE MACROS */ -#define EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER \\ - (empathy_accounts_plugin_$lower_get_type ()) -#define EMPATHY_ACCOUNTS_PLUGIN_$UPPER(obj) \\ - (G_TYPE_CHECK_INSTANCE_CAST((obj), \\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER, \\ - EmpathyAccountsPlugin$Camel)) -#define EMPATHY_ACCOUNTS_PLUGIN_$UPPER_CLASS(klass) \\ - (G_TYPE_CHECK_CLASS_CAST((klass), \\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER, \\ - EmpathyAccountsPlugin$CamelClass)) -#define EMPATHY_IS_ACCOUNTS_PLUGIN_$UPPER(obj) \\ - (G_TYPE_CHECK_INSTANCE_TYPE((obj), \\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER)) -#define EMPATHY_IS_ACCOUNTS_PLUGIN_$UPPER_CLASS(klass) \\ - (G_TYPE_CHECK_CLASS_TYPE((klass), \\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER)) -#define EMPATHY_ACCOUNTS_PLUGIN_$UPPER_GET_CLASS(obj) \\ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER, \\ - EmpathyAccountsPlugin$CamelClass)) - -GType ap_module_get_object_type (void); - -G_END_DECLS - -#endif /* #ifndef __EMPATHY_ACCOUNTS_PLUGIN_$UPPER_H__*/''' % (p.protocol) - - f.write(magic_replace (tmp, p.protocol)) - -def generate_plugin_code(p): - # header - f = open('account-plugins/empathy-accounts-plugin-%s.c' % p.protocol, 'w') - - tmp = '''/* # Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py - * Do NOT edit manually */ - -/* - * empathy-accounts-plugin-%s.c - * - * Copyright (C) 2012 Collabora Ltd. <http://www.collabora.co.uk/> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#include "empathy-accounts-plugin-%s.h" - -G_DEFINE_TYPE (EmpathyAccountsPlugin$Camel, empathy_accounts_plugin_$lower,\\ - EMPATHY_TYPE_ACCOUNTS_PLUGIN) - -static void -empathy_accounts_plugin_$lower_class_init ( - EmpathyAccountsPlugin$CamelClass *klass) -{ -} - -static void -empathy_accounts_plugin_$lower_init (EmpathyAccountsPlugin$Camel *self) -{ -} - -GType -ap_module_get_object_type (void) -{ - return EMPATHY_TYPE_ACCOUNTS_PLUGIN_$UPPER; -}''' % (p.protocol, p.protocol) - - f.write(magic_replace (tmp, p.protocol)) - -def generate_build_block(p): - la = 'lib%s_la' % p.protocol.replace('-', '_') - - output = '''%s_SOURCES = \\ - empathy-accounts-plugin-%s.c \\ - empathy-accounts-plugin-%s.h -%s_LDFLAGS = -module -avoid-version -%s_LIBADD = \\ - libempathy-uoa-account-plugin.la \\ - $(top_builddir)/libempathy/libempathy.la \\ - $(top_builddir)/libempathy-gtk/libempathy-gtk.la -''' % (la, p.protocol, p.protocol, la, la) - - return output - - -def generate_account_plugins(plugins): - '''account-plugins/''' - libs = [] - build_blocks = [] - - for p in plugins: - # empathy-accounts-plugin-$protocol.[ch]''' - generate_plugin_header(p) - generate_plugin_code(p) - - name = ' lib%s.la' % p.protocol - libs.append(name) - - build_blocks.append(generate_build_block(p)) - - # Makefile.am - f = open('account-plugins/Makefile.am', 'w') - - f.write( -'''# Generated using empathy/ubuntu-online-accounts/cc-plugins/generate-plugins.py -# Do NOT edit manually -plugindir = $(ACCOUNTS_PROVIDER_PLUGIN_DIR) - -INCLUDES = \\ - -I$(top_builddir) \\ - -I$(top_srcdir) \\ - -DLOCALEDIR=\\""$(datadir)/locale"\\" \\ - $(UOA_CFLAGS) \\ - $(WARN_CFLAGS) \\ - $(ERROR_CFLAGS) \\ - $(DISABLE_DEPRECATED) \\ - $(EMPATHY_CFLAGS) - -pkglib_LTLIBRARIES = libempathy-uoa-account-plugin.la - -# this API is not stable and will never be, so use -release to make the -# SONAME of the plugin library change with every Empathy release. -libempathy_uoa_account_plugin_la_LDFLAGS = \\ - -no-undefined \\ - -release $(VERSION) - -libempathy_uoa_account_plugin_la_SOURCES = \\ - empathy-accounts-plugin.c \\ - empathy-accounts-plugin.h \\ - empathy-accounts-plugin-widget.c \\ - empathy-accounts-plugin-widget.h - -libempathy_uoa_account_plugin_la_LIBADD = \\ - $(UOA_LIBS) - -plugin_LTLIBRARIES = \\ -%s \\ - $(NULL) - -%s''' % ('\\\n'.join(libs), '\n\n'.join(build_blocks))) - ##### providers/ ##### def generate_provider_file(p): @@ -259,6 +37,7 @@ def generate_provider_file(p): <provider id="%s"> <name>%s</name> <icon>%s</icon> + <plugin>empathy-accounts-plugin</plugin> </provider> ''' % (p.protocol, p.name, p.icon)) @@ -344,7 +123,6 @@ def generate_all(): for name, cm, protocol, icon in ALL: plugins.append(Plugin(name, cm, protocol, icon)) - generate_account_plugins(plugins) generate_providers(plugins) generate_services(plugins) |