From: "richard.j.dale@..." Date: 2006-11-10T20:45:08+09:00 Subject: Re: QtRuby 1.4.7 Shea Martin wrote: > > mardigras rdale 165% find . -name qtguess.pl.in -print > > ./smoke/qt/qtguess.pl.in > > mardigras rdale 166% find . -name generate.pl.in -print > > ./smoke/qt/generate.pl.in > > > > You're right about the INSTALL not mentioning Windows though, that is > > certainly an important omission and I'll fix it for the next release. > > You need to change the '@thing@' variables in the perl scripts to be > > what the configure should have set them to. Edit qtguess.pl.in and save > > as qtguess.pl, and then edit generate.pl.in and save as generate.pl. > > > > Sorry to be so stupid, but then what? Do I run them individually? Yes, 'perl qtguess.pl' and then 'perl generate.pl'. I'm not sure if I actually need to run qtguess.pl, all it does is to run various tests to see which options Qt was built with, and it writes to the file qtdefines. When you run the generate.pl script it starts a perl program called 'kalyptus' which uses the contents of the qtdefines file to skip any methods/classes in the qt headers which were found to be missing from the installed version of Qt. kalyptus generates the c++ code for the smoke library from the qt headers, and you can compile them using qmake to build a makefile from the project file 'qtsmoke.pro' in the smoke/qt directory. Here are the changes I made to generate.pl.in to create generate.pl and get it to work: $ diff generate.pl generate.pl.in 18c18 < my $headerlist = "./header_list"; --- > my $headerlist = "@srcdir@/header_list"; 24c24 < if("no" eq "yes") --- > if("@qtextscintilla@" eq "yes") 32c32 < if("no" eq "yes") --- > if("@qtextscintilla@" eq "yes") 92c92 < if("no" eq "yes") --- > if("@qtextscintilla@" eq "yes") 100c100 < if("no" eq "yes") --- > if("@KDE_HAVE_GL@" eq "yes") 119c119 < $qtinc= '/cygdrive/c/qt/4.1.2/include'; --- > $qtinc= '@qt_includes@'; 140c140 < system "perl -I../../kalyptus ../../kalyptus/kalyptus @ARGV --qt4 --globspace -fsmoke --name=qt $macros --no-cache --outputdir=$outdir @headers"; --- > system "perl -I@top_srcdir@/kalyptus @top_srcdir@/kalyptus/kalyptus @ARGV --qt 4 --globspace -fsmoke --name=qt $macros --no-cache --outputdir=$outdir @headers" ; This is the contents of my qtdefines file on windows: $ cat qtdefines QT_DEBUG QT_CHECK_NULL QT_LARGEFILE_SUPPORT QT_PRODUCT_LICENSE QT_MODULE_ICONVIEW QT_MODULE_KERNEL QT_STATIC_CONST_IMPL QT_NO_REMOTE QT_MODULE_TABLE QT_MODULE_WIDGETS QT_NO_COP QT_MODULE_STYLES QT_MODULE_XML QT_NO_WARNINGS QT_CHECK_STATE QT_STATIC_CONST QT_CHECK_MATH QT_CHECK_RANGE QT_MODULE_NETWORK QT_VERSION_STR QT_MODULE_CANVAS QT_MODULE_TOOLS QT_BUILD_KEY QT_MODULE_SQL QT_MODULE_DIALOGS QT_VERSION QT_PRODUCT_LICENSEE QT_POINTER_SIZE QT_MODULE_OPENGL QT_MODULE_WORKSPACE -- Richard