> 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.