mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 23:50:41 -05:00
plugin: Drop version information
Mutter itself is versioned now, so passing the version information to the plugin is redunant now: The version is already determined by linking to a particular API version (gnome-shell) or by installing to a versioned plugin path (external plugins). https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1473
This commit is contained in:
parent
113446f2e9
commit
f481cbfa16
@ -4,8 +4,6 @@ project('mutter', 'c',
|
|||||||
license: 'GPLv2+'
|
license: 'GPLv2+'
|
||||||
)
|
)
|
||||||
|
|
||||||
mutter_plugin_api_version = '3'
|
|
||||||
|
|
||||||
split_version = meson.project_version().split('.')
|
split_version = meson.project_version().split('.')
|
||||||
|
|
||||||
# Automatically increase API version each development cycle,
|
# Automatically increase API version each development cycle,
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#include <gmodule.h>
|
#include <gmodule.h>
|
||||||
|
|
||||||
#include "meta/meta-plugin.h"
|
#include "meta/meta-plugin.h"
|
||||||
#include "meta/meta-version.h"
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -47,7 +46,6 @@ static gboolean
|
|||||||
meta_module_load (GTypeModule *gmodule)
|
meta_module_load (GTypeModule *gmodule)
|
||||||
{
|
{
|
||||||
MetaModulePrivate *priv = META_MODULE (gmodule)->priv;
|
MetaModulePrivate *priv = META_MODULE (gmodule)->priv;
|
||||||
MetaPluginVersion *info = NULL;
|
|
||||||
GType (*register_type) (GTypeModule *) = NULL;
|
GType (*register_type) (GTypeModule *) = NULL;
|
||||||
|
|
||||||
if (priv->lib && priv->plugin_type)
|
if (priv->lib && priv->plugin_type)
|
||||||
@ -63,31 +61,24 @@ meta_module_load (GTypeModule *gmodule)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_module_symbol (priv->lib, "meta_plugin_version",
|
if (g_module_symbol (priv->lib, "meta_plugin_register_type",
|
||||||
(gpointer *)(void *)&info) &&
|
|
||||||
g_module_symbol (priv->lib, "meta_plugin_register_type",
|
|
||||||
(gpointer *)(void *)®ister_type) &&
|
(gpointer *)(void *)®ister_type) &&
|
||||||
info && register_type)
|
register_type)
|
||||||
{
|
{
|
||||||
if (info->version_api != META_PLUGIN_API_VERSION)
|
GType plugin_type;
|
||||||
g_warning ("Plugin API mismatch for [%s]", priv->path);
|
|
||||||
|
if (!(plugin_type = register_type (gmodule)))
|
||||||
|
{
|
||||||
|
g_warning ("Could not register type for plugin %s",
|
||||||
|
priv->path);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GType plugin_type;
|
priv->plugin_type = plugin_type;
|
||||||
|
|
||||||
if (!(plugin_type = register_type (gmodule)))
|
|
||||||
{
|
|
||||||
g_warning ("Could not register type for plugin %s",
|
|
||||||
priv->path);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
priv->plugin_type = plugin_type;
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
g_warning ("Broken plugin module [%s]", priv->path);
|
g_warning ("Broken plugin module [%s]", priv->path);
|
||||||
|
@ -932,7 +932,6 @@ mutter_built_sources += wayland_protocol_sources
|
|||||||
subdir('meta')
|
subdir('meta')
|
||||||
|
|
||||||
mutter_built_sources += mutter_enum_types
|
mutter_built_sources += mutter_enum_types
|
||||||
mutter_built_sources += mutter_version
|
|
||||||
|
|
||||||
libmutter = shared_library(libmutter_name,
|
libmutter = shared_library(libmutter_name,
|
||||||
mutter_sources,
|
mutter_sources,
|
||||||
@ -999,7 +998,6 @@ if have_introspection
|
|||||||
|
|
||||||
libmutter_gir = gnome.generate_gir(libmutter,
|
libmutter_gir = gnome.generate_gir(libmutter,
|
||||||
sources: [
|
sources: [
|
||||||
mutter_version,
|
|
||||||
mutter_enum_types[1],
|
mutter_enum_types[1],
|
||||||
mutter_introspected_sources,
|
mutter_introspected_sources,
|
||||||
mutter_public_header_files
|
mutter_public_header_files
|
||||||
|
@ -71,26 +71,3 @@ mutter_enum_types = gnome.mkenums('meta-enum-types',
|
|||||||
install_dir: mutter_includedir,
|
install_dir: mutter_includedir,
|
||||||
install_header: true,
|
install_header: true,
|
||||||
)
|
)
|
||||||
|
|
||||||
mutter_version_array = meson.project_version().split('.')
|
|
||||||
mutter_version_major = mutter_version_array[0]
|
|
||||||
mutter_version_minor = mutter_version_array[1]
|
|
||||||
mutter_version_micro = mutter_version_array[2]
|
|
||||||
|
|
||||||
mutter_version_cdata = configuration_data()
|
|
||||||
mutter_version_cdata.set('MUTTER_MAJOR_VERSION',
|
|
||||||
'@0@'.format(mutter_version_major))
|
|
||||||
mutter_version_cdata.set('MUTTER_MINOR_VERSION',
|
|
||||||
'@0@'.format(mutter_version_minor))
|
|
||||||
mutter_version_cdata.set('MUTTER_MICRO_VERSION',
|
|
||||||
'@0@'.format(mutter_version_micro))
|
|
||||||
mutter_version_cdata.set('MUTTER_PLUGIN_API_VERSION',
|
|
||||||
'@0@'.format(mutter_plugin_api_version))
|
|
||||||
|
|
||||||
mutter_version = configure_file(
|
|
||||||
input: 'meta-version.h.in',
|
|
||||||
output: 'meta-version.h',
|
|
||||||
configuration: mutter_version_cdata,
|
|
||||||
install_dir: mutter_includedir,
|
|
||||||
install: true,
|
|
||||||
)
|
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
#include "meta/compositor.h"
|
#include "meta/compositor.h"
|
||||||
#include "meta/meta-close-dialog.h"
|
#include "meta/meta-close-dialog.h"
|
||||||
#include "meta/meta-inhibit-shortcuts-dialog.h"
|
#include "meta/meta-inhibit-shortcuts-dialog.h"
|
||||||
#include "meta/meta-version.h"
|
|
||||||
#include "meta/types.h"
|
#include "meta/types.h"
|
||||||
|
|
||||||
#define META_TYPE_PLUGIN (meta_plugin_get_type ())
|
#define META_TYPE_PLUGIN (meta_plugin_get_type ())
|
||||||
@ -38,7 +37,6 @@
|
|||||||
META_EXPORT
|
META_EXPORT
|
||||||
G_DECLARE_DERIVABLE_TYPE (MetaPlugin, meta_plugin, META, PLUGIN, GObject)
|
G_DECLARE_DERIVABLE_TYPE (MetaPlugin, meta_plugin, META, PLUGIN, GObject)
|
||||||
|
|
||||||
typedef struct _MetaPluginVersion MetaPluginVersion;
|
|
||||||
typedef struct _MetaPluginInfo MetaPluginInfo;
|
typedef struct _MetaPluginInfo MetaPluginInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -271,44 +269,10 @@ struct _MetaPluginInfo
|
|||||||
META_EXPORT
|
META_EXPORT
|
||||||
const MetaPluginInfo * meta_plugin_get_info (MetaPlugin *plugin);
|
const MetaPluginInfo * meta_plugin_get_info (MetaPlugin *plugin);
|
||||||
|
|
||||||
/**
|
|
||||||
* MetaPluginVersion:
|
|
||||||
* @version_major: major component of the version number of Meta with which the plugin was compiled
|
|
||||||
* @version_minor: minor component of the version number of Meta with which the plugin was compiled
|
|
||||||
* @version_micro: micro component of the version number of Meta with which the plugin was compiled
|
|
||||||
* @version_api: version of the plugin API
|
|
||||||
*/
|
|
||||||
struct _MetaPluginVersion
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Version information; the first three numbers match the Meta version
|
|
||||||
* with which the plugin was compiled (see clutter-plugins/simple.c for sample
|
|
||||||
* code).
|
|
||||||
*/
|
|
||||||
guint version_major;
|
|
||||||
guint version_minor;
|
|
||||||
guint version_micro;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Version of the plugin API; this is unrelated to the matacity version
|
|
||||||
* per se. The API version is checked by the plugin manager and must match
|
|
||||||
* the one used by it (see clutter-plugins/default.c for sample code).
|
|
||||||
*/
|
|
||||||
guint version_api;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Convenience macro to set up the plugin type. Based on GEdit.
|
* Convenience macro to set up the plugin type. Based on GEdit.
|
||||||
*/
|
*/
|
||||||
#define META_PLUGIN_DECLARE_WITH_CODE(ObjectName, object_name, CODE) \
|
#define META_PLUGIN_DECLARE_WITH_CODE(ObjectName, object_name, CODE) \
|
||||||
G_MODULE_EXPORT MetaPluginVersion meta_plugin_version = \
|
|
||||||
{ \
|
|
||||||
META_MAJOR_VERSION, \
|
|
||||||
META_MINOR_VERSION, \
|
|
||||||
META_MICRO_VERSION, \
|
|
||||||
META_PLUGIN_API_VERSION \
|
|
||||||
}; \
|
|
||||||
\
|
|
||||||
/* Prototypes */ \
|
/* Prototypes */ \
|
||||||
G_MODULE_EXPORT GType \
|
G_MODULE_EXPORT GType \
|
||||||
object_name##_get_type (void); \
|
object_name##_get_type (void); \
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2014 Rico Tzschichholz
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; either version 2 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program 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
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef META_VERSION_H
|
|
||||||
#define META_VERSION_H
|
|
||||||
|
|
||||||
#define META_MAJOR_VERSION @MUTTER_MAJOR_VERSION@
|
|
||||||
#define META_MINOR_VERSION @MUTTER_MINOR_VERSION@
|
|
||||||
#define META_MICRO_VERSION @MUTTER_MICRO_VERSION@
|
|
||||||
#define META_PLUGIN_API_VERSION @MUTTER_PLUGIN_API_VERSION@
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in New Issue
Block a user