RE: New Tcl::Tk to follow?
[email protected] ("Konovalov, Vadim (Vadim)** CTR **")
| Newsgroups | perl.tcltk |
|---|---|
| Message-ID | <35BF8D9716175C43BB9D67CA60CC345E13730A65@FRMRSSXCHMBSC2.dc-m.alcatel-lucent.com> |
> From: Michael Carman [mailto:[email protected]] > jeff <[email protected]> wrote: > > could someone post a short blurb of what dlls (& dylibs for Aqua) > > would be required for packaging Tcl::Tk stand-alones with perlapp > > or PAR? > > I've packaged Tkx apps using PAR. Tcl::Tk apps should work > the same way. You need to explicitly bundle Tcl.dll and > tkkit.dll when invoking pp. For example: thank you for sharing your experience. > > -l C:/Perl/lib/auto/Tcl/Tcl.dll > -l C:/Perl/lib/auto/Tcl/tkkit.dll > > Unfortunately, it's not quite that simple due to the way PAR > unpacks shared libraries. You need to modify your script to > detect when it's running under PAR and tell the Tcl module > where to find the libs: > > use File::Spec::Functions; > > BEGIN { > if (exists $ENV{PAR_PROGNAME}) { > use Config (); > $ENV{PERL_TCL_DL_PATH} = catfile( > $ENV{PAR_TEMP}, > 'tkkit.' . $Config::Config{dlext} > ); > } > } I package differently, but, essentially, I also have some PAR detection for Tcl.pm Michael, your approach is good, but I think the better way is to update both PAR and Tcl.pm parts of the process, so your fix will not be necessary. I think, that PAR should bundle "C:/Perl/lib/auto/Tcl/Tcl.dll". If it do not - it should be fixed then. Also, adding "tkkit.dll" could also be done on PAR side, but there is a problem of detecting whether "tkkit.dll" is actually used. Other missing parts could become part of Tcl.pm. Regards, Vadim.