SF.net SVN: geany: [1758] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sat Jul 28 17:44:03 UTC 2007
Revision: 1758
http://geany.svn.sourceforge.net/geany/?rev=1758&view=rev
Author: eht16
Date: 2007-07-28 10:44:02 -0700 (Sat, 28 Jul 2007)
Log Message:
-----------
Make plugins working and compiling on Windows.
Modified Paths:
--------------
trunk/ChangeLog
trunk/makefile.win32
trunk/src/dialogs.c
trunk/src/plugins.c
trunk/win32-config.h
Added Paths:
-----------
trunk/plugins/makefile.win32
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-07-28 15:18:01 UTC (rev 1757)
+++ trunk/ChangeLog 2007-07-28 17:44:02 UTC (rev 1758)
@@ -11,6 +11,8 @@
Use PACKAGE_LIB_DIR.
Load plugins in ~/.geany/plugins/ prior to the default location.
* src/symbols.c: Hide empty symbol types in the symbol list.
+ * makefile.win32, win32-config.h, plugins/makefile.win32,
+ src/plugins.c: Make plugins working and compiling on Windows.
2007-07-27 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/makefile.win32
===================================================================
--- trunk/makefile.win32 2007-07-28 15:18:01 UTC (rev 1757)
+++ trunk/makefile.win32 2007-07-28 17:44:02 UTC (rev 1758)
@@ -23,6 +23,7 @@
all: check-tools config.h
cd tagmanager && make -f makefile.win32 && cd ..
cd scintilla && make -f makefile.win32 && cd ..
+ cd plugins && make -f makefile.win32 && cd ..
cd src && make -f makefile.win32 && cd ..
# first check the required tools are installed
@@ -35,7 +36,7 @@
$(CP) $< $@
deps:
- -$(RM) tagmanager\deps.mak scintilla\deps.mak src\deps.mak
+ -$(RM) tagmanager\deps.mak scintilla\deps.mak plugins\deps.mak src\deps.mak
# used by src/makefile.win32 to avoid del ../file which is an error
clean-local:
@@ -44,4 +45,5 @@
clean: deps
cd tagmanager && make -f makefile.win32 clean && cd ..
cd scintilla && make -f makefile.win32 clean && cd ..
+ cd plugins && make -f makefile.win32 clean && cd ..
cd src && make -f makefile.win32 clean && cd ..
Added: trunk/plugins/makefile.win32
===================================================================
--- trunk/plugins/makefile.win32 (rev 0)
+++ trunk/plugins/makefile.win32 2007-07-28 17:44:02 UTC (rev 1758)
@@ -0,0 +1,58 @@
+# Adapted from Pidgin's plugins/Makefile.am, thanks
+
+CC = gcc
+CXX = g++
+PREFIX = C:\libs
+RM = del
+-include ../localwin32.mk
+.SUFFIXES:
+.SUFFIXES: .c .dll
+
+GTK_INCLUDES= \
+ -I$(PREFIX)/include/gtk-2.0 \
+ -I$(PREFIX)/lib/gtk-2.0/include \
+ -I$(PREFIX)/include/atk-1.0 \
+ -I$(PREFIX)/include/pango-1.0 \
+ -I$(PREFIX)/include/cairo \
+ -I$(PREFIX)/include/glib-2.0 \
+ -I$(PREFIX)/lib/glib-2.0/include \
+ -I$(PREFIX)/include/gettext \
+ -I$(PREFIX)/include
+
+INCLUDEDIRS= -I.. \
+ -I../src \
+ -I../scintilla/include \
+ -I../tagmanager/include \
+ $(GTK_INCLUDES)
+
+ALL_GTK_LIBS= \
+ -L"$(PREFIX)/lib" \
+ -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 \
+ -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv
+
+CCFLAGS=-Wall -O2 -mms-bitfields
+
+.PHONY: all clean plugins
+
+all: plugins
+
+.c.dll:
+ $(CC) $(CCFLAGS) $(DEFINES) $(INCLUDEDIRS) -o $@.o -c $<
+ $(CC) -shared $@.o $(ALL_GTK_LIBS) $(DLL_LD_FLAGS) -o $@
+
+plugins: \
+ htmlchars.dll \
+ demoplugin.dll \
+ classbuilder.dll
+
+clean:
+ -$(RM) deps.mak *.o *.dll
+
+deps.mak:
+ $(CC) -MM $(CCFLAGS) $(DEFINES) $(INCLUDEDIRS) *.c >deps.mak
+
+# Generate header dependencies with "make deps.mak"
+include deps.mak
+
+..\localwin32.mk:
+ echo # Set local variables here >$@
Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c 2007-07-28 15:18:01 UTC (rev 1757)
+++ trunk/src/dialogs.c 2007-07-28 17:44:02 UTC (rev 1758)
@@ -652,6 +652,7 @@
}
+#ifndef G_OS_WIN32
static void
on_font_apply_button_clicked (GtkButton *button,
gpointer user_data)
@@ -681,6 +682,7 @@
{
gtk_widget_hide(app->open_fontsel);
}
+#endif
/* This shows the font selection dialog to choose a font. */
Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c 2007-07-28 15:18:01 UTC (rev 1757)
+++ trunk/src/plugins.c 2007-07-28 17:44:02 UTC (rev 1758)
@@ -28,6 +28,8 @@
#ifdef HAVE_PLUGINS
+#include <string.h>
+
#include "plugins.h"
#include "plugindata.h"
#include "support.h"
@@ -37,7 +39,13 @@
#include "sciwrappers.h"
#include "ui_utils.h"
+#ifdef G_OS_WIN32
+# define PLUGIN_EXT "dll"
+#else
+# define PLUGIN_EXT "so"
+#endif
+
typedef struct Plugin
{
GModule *module;
@@ -267,14 +275,18 @@
load_plugins(const gchar *path)
{
GSList *list, *item;
+ gchar *fname, *tmp;
+ Plugin *plugin;
list = utils_get_file_list(path, NULL, NULL);
for (item = list; item != NULL; item = g_slist_next(item))
{
- gchar *fname = g_strconcat(path, G_DIR_SEPARATOR_S, item->data, NULL);
- Plugin *plugin;
+ tmp = strrchr(item->data, '.');
+ if (tmp == NULL || strcasecmp(tmp, "." PLUGIN_EXT) != 0)
+ continue;
+ fname = g_strconcat(path, G_DIR_SEPARATOR_S, item->data, NULL);
plugin = plugin_new(fname);
if (plugin != NULL)
{
@@ -288,25 +300,43 @@
}
+#ifdef G_OS_WIN32
+static gchar *get_plugin_path()
+{
+ gchar *install_dir = g_win32_get_package_installation_directory("geany", NULL);
+ gchar *path;
+
+ path = g_strconcat(install_dir, "\\plugins", NULL);
+
+ return path;
+}
+#endif
+
+
void plugins_init()
{
GtkWidget *widget;
- gchar *path_user;
+ gchar *path;
geany_data_init();
widget = gtk_separator_menu_item_new();
gtk_container_add(GTK_CONTAINER(geany_data.tools_menu), widget);
- path_user = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "plugins", NULL);
+ path = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "plugins", NULL);
// first load plugins in ~/.geany/plugins/, then in $prefix/lib/geany
- load_plugins(path_user);
+ load_plugins(path);
+#ifdef G_OS_WIN32
+ g_free(path);
+ path = get_plugin_path();
+ load_plugins(path);
+#else
load_plugins(PACKAGE_LIB_DIR G_DIR_SEPARATOR_S "geany");
-
+#endif
if (g_list_length(plugin_list) > 0)
gtk_widget_show(widget);
- g_free(path_user);
+ g_free(path);
}
Modified: trunk/win32-config.h
===================================================================
--- trunk/win32-config.h 2007-07-28 15:18:01 UTC (rev 1757)
+++ trunk/win32-config.h 2007-07-28 17:44:02 UTC (rev 1758)
@@ -138,7 +138,7 @@
/* #undef HAVE_NDIR_H */
/* Define if plugins are enabled. */
-//#define HAVE_PLUGINS 1
+#define HAVE_PLUGINS 1
/* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV 1
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list