[gimp-tiny-fu] Use tiny-fu instead of TinyScheme as the controlling program to run scripts.
- From: Kevin Cozens <kcozens src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-tiny-fu] Use tiny-fu instead of TinyScheme as the controlling program to run scripts.
- Date: Sat, 11 Jun 2022 19:12:17 +0000 (UTC)
commit 64159974faa5b38b7a335b4e32acaedce2161f4f
Author: Kevin Cozens <kcozens svn gnome org>
Date: Fri Dec 2 20:26:32 2011 -0500
Use tiny-fu instead of TinyScheme as the controlling program to run scripts.
The original plan to run a Scheme script was to have GIMP start TinyScheme
and TinyScheme would load tiny-fu as an extension. There were difficulties
in going from Scheme to C to Scheme (initially to create wrapper functions
for GIMP functions) so this approach has been abandoned in favour of the
original method of going from C to Scheme to C to run Scheme scripts. Also
updated dependencies to match those of GIMP. Don't use gtk+ 3.0 functions.
Makefile.am | 6 +++---
configure.in | 15 ++++++++++++---
ftx/Makefile.am | 20 ++++++--------------
tiny-fu/Makefile.am | 36 ++++++++++++++++++++----------------
tiny-fu/scheme-wrapper.c | 2 +-
tiny-fu/tiny-fu-console.c | 8 ++++----
tiny-fu/tiny-fu-interface.c | 4 ++--
tiny-fu/tiny-fu-server.c | 4 ++--
tiny-fu/tiny-fu.c | 44 +-------------------------------------------
tinyscheme/Makefile.am | 10 +++-------
tinyscheme/scheme.c | 37 -------------------------------------
11 files changed, 54 insertions(+), 132 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 89dbbea..a808c29 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,7 +20,7 @@ tinyfudir = $(GIMP_LIBDIR)/$(tinyfubase)
tinyfuenvdir = $(GIMP_LIBDIR)/environ
tinyfuinterpdir = $(GIMP_LIBDIR)/interpreters
-TINYSCHEME_BIN = $(tinyfudir)/tinyscheme
+TINYFU_BIN = $(tinyfudir)/tiny-fu
tinyfuenvfile = $(tinyfuenvdir)/tiny-fu.env
tinyfuinterpfile = $(tinyfuinterpdir)/tiny-fu.interp
@@ -32,8 +32,8 @@ install-env-file:
install-interp-file:
$(mkinstalldirs) '$(DESTDIR)$(tinyfuinterpdir)'
- echo 'tinyscheme=$(TINYSCHEME_BIN)' > '$(DESTDIR)$(tinyfuinterpfile)'
- echo ':TinyScheme:E::scm::tinyscheme:' >> '$(DESTDIR)$(tinyfuinterpfile)'
+ echo 'tiny-fu=$(TINYFU_BIN)' > '$(DESTDIR)$(tinyfuinterpfile)'
+ echo ':Tiny-Fu:E::scm::tiny-fu:' >> '$(DESTDIR)$(tinyfuinterpfile)'
install-data-local: install-env-file install-interp-file
diff --git a/configure.in b/configure.in
index a102539..becabc2 100644
--- a/configure.in
+++ b/configure.in
@@ -19,9 +19,9 @@ m4_define([tiny_fu_stable],
m4_if(m4_eval(plugin_minor_version % 2), [0], [yes], [no]))
dnl required versions of other packages
-m4_define([glib_required_version], [2.12.3])
-m4_define([gtk_required_version], [2.10.13])
-m4_define([gimp_required_version], [2.4.0])
+m4_define([glib_required_version], [2.28.8])
+m4_define([gtk_required_version], [2.24.7])
+m4_define([gimp_required_version], [2.7.0])
AC_INIT([plugin_name], [plugin_version])
@@ -227,6 +227,10 @@ AM_PATH_GLIB_2_0(glib_required_version, :,
AM_PATH_GTK_2_0(gtk_required_version, :,
AC_MSG_ERROR(Test for GTK+ failed. See the file 'INSTALL' for help.))
+GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
+GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
+AC_SUBST(GTK_CFLAGS)
+AC_SUBST(GTK_LIBS)
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
gimp_save_LIBS=$LIBS
@@ -235,8 +239,13 @@ AC_CHECK_FUNCS(bind_textdomain_codeset)
PKG_CHECK_MODULES(GIMP, gimp-2.0 >= gimp_required_version gimpui-2.0 >= gimp_required_version)
+
+GIMP_CFLAGS=`$PKG_CONFIG --cflags gimp-2.0`
+GIMP_LIBS=`$PKG_CONFIG --libs gimp-2.0`
+GIMPUI_LIBS=`$PKG_CONFIG --libs gimpui-2.0`
AC_SUBST(GIMP_CFLAGS)
AC_SUBST(GIMP_LIBS)
+AC_SUBST(GIMPUI_LIBS)
##################################
diff --git a/ftx/Makefile.am b/ftx/Makefile.am
index bc36c29..28e3d03 100644
--- a/ftx/Makefile.am
+++ b/ftx/Makefile.am
@@ -5,22 +5,14 @@ mwindows = -mwindows
no_undefined = -no-undefined
endif
-AM_CFLAGS = \
- -DUSE_INTERFACE=1 \
- -I$(top_srcdir) \
- $(GIMP_CFLAGS)
-
-ftx_ladir = $(GIMP_LIBDIR)/tiny-fu
+noinst_LIBRARIES = libftx.a
-ftx_la_LTLIBRARIES = ftx.la
-
-ftx_la_SOURCES = ftx.c ftx.h
+AM_CFLAGS = \
+ -DSTANDALONE=0 \
+ -DUSE_INTERFACE=1 \
+ $(GLIB_CFLAGS)
-ftx_la_LDFLAGS = \
- -module \
- -avoid-version \
- $(no_undefined) \
- $(mwindows)
+libftx_a_SOURCES = ftx.c
EXTRA_DIST = \
LICENSE \
diff --git a/tiny-fu/Makefile.am b/tiny-fu/Makefile.am
index 7ebc82b..d4cf50c 100644
--- a/tiny-fu/Makefile.am
+++ b/tiny-fu/Makefile.am
@@ -4,19 +4,34 @@ if OS_WIN32
mwindows = -mwindows
WINSOCK_LIBS = -lws2_32
no_undefined = -no-undefined
+else
+libm = -lm
endif
+libtinyscheme=-L../tinyscheme -ltinyscheme $(libm)
+libftx=-L../ftx -lftx
+
+
AM_CFLAGS = \
-DSTANDALONE=0 \
-DUSE_INTERFACE=1 \
- -I$(top_srcdir) \
- $(GIMP_CFLAGS)
+ $(GTK_CFLAGS) \
+ $(GIMP_CFLAGS) \
+ $(mwindows)
+
+LDADD = \
+ $(libtinyscheme) \
+ $(libftx) \
+ $(GTK_LIBS) \
+ $(GIMP_LIBS) \
+ $(GIMPUI_LIBS) \
+ $(WINSOCK_LIBS)
-tiny_fu_ladir = $(GIMP_LIBDIR)/tiny-fu
+libexecdir = $(GIMP_LIBDIR)/tiny-fu
-tiny_fu_la_LTLIBRARIES = tiny_fu.la
+libexec_PROGRAMS = tiny-fu
-tiny_fu_la_SOURCES = \
+tiny_fu_SOURCES = \
tiny-fu.c \
tiny-fu-console.c \
tiny-fu-console.h \
@@ -41,14 +56,3 @@ tiny_fu_la_SOURCES = \
tiny-fu-utils.h \
scheme-wrapper.c \
scheme-wrapper.h
-
-tiny_fu_la_LDFLAGS = \
- -module \
- -avoid-version \
- $(no_undefined) \
- $(mwindows)
-
-tiny_fu_la_LIBADD = \
- $(GIMP_LIBS) \
- $(WINSOCK_LIBS) \
- $(INTLLIBS)
diff --git a/tiny-fu/scheme-wrapper.c b/tiny-fu/scheme-wrapper.c
index c6112ee..ac2e8f9 100644
--- a/tiny-fu/scheme-wrapper.c
+++ b/tiny-fu/scheme-wrapper.c
@@ -28,7 +28,7 @@
#include <gtk/gtk.h>
-#include "libgimp/gimp.h"
+#include <libgimp/gimp.h>
#include "tinyscheme/scheme-private.h"
#if USE_DL
diff --git a/tiny-fu/tiny-fu-console.c b/tiny-fu/tiny-fu-console.c
index db7b158..64ef543 100644
--- a/tiny-fu/tiny-fu-console.c
+++ b/tiny-fu/tiny-fu-console.c
@@ -22,8 +22,8 @@
#include <glib/gstdio.h>
-#include "libgimp/gimp.h"
-#include "libgimp/gimpui.h"
+#include <libgimp/gimp.h>
+#include <libgimp/gimpui.h>
#include <gdk/gdkkeysyms.h>
@@ -152,7 +152,7 @@ script_fu_console_interface (void)
&console);
/* The main vbox */
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
+ vbox = gtk_vbox_new (FALSE, 12);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (console.dialog))),
vbox, TRUE, TRUE, 0);
@@ -219,7 +219,7 @@ script_fu_console_interface (void)
}
/* The current command */
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+ hbox = gtk_hbox_new (FALSE, 6);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
gtk_widget_show (hbox);
diff --git a/tiny-fu/tiny-fu-interface.c b/tiny-fu/tiny-fu-interface.c
index bb6aa24..043a461 100644
--- a/tiny-fu/tiny-fu-interface.c
+++ b/tiny-fu/tiny-fu-interface.c
@@ -251,7 +251,7 @@ script_fu_interface (SFScript *script,
gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
+ vbox = gtk_vbox_new (FALSE, 12);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
vbox, TRUE, TRUE, 0);
@@ -561,7 +561,7 @@ script_fu_interface (SFScript *script,
g_object_unref (group);
/* the script progress bar */
- vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+ vbox2 = gtk_vbox_new (FALSE, 6);
gtk_box_pack_end (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0);
gtk_widget_show (vbox2);
diff --git a/tiny-fu/tiny-fu-server.c b/tiny-fu/tiny-fu-server.c
index d22a3b2..1b68455 100644
--- a/tiny-fu/tiny-fu-server.c
+++ b/tiny-fu/tiny-fu-server.c
@@ -60,8 +60,8 @@ typedef short sa_family_t; /* Not defined by winsock */
#include <glib/gstdio.h>
-#include "libgimp/gimp.h"
-#include "libgimp/gimpui.h"
+#include <libgimp/gimp.h>
+#include <libgimp/gimpui.h>
#include "tiny-fu-intl.h"
diff --git a/tiny-fu/tiny-fu.c b/tiny-fu/tiny-fu.c
index 9452068..a986ad8 100644
--- a/tiny-fu/tiny-fu.c
+++ b/tiny-fu/tiny-fu.c
@@ -48,8 +48,6 @@
/* Declare local functions. */
-static pointer tiny_fu_main_init (scheme *sc, pointer args);
-
static void script_fu_query (void);
static void script_fu_run (const gchar *name,
gint nparams,
@@ -74,48 +72,8 @@ const GimpPlugInInfo PLUG_IN_INFO =
};
-/* This routine is called to initialize the Tiny-Fu extension. */
-EXPORT void
-init_tiny_fu (scheme *sc)
-{
- printf ("Loaded Tiny-Fu extension\n");
-
- sc->vptr->scheme_define (sc, sc->global_env,
- sc->vptr->mk_symbol(sc,"tiny-fu-init"),
- sc->vptr->mk_foreign_func(sc, tiny_fu_main_init));
-}
-
-/* The parameters passed to TinyScheme can be found in *args*. */
-pointer
-tiny_fu_main_init (scheme *sc, pointer args)
-{
- int argc;
- char **argv;
- int i;
-
- args = sc->vptr->pair_car (args); /* List is passed in a list */
- argc = sc->vptr->list_length (sc, args);
-
- argv = g_new (char *, argc);
-
- for (i = 0; i < argc; ++i)
- {
- argv[i] = g_strdup (sc->vptr->string_value (sc->vptr->pair_car (args)));
-
- args = sc->vptr->pair_cdr (args);
- }
-
- i = gimp_main (&PLUG_IN_INFO, argc, argv);
+MAIN()
- for (i = 0; i < argc; ++i)
- g_free (argv[i]);
- g_free (argv);
-
- if (i == EXIT_SUCCESS)
- return sc->T;
-
- return sc->F;
-}
static void
script_fu_query (void)
diff --git a/tinyscheme/Makefile.am b/tinyscheme/Makefile.am
index acdf951..c0be36c 100644
--- a/tinyscheme/Makefile.am
+++ b/tinyscheme/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
AM_CFLAGS = \
- -DSTANDALONE=1 \
+ -DSTANDALONE=0 \
-DUSE_INTERFACE=1 \
-DUSE_MATH=1 \
-DUSE_ASCII_NAMES=0 \
@@ -10,19 +10,15 @@ AM_CFLAGS = \
-DSUN_DL=1 \
$(GLIB_CFLAGS)
-libexecdir = $(GIMP_LIBDIR)/tiny-fu
+noinst_LIBRARIES = libtinyscheme.a
-libexec_PROGRAMS = tinyscheme
-
-tinyscheme_SOURCES = \
+libtinyscheme_a_SOURCES = \
dynload.c \
scheme.c \
opdefines.h \
scheme-private.h \
scheme.h
-LDADD = -ldl -lm
-
EXTRA_DIST = \
BUILDING \
CHANGES \
diff --git a/tinyscheme/scheme.c b/tinyscheme/scheme.c
index 75a9af7..e90b30c 100644
--- a/tinyscheme/scheme.c
+++ b/tinyscheme/scheme.c
@@ -5214,39 +5214,6 @@ int main(int argc, char **argv) {
#if USE_DL
scheme_define(&sc,sc.global_env,mk_symbol(&sc,"load-extension"),mk_foreign_func(&sc, scm_load_ext));
#endif
-
- if (argc == 7 && strcmp (argv[2], "-gimp") == 0)
- {
- pointer args = sc.NIL;
- char *s;
- int i;
-
- s = g_strdup_printf ("%s/%s", getenv("TINYFUPATH"), "tiny_fu");
- scm_load_ext(&sc, mk_symbol (&sc, s)); //Load tiny-fu extension
- g_free (s);
-
- for (i = 1; i < argc; ++i)
- {
- pointer value = mk_string (&sc, argv[i]);
- args = cons (&sc, value, args);
- }
- args = reverse_in_place (&sc, sc.NIL, args);
- scheme_define (&sc, sc.global_env, mk_symbol (&sc, "*args*"), args);
-
- scheme_load_string(&sc, "(tiny-fu-init *args*)");
-
- fin = fopen (argv[1], "rb");
- if (fin == 0)
- fprintf (stderr, "Could not open file %s\n", argv[1]);
- else
- {
- scheme_load_file (&sc, fin);
- fclose (fin);
- }
- }
- else {
-
- //Start of original standalone initialization
argv++;
if(g_access(file_name,0)!=0) {
char *p=getenv("TINYSCHEMEINIT");
@@ -5298,10 +5265,6 @@ int main(int argc, char **argv) {
if(argc==1) {
scheme_load_named_file(&sc,stdin,0);
}
- //End of original standalone initialization
-
- } //End of else block
-
retcode=sc.retcode;
scheme_deinit(&sc);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]