From 708c40e9699fbe088c6026aef5a3320944d0b1e6 Mon Sep 17 00:00:00 2001 From: Nick Schermer <nick@xfce.org> Date: Fri, 26 Feb 2010 14:08:22 +0100 Subject: [PATCH] Add the alias code to libxfce4panel. --- configure.in.in | 58 ++++++-- libxfce4panel/Makefile.am | 27 +++- libxfce4panel/abicheck.sh | 23 +++ libxfce4panel/libxfce4panel.symbols | 128 +++++++++++++++++ libxfce4panel/make-libxfce4panel-alias.pl | 154 +++++++++++++++++++++ libxfce4panel/xfce-arrow-button.c | 10 +- libxfce4panel/xfce-hvbox.c | 10 +- libxfce4panel/xfce-panel-convenience.c | 9 +- libxfce4panel/xfce-panel-image.c | 9 +- libxfce4panel/xfce-panel-plugin-provider.c | 9 +- libxfce4panel/xfce-panel-plugin.c | 11 +- libxfce4panel/xfce-panel-plugin.h | 1 + 12 files changed, 427 insertions(+), 22 deletions(-) create mode 100755 libxfce4panel/abicheck.sh create mode 100644 libxfce4panel/libxfce4panel.symbols create mode 100644 libxfce4panel/make-libxfce4panel-alias.pl diff --git a/configure.in.in b/configure.in.in index 06e78e72a..31ee7046d 100644 --- a/configure.in.in +++ b/configure.in.in @@ -19,9 +19,9 @@ m4_define([xfce4_panel_version_tag], [git]) m4_define([xfce4_panel_version], [xfce4_panel_version_major().xfce4_panel_version_minor().xfce4_panel_version_micro()ifelse(xfce4_panel_version_nano(), [], [], [.xfce4_panel_version_nano()])ifelse(xfce4_panel_version_tag(), [git], [xfce4_panel_version_tag()-xfce4_panel_version_build()], [xfce4_panel_version_tag()])]) dnl ******************************************* -dnl *** Debugging support for SVN snapshots *** +dnl *** Debugging support for GIT snapshots *** dnl ******************************************* -m4_define([panel_debug_default], [ifelse(xfce4_panel_version_tag(), [svn], [yes], [minimum])]) +m4_define([panel_debug_default], [ifelse(xfce4_panel_version_tag(), [git], [yes], [minimum])]) dnl *************************** dnl *** Initialize autoconf *** @@ -63,6 +63,7 @@ dnl *** Initialize libtool *** dnl ************************** AC_DISABLE_STATIC() AC_PROG_LIBTOOL() +AC_CHECK_PROGS([PERL], [perl5 perl]) dnl ************************************** dnl *** Substitute version information *** @@ -108,15 +109,6 @@ dnl *** Check for gtk-doc *** dnl ************************* GTK_DOC_CHECK([1.0]) -dnl ********************************************************* -dnl *** Disable deprecated components and single includes *** -dnl ********************************************************* -dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DXFCE_DISABLE_DEPRECATED" -dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DG_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES" -dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DGTK_DISABLE_DEPRECATED -DGTK_DISABLE_SINGLE_INCLUDES" -dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DGDK_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES" -dnl #PLATFORM_CPPFLAGS="$PLATFORM_CPPFLAGS -DPANGO_DISABLE_DEPRECATED -DPANGO_DISABLE_SINGLE_INCLUDES" - dnl *********************************** dnl *** Check for debugging support *** dnl *********************************** @@ -127,6 +119,40 @@ dnl *** Check for linker optimizations *** dnl ************************************** XDT_FEATURE_LINKER_OPTS() +dnl **************************************** +dnl *** Check for ELF visibility support *** +dnl **************************************** +AC_ARG_ENABLE([visibility], AC_HELP_STRING([--disable-visibility], [Do not use ELF visibility attributes]), [], [enable_visibility=yes]) +have_gnuc_visibility=no +if test x"$enable_visibility" != x"no"; then + dnl Check whether the compiler supports the visibility attribute + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wall -Werror" + AC_MSG_CHECKING([whether $CC supports the GNUC visibility attribute]) + AC_COMPILE_IFELSE(AC_LANG_SOURCE( + [ + void test_default (void); + void test_hidden (void); + + void __attribute__ ((visibility("default"))) test_default (void) {} + void __attribute__ ((visibility("hidden"))) test_hidden (void) {} + + int main (int argc, char **argv) { test_default (); test_hidden (); return 0; } + ]), + [ + have_gnuc_visibility=yes + AC_MSG_RESULT([yes]) + ], + [ + AC_MSG_RESULT([no]) + ]) + CFLAGS="$save_CFLAGS" +fi +if test x"$have_gnuc_visibility" = x"yes"; then + CPPFLAGS="$CPPFLAGS -DHAVE_GNUC_VISIBILITY" +fi +AM_CONDITIONAL([HAVE_GNUC_VISIBILITY], [test x"$have_gnuc_visibility" = x"yes"]) + dnl ********************************* dnl *** Substitute platform flags *** dnl ********************************* @@ -159,3 +185,13 @@ plugins/tasklist/Makefile plugins/windowmenu/Makefile po/Makefile.in ]) + +dnl *************************** +dnl *** Print configuration *** +dnl *************************** +echo +echo "Build Configuration:" +echo +echo "* Debug Support: $enable_debug" +echo "* GNU Visibility: $have_gnuc_visibility" +echo diff --git a/libxfce4panel/Makefile.am b/libxfce4panel/Makefile.am index 51efbc587..d19923565 100644 --- a/libxfce4panel/Makefile.am +++ b/libxfce4panel/Makefile.am @@ -11,6 +11,8 @@ lib_LTLIBRARIES = \ libxfce4panel.la libxfce4panel_built_sources = \ + libxfce4panel-alias.h \ + libxfce4panel-aliasdef.c \ libxfce4panel-marshal.c \ libxfce4panel-marshal.h @@ -63,9 +65,6 @@ libxfce4panel_la_LIBADD = \ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libxfce4panel-1.0.pc -EXTRA_DIST = \ - libxfce4panel-marshal.list - # # Build sources # @@ -77,11 +76,33 @@ libxfce4panel-marshal.c: libxfce4panel-marshal.list Makefile $(AM_V_GEN) echo "#include <libxfce4panel/libxfce4panel-marshal.h>" > $@ \ && glib-genmarshal --prefix=_libxfce4panel_marshal --body $< >> $@ +libxfce4panel-alias.h: make-libxfce4panel-alias.pl libxfce4panel.symbols + $(AM_V_GEN) $(PERL) $(srcdir)/make-libxfce4panel-alias.pl $(srcdir)/libxfce4panel.symbols > $@ + +libxfce4panel-aliasdef.c: make-libxfce4panel-alias.pl libxfce4panel.symbols + $(AM_V_GEN) $(PERL) $(srcdir)/make-libxfce4panel-alias.pl -def < $(srcdir)/libxfce4panel.symbols > $@ + DISTCLEANFILES = \ $(libxfce4panel_built_sources) BUILT_SOURCES = \ $(libxfce4panel_built_sources) + +CLEANFILES = \ + actual-abi \ + expected-abi +endif + +EXTRA_DIST = \ + abicheck.sh \ + libxfce4panel.symbols \ + libxfce4panel-alias.h \ + libxfce4panel-aliasdef.c \ + libxfce4panel-marshal.list \ + make-libxfce4panel-alias.pl + +if HAVE_GNUC_VISIBILITY +TESTS = abicheck.sh endif # vi:set ts=8 sw=8 noet ai nocindent syntax=automake: diff --git a/libxfce4panel/abicheck.sh b/libxfce4panel/abicheck.sh new file mode 100755 index 000000000..6370f07dc --- /dev/null +++ b/libxfce4panel/abicheck.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +# Copyright (c) 2004 The GLib Development Team. +# Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>. +# +# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA +# + +cpp -P -DINCLUDE_INTERNAL_SYMBOLS -DINCLUDE_VARIABLES -DALL_FILES ${srcdir:-.}/libxfce4panel.symbols | sed -e '/^$/d' -e 's/ G_GNUC.*$//' -e 's/ PRIVATE//' | sort > expected-abi +nm -D .libs/libxfce4panel.so | grep " T\|R " | cut -d ' ' -f 3 | grep -v '^_.*' | sort > actual-abi +diff -u expected-abi actual-abi && rm expected-abi actual-abi diff --git a/libxfce4panel/libxfce4panel.symbols b/libxfce4panel/libxfce4panel.symbols new file mode 100644 index 000000000..b720c81f2 --- /dev/null +++ b/libxfce4panel/libxfce4panel.symbols @@ -0,0 +1,128 @@ +/*- + * Copyright (c) 2009 Nick Schermer <nick@xfce.org> + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* This file lists all exported symbols. It is used to generate + * the libxfce4panel-alias.h/libxfce4panel-aliasdef.c files used + * to avoid PLT entries for internal uses of exported functions (see + * make-libxfce4panel-alias.pl). + * + * Every symbol must be included in the right + * #ifdef IN_HEADER(sym) #endif and + * #ifdef IN_SOURCE(sym) #endif sections. + */ + +#ifdef ALL_FILES +#define IN_HEADER(x) 1 +#define IN_SOURCE(x) 1 +#endif + +/* xfce-arrow-button.h */ +#if IN_HEADER(__XFCE_ARROW_BUTTON_H__) +#if IN_SOURCE(__XFCE_ARROW_BUTTON_C__) +xfce_arrow_button_get_type G_GNUC_CONST +xfce_arrow_button_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +xfce_arrow_button_get_arrow_type +xfce_arrow_button_set_arrow_type +xfce_arrow_button_get_blinking +xfce_arrow_button_set_blinking +#endif +#endif + +/* xfce-hvbox.h */ +#if IN_HEADER(__XFCE_HVBOX_H__) +#if IN_SOURCE(__XFCE_HVBOX_C__) +xfce_hvbox_get_type G_GNUC_CONST +xfce_hvbox_new G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +xfce_hvbox_set_orientation +xfce_hvbox_get_orientation +#endif +#endif + +/* xfce-panel-convenience.h */ +#if IN_HEADER(__XFCE_PANEL_CONVENIENCE_H__) +#if IN_SOURCE(__XFCE_PANEL_CONVENIENCE_C__) +xfce_panel_create_button G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +xfce_panel_create_toggle_button G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +xfce_panel_allow_customization +#endif +#endif + +/* xfce-panel-image.h */ +#if IN_HEADER(__XFCE_PANEL_IMAGE_H__) +#if IN_SOURCE(__XFCE_PANEL_IMAGE_C__) +xfce_panel_image_get_type G_GNUC_CONST +xfce_panel_image_new G_GNUC_MALLOC +xfce_panel_image_new_from_pixbuf G_GNUC_MALLOC +xfce_panel_image_new_from_source G_GNUC_MALLOC +xfce_panel_image_set_from_pixbuf +xfce_panel_image_set_from_source +xfce_panel_image_clear +#endif +#endif + +/* xfce-panel-plugin.h */ +#if IN_HEADER(__XFCE_PANEL_PLUGIN_H__) +#if IN_SOURCE(__XFCE_PANEL_PLUGIN_C__) +xfce_panel_plugin_get_type G_GNUC_CONST +xfce_panel_plugin_get_name G_GNUC_PURE +xfce_panel_plugin_get_display_name G_GNUC_PURE +xfce_panel_plugin_get_comment G_GNUC_PURE +xfce_panel_plugin_get_unique_id G_GNUC_PURE +xfce_panel_plugin_get_property_base G_GNUC_PURE +xfce_panel_plugin_get_arguments G_GNUC_PURE +xfce_panel_plugin_get_size G_GNUC_PURE +xfce_panel_plugin_get_expand G_GNUC_PURE +xfce_panel_plugin_set_expand +xfce_panel_plugin_get_orientation G_GNUC_PURE +xfce_panel_plugin_get_screen_position G_GNUC_PURE +xfce_panel_plugin_take_window +xfce_panel_plugin_add_action_widget +xfce_panel_plugin_menu_insert_item +xfce_panel_plugin_menu_show_configure +xfce_panel_plugin_menu_show_about +xfce_panel_plugin_block_menu +xfce_panel_plugin_unblock_menu +xfce_panel_plugin_register_menu +xfce_panel_plugin_arrow_type +xfce_panel_plugin_position_widget +xfce_panel_plugin_position_menu +xfce_panel_plugin_focus_widget +xfce_panel_plugin_block_autohide +xfce_panel_plugin_lookup_rc_file G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +xfce_panel_plugin_save_location G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT +#endif +#endif + +/* xfce-panel-plugin-provider.h */ +#if IN_HEADER(__XFCE_PANEL_PLUGIN_PROVIDER_H__) +#if IN_SOURCE(__XFCE_PANEL_PLUGIN_PROVIDER_C__) +xfce_panel_plugin_provider_get_type G_GNUC_CONST +xfce_panel_plugin_provider_get_name +xfce_panel_plugin_provider_get_unique_id +xfce_panel_plugin_provider_set_size +xfce_panel_plugin_provider_set_orientation +xfce_panel_plugin_provider_set_screen_position +xfce_panel_plugin_provider_save +xfce_panel_plugin_provider_emit_signal +xfce_panel_plugin_provider_get_show_configure +xfce_panel_plugin_provider_show_configure +xfce_panel_plugin_provider_get_show_about +xfce_panel_plugin_provider_show_about +xfce_panel_plugin_provider_remove +#endif +#endif diff --git a/libxfce4panel/make-libxfce4panel-alias.pl b/libxfce4panel/make-libxfce4panel-alias.pl new file mode 100644 index 000000000..9d6af3972 --- /dev/null +++ b/libxfce4panel/make-libxfce4panel-alias.pl @@ -0,0 +1,154 @@ +#!/usr/bin/env perl -w +# +# Copyright (c) 2004 The GLib Development Team. +# Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>. +# +# 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 Street, Fifth Floor, Boston, MA 02110-1301 USA +# + +my $option_def = 0; + +if (($#ARGV >= 0) && ($ARGV[0] eq "-def")) + { + shift; + $option_def = 1; + } + +print <<EOF; +/* Generated by make-libxfce4panel-alias.pl. Do not edit this file. */ + +#ifdef HAVE_GNUC_VISIBILITY + +#include <glib.h> + +EOF + +if ($option_def) + { + print <<EOF +#undef IN_HEADER +#define IN_HEADER(x) 1 + +#undef IN_SOURCE +#define IN_SOURCE defined + +EOF + } +else + { + print <<EOF +#define IN_HEADER defined +#define IN_SOURCE(x) 1 + +EOF + } + +my $in_comment = 0; +my $in_skipped_section = 0; + +while (<>) + { + # ignore empty lines + next if /^\s*$/; + + # skip comments + if ($_ =~ /^\s*\/\*/) + { + $in_comment = 1; + } + + if ($in_comment) + { + if ($_ =~ /\*\/\s$/) + { + $in_comment = 0; + } + next; + } + + # handle ifdefs + if ($_ =~ /^\#endif/) + { + if (!$in_skipped_section) + { + print $_; + } + + $in_skipped_section = 0; + next; + } + + if ($_ =~ /^\#ifdef\s+(INCLUDE_VARIABLES|INCLUDE_INTERNAL_SYMBOLS|ALL_FILES)/) + { + $in_skipped_section = 1; + } + + if ($in_skipped_section) + { + next; + } + + if ($_ =~ /^\#ifn?def\s+G/) + { + print $_; + next; + } + + if ($_ =~ /^\#if.*(IN_SOURCE|IN_HEADER)/) + { + print $_; + next; + } + + chop; + my $line = $_; + my @words; + my $attributes = ""; + + @words = split (/ /, $line); + my $symbol = shift (@words); + chomp ($symbol); + my $alias = "IA__".$symbol; + + # Drop any Win32 specific .def file syntax, but keep attributes + foreach $word (@words) + { + $attributes = "$attributes $word" unless $word eq "PRIVATE"; + } + + if (!$option_def) + { + print <<EOF +extern __typeof ($symbol) $alias __attribute((visibility("hidden")))$attributes; +\#define $symbol $alias + +EOF + } + else + { + print <<EOF +\#undef $symbol +extern __typeof ($symbol) $symbol __attribute((alias("$alias"), visibility("default"))); + +EOF + } + } + +print <<EOF; + +#endif /* HAVE_GNUC_VISIBILITY */ +EOF + + diff --git a/libxfce4panel/xfce-arrow-button.c b/libxfce4panel/xfce-arrow-button.c index 59c1e315a..67c75abca 100644 --- a/libxfce4panel/xfce-arrow-button.c +++ b/libxfce4panel/xfce-arrow-button.c @@ -30,8 +30,11 @@ #endif #include <gtk/gtk.h> -#include <libxfce4panel/libxfce4panel.h> + #include <common/panel-private.h> +#include <libxfce4panel/xfce-panel-macros.h> +#include <libxfce4panel/xfce-arrow-button.h> +#include <libxfce4panel/libxfce4panel-alias.h> #define XFCE_ARROW_BUTTON_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ XFCE_TYPE_ARROW_BUTTON, \ @@ -523,3 +526,8 @@ xfce_arrow_button_set_blinking (XfceArrowButton *button, /* start with a blinking or make sure the button is normal */ xfce_arrow_button_blinking_timeout (button); } + + + +#define __XFCE_ARROW_BUTTON_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-hvbox.c b/libxfce4panel/xfce-hvbox.c index 9d88cdc53..5d0b2e1ed 100644 --- a/libxfce4panel/xfce-hvbox.c +++ b/libxfce4panel/xfce-hvbox.c @@ -27,7 +27,10 @@ #endif #include <gtk/gtk.h> -#include <libxfce4panel/libxfce4panel.h> + +#include <libxfce4panel/xfce-panel-macros.h> +#include <libxfce4panel/xfce-hvbox.h> +#include <libxfce4panel/libxfce4panel-alias.h> @@ -271,3 +274,8 @@ xfce_hvbox_get_orientation (XfceHVBox *hvbox) return hvbox->orientation; #endif } + + + +#define __XFCE_HVBOX_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-panel-convenience.c b/libxfce4panel/xfce-panel-convenience.c index 1a6907786..01970c551 100644 --- a/libxfce4panel/xfce-panel-convenience.c +++ b/libxfce4panel/xfce-panel-convenience.c @@ -25,7 +25,9 @@ #include <libxfce4util/libxfce4util.h> #include <gtk/gtk.h> -#include <libxfce4panel/libxfce4panel.h> +#include <libxfce4panel/xfce-panel-macros.h> +#include <libxfce4panel/xfce-panel-convenience.h> +#include <libxfce4panel/libxfce4panel-alias.h> /** * xfce_panel_create_button: @@ -101,3 +103,8 @@ xfce_panel_allow_customization (void) return allow_customization; } + + + +#define __XFCE_PANEL_CONVENIENCE_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-panel-image.c b/libxfce4panel/xfce-panel-image.c index 4df3707b9..5d2433363 100644 --- a/libxfce4panel/xfce-panel-image.c +++ b/libxfce4panel/xfce-panel-image.c @@ -28,7 +28,9 @@ #include <gtk/gtk.h> #include <common/panel-private.h> -#include <libxfce4panel/libxfce4panel.h> +#include <libxfce4panel/xfce-panel-macros.h> +#include <libxfce4panel/xfce-panel-image.h> +#include <libxfce4panel/libxfce4panel-alias.h> /* design limit for the panel, to reduce the uncached pixbuf size */ @@ -556,3 +558,8 @@ xfce_panel_image_clear (XfcePanelImage *image) priv->width = -1; priv->height = -1; } + + + +#define __XFCE_PANEL_IMAGE_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-panel-plugin-provider.c b/libxfce4panel/xfce-panel-plugin-provider.c index 825c2a699..c7f47b16c 100644 --- a/libxfce4panel/xfce-panel-plugin-provider.c +++ b/libxfce4panel/xfce-panel-plugin-provider.c @@ -23,9 +23,9 @@ #include <gtk/gtk.h> -#include <libxfce4panel/libxfce4panel.h> +#include <libxfce4panel/xfce-panel-macros.h> #include <libxfce4panel/xfce-panel-plugin-provider.h> - +#include <libxfce4panel/libxfce4panel-alias.h> enum @@ -201,3 +201,8 @@ xfce_panel_plugin_provider_remove (XfcePanelPluginProvider *provider) (*XFCE_PANEL_PLUGIN_PROVIDER_GET_IFACE (provider)->remove) (provider); } + + + +#define __XFCE_PANEL_PLUGIN_PROVIDER_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-panel-plugin.c b/libxfce4panel/xfce-panel-plugin.c index d521d9f16..934affd06 100644 --- a/libxfce4panel/xfce-panel-plugin.c +++ b/libxfce4panel/xfce-panel-plugin.c @@ -26,9 +26,11 @@ #include <libxfce4util/libxfce4util.h> #include <common/panel-private.h> -#include <libxfce4panel/libxfce4panel.h> -#include <libxfce4panel/libxfce4panel-marshal.h> +#include <libxfce4panel/xfce-panel-macros.h> +#include <libxfce4panel/xfce-panel-plugin.h> #include <libxfce4panel/xfce-panel-plugin-provider.h> +#include <libxfce4panel/libxfce4panel-marshal.h> +#include <libxfce4panel/libxfce4panel-alias.h> #define XFCE_PANEL_PLUGIN_CONSTRUCTED(plugin) \ PANEL_HAS_FLAG (XFCE_PANEL_PLUGIN (plugin)->priv->flags, \ @@ -1928,3 +1930,8 @@ xfce_panel_plugin_save_location (XfcePanelPlugin *plugin, return path; } + + + +#define __XFCE_PANEL_PLUGIN_C__ +#include <libxfce4panel/libxfce4panel-aliasdef.c> diff --git a/libxfce4panel/xfce-panel-plugin.h b/libxfce4panel/xfce-panel-plugin.h index db6f26bab..f797aa5de 100644 --- a/libxfce4panel/xfce-panel-plugin.h +++ b/libxfce4panel/xfce-panel-plugin.h @@ -25,6 +25,7 @@ #define __XFCE_PANEL_PLUGIN_H__ #include <gtk/gtk.h> +#include <libxfce4panel/xfce-panel-enums.h> G_BEGIN_DECLS -- GitLab