|
From: Techentin, R. W. <tec...@ma...> - 2005-05-25 16:23:49
|
I would like to deploy a starkit application with both BLT and Tile, particularly on Windows, where starkit/starpack is a big distribution win, and I can get the XP native theme. But BLT is not a "well behaved" stubs-enabled extension. So I can't just drop its library into a starkit. Instead I have to resort to a specially built bloated tclkit that includes BLT. One such beast is dqkit from http://sourceforge.net/projects/dqsoftware/. Unfortunately, dqkit (and even other older tclkits) can't load tile06.kit because pkgIndex.tcl insists on Tcl 8.4.6 or higher. And rebuilding a huge beast like dqkit looks hard. Tile's docs seem to indicate that you can build it against pre-8.5 Tcl without stubs. So I downloaded Tcl and Tk 8.4.5 (matching dqkit's versions), fired up MSYS/MingW, and built Tcl, Tk, and Tile. Configure and make went smoothly, but the resulting library doesn't know about xpnative theme. Something about uxtheme.h, which I don't have. Tinkering around a bit, I find that I can actually load tile06.kit's tile06.dll into dqkit if I can get past the pkgIndex.tcl limitations. Is tile06.kit really limited to tclkit's 8.4.6 and higher? Or is this pkgIndex.tcl logic left over from something else? Just for reference, tile.kit comes with this logic in pkgIndex.tcl: if {![package vsatisfies [package provide Tcl] 8.4]} { return } if {[package vsatisfies [package provide Tcl] 8.5] || [package vsatisfies [info patchlevel] 8.4.6]} { # use the stubs linked version set ::env(TILE_LIBRARY) $dir package ifneeded tile 0.6 \ [list load [file join $dir $platform tile06[info sharedlibextension]]] } else { return } But this logic, similar to that created by building Tile from source, seems to suffice, and seems to work. if {![package vsatisfies [package provide Tcl] 8.4]} { return } package ifneeded tile 0.6.2 \ [list load [file join $dir $platform tile06[info sharedlibextension]] tile] I haven't done extensive testing, but the demos still runs, so I presume that all the widgets work. Is this reasonable, or a bad idea? Thanks, Bob -- Bob Techentin tec...@ma... Mayo Foundation (507) 538-5495 200 First St. SW FAX (507) 284-9171 Rochester MN, 55901 USA http://www.mayo.edu/sppdg/ |