You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebindings/qtruby/INSTALL

145 lines
4.4 KiB

Dependencies
------------
- ruby 1.8 or greater
- automake 1.7 or greater
- Qt 3.1 or greater
- KDE 3.1 or greater (for korundum)
CVS Snapshot
------------
If building from a CVS snapshot, this initial make command in needed:
$ make -f Makefile.cvs
Configure flags needed
----------------------
In order to build korundum: (this is the default in fact, so you can just use ./configure)
./configure --with-smoke="qt kde"
in order to build just qtruby:
./configure --with-smoke="qt"
Building the Qt extension without KDE build process
---------------------------------------------------
To build the Qt.so extension, provide 'extconf.rb' with the directories where
the Qt and Smoke libraries are installed:
$ cd qtruby/rubylib/qtruby
$ ruby extconf.rb --with-smoke-dir=/opt/trinity \
--with-qt-dir=/home/duke/src/kde/HEAD/qt-copy
$ make
$ make install
Building on Mac OS X
--------------------
Automake/autoconf don't work very well on Mac OS X, and so qmake and
exconf.rb must be used instead. You can use the native Aqua/Quartz Qt/Mac
version of Qt - QtRuby doesn't require X11.
Build Qt/Mac and install in /Developer/qt. These configure flags work well:
./configure -system-zlib -qt-gif -plugin-imgfmt-mng -thread -no-stl
-no-exceptions -fast
Configure QtRuby and build the Smoke library:
$ ./configure '--with-qt-dir=/Developer/qt' '--enable-mac'
$ cd smoke/qt
# Generate the Smoke library sources:
$ perl generate.pl
# Overwrite the automake generated Makefile:
$ qmake -makefile
# Build the Smoke library and install into /usr/lib
$ sudo make
...
# Build the 'Qt' extension:
$ cd qtruby/rubylib/qtruby
$ ruby extconf.rb --with-qt-dir=/Developer/qt --with-smoke-dir=/usr \
--with-smoke-include=../../../smoke
$ make
$ sudo make install
...
# Build the rbuic tool and install into /usr/bin
$ cd qtruby/rubylib/designer/rbuic
$ qmake -makefile
$ sudo make
...
# Build the 'qui' QWidgetFactory extension
$ cd qtruby/rubylib/designer/uilib
$ ruby extconf.rb --with-qtruby-include=../../qtruby --with-qt-dir=/Developer/qt
$ make
$ sudo make install
To get Mac menus to appear, when a QtRuby program is run from the command line,
link ruby against the carbon resource lib and call it 'rubyw', see:
http://www.rubygarden.org/ruby?RubyTkOnOSX
"Create rubyw executable for MacOS?: the Win32 distribution of ruby includes a
'rubyw.exe' so I decided to attempt creating a 'rubyw' executable:
On my machine, ruby is installed at /usr/local/bin/ruby, so I did sudo
cp /usr/local/bin/ruby /usr/local/bin/rubyw
Using the suggestion directly above (on this page), I then ran
sudo /Developer/Tools/Rez -t APPL Carbon.r -o rubyw
I was then able to successfully run an example RubyTk app by
running /usr/local/bin/rubyw ruby-1.8.0/ext/tk/sample/tkmenubutton.rb
Everything worked as expected, and I was able to interact with the UI without
any SetFrontProcess errors. "
Ryutaro Amano wrote this about creating a double clickable bundle:
"Thanks all, I have succeeded make rubyw.
sample script is launched in foreground.
And I have known the following steps to launch qt-ruby script by double clicking
from Finder.
As an example, I take qtruby-1.0.11/qtruby/rubylib/tutorial/t14
cd qtruby-1.0.11/qtruby/rubylib/tutorial/t14
chmod 755 t14.rb
replace first line of t14.rb with "#!/usr/local/bin/rubyw"
mkdir -p Shoot.app/Contents/MacOS
mv t14.rb Shoot.app/Contents/MacOS/Shoot
cp {cannon.rb,gamebrd.rb,lcdrange.rb} Shoot.app/Contents/MacOS
cp Info.plist Shoot.app/Contents
Info.plist is
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
<key>CFBundleExecutable</key>
<string>Shoot</string>
<key>CFBundleIdentifier</key>
<string>jp.co.ryutaro.qtquit</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
</dict>
</plist>
echo -n "APPL????" > Shoot.app/Contents/PkgInfo
Double click Shoot.app, Qt-Window appears in foreground."
QScintilla text editing widget support
--------------------------------------
QScintilla is a text editing widget with syntax highlighting for a
number of languages including ruby. It can be downloaded from here:
http://www.riverbankcomputing.co.uk/qscintilla/download.php
Use the '--enable-qscintilla=yes' configure option to build QtRuby with
QScintilla support. The classes in a 'Qext::' module, with names such as
Qext::Scintilla.