aboutsummaryrefslogtreecommitdiffstats
path: root/ubuntu-online-accounts/cc-plugins/generate-plugins.py
diff options
context:
space:
mode:
authorAlberto Mardegan <alberto.mardegan@canonical.com>2013-01-09 19:42:41 +0800
committerXavier Claessens <xavier.claessens@collabora.co.uk>2013-01-09 23:53:42 +0800
commitcfef33e79d3d01b5a407381267bd5f481ceca340 (patch)
tree792ef5eff3222bb90d1dbfebcd252de6a7b459ce /ubuntu-online-accounts/cc-plugins/generate-plugins.py
parent7035c0ab139dcabac395fc2798af04db4d89f884 (diff)
downloadgsoc2013-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-xubuntu-online-accounts/cc-plugins/generate-plugins.py224
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)