Hi!

the attached patch together with additional files included into the
.tar.gz archive adds elementary support for GTK/Gnome frontend: configure
scripts, Gtk/Gnome initialization, Gnome event loop processing, and
Copyright dialog box implementation.

It should be easy to use this code on the platform with good STL string
implementation. In such case you need standard gtk, gnome, libsigc++ ,
gtk-- and gnome-- libraries.

On my platform (redhat linux 6.1, egcs 1.1.2) LyX uses LyX string class
instead of STL string. To use gtk-- and gnome-- with LyX I recompiled
these libraries after replacing "#include <string>" by "#include
"LString.h"" in the source files of the libraries. To make our life easier
I've written two small scripts that patch gtk-- and gnome-- libraries and
compile them. Please note that running these scripts is DANGEROUS since it
may change your source files. The following are instructions for getting
Gtk/Gnome frontend running in the platforms that lack good STL string
implementation (it worked on my platform):

* install Gtk, Gnome, and libsigc++

* download gtkmm-1.2.1.tar.gz and gnomemm-1.1.10.tar.gz from
  http://gtkmm.sourceforge.net/download.html (click "sourceforge download
  area" on this page)

* create a new directory and copy gtkmm-1.2.1.tar.gz,
  gnomemm-1.1.10.tar.gz, lyxgtk.sh, and str2lyxstr.sh
  to this directory (lyxgtk.sh and str2lyxstr.sh are attached to this
  e-mail)

* cd to this directory

* read and edit script lyxgtk.sh (set source and install directories)

* run script lyxgtk.sh

* include directory with installed new gtk and gnome libs to PATH and
  LD_LIBRARY_PATH as first directories (subdirs bin and lib,
  respectively).

* cd to lyx source directory

* run autogen.sh

* run configure with the following options:
        --with-frontend=gtk --without-included-libsigc --disable-sigctest 
        --with-gnomemm-config-path=NEW_GNOMEMM_LIB/lib/gnomemmConf.sh 
--disable-gtkmmtest

* run make

Please note, that compiled Gtk--/Gnome-- libraries are usable only with
LyX.

Finally, to make configure script working I had to disable
AC_LANG_CPLUSPLUS in configure.in (line 66). Otherwise gnome configuration
scripts were not working properly. It will be very nice if someone with
good knowledge of configure.in magic would take a look on this problem.

Regards,

Marko
#!/bin/bash

# This script is DANGEROUS! It replaces 
# "#include <string>" with "#include "LString.h"" in the files in 
# current directory (recursively!). This can change YOUR source files. 
# Use it at your own risk.

FILELISTCC=`rgrep -r -l "#include <string>" . | grep "\.cc"` 
FILELISTH=`rgrep -r -l "#include <string>" . | grep "\.h"` 
FILELISTGEN=`rgrep -r -l "#include <string>" . | grep "\.gen_"` 

for i in $FILELISTCC $FILELISTH $FILELISTGEN; do
    cat $i | sed -e 's/#include <string>/#include "LString.h"/g' > .tmpfile
    mv .tmpfile $i
done
#!/bin/bash

# This script is DANGEROUS! It uses script srt2lyxstr.sh to replace 
# "#include <string>" with "#include "LString.h"". This can change YOUR source files.
# Use it at your own risk.

# extracting GNOME-- and GTK--
tar zxvf gnomemm-1.1.10.tar.gz
tar zxvf gtkmm-1.2.1.tar.gz

# Please specify the directories with GTK--, GNOME--, LyX source, and the directory 
# to which new GTK--/GNOME-- libraries should be installed.
GTKMMDIR=/home/users/markov/cpp-files/lyx/lyx-gtk/gtkmm-1.2.1
GNOMEMMDIR=/home/users/markov/cpp-files/lyx/lyx-gtk/gnomemm-1.1.10
LIBINSTALLDIR=/home/users/markov/cpp-files/lyx/lyx-gtk/root
LYXDIR=/home/users/markov/cpp-files/lyx/lyx-devel

# Please note that script creates temporary directory $GTKMMDIR/../.tmpdir . 
# Change the script if this is not acceptable for you.

mkdir $LIBINSTALLDIR

export MAKE="make"

export CXXFLAGS="-DUSE_INCLUDED_STRING -I$LYXDIR/src"

CURRDIR=`pwd`
STR2LYXSTR=$CURRDIR/str2lyxstr.sh

# gtkmm

cd $GTKMMDIR
./configure --prefix=$LIBINSTALLDIR 
echo -e "all: \ninstall: \n" > gdk--/tests/Makefile
mv src/gtkmmproc ../.tmpdir
$STR2LYXSTR
mv ../.tmpdir src/gtkmmproc

make
make install

cd $CURRDIR

# gnomemm

export PATH=$LIBINSTALLDIR/bin:$PATH

cd $GNOMEMMDIR
./configure --prefix=$LIBINSTALLDIR --disable-gtkmmtest 

$STR2LYXSTR

make
make install
cp src/gnomemmConf.sh $LIBINSTALLDIR/lib

cd $CURRDIR


gnome-add.tar.gz

gnome-patch.gz

Reply via email to