From: Eric W. <scr...@gm...> - 2007-05-03 00:12:43
|
# from Daniell Freed # on Wednesday 02 May 2007 02:43 pm: >I've seen several posts from you on the wxPerl list so I am hoping >that you can help me out. Hi Daniell. As a general rule (at least for me) one-on-one help requires a support contract or at least a round of beer. Asking the mailing list will sometimes get you a better/sooner answer anyway. >I've been able to get wxPerl 0.74 compiled against wxWidgest 2.8.3, >but I can't seem to make this build work as a standalone application >bundle. When I bundle the wxPerl library code (I'm using perlwrapper >to make the bundle) it works fine on my machine, but fails on other >machines that don't have the wxWidgets libraries installed. > >When Wx.bundle gets loaded by DynaLoader it is trying to use one of >the libwx* files in /usr/local/lib. > >How did you compile wxPerl so that it wouldn't do this, but instead >use the libwx* libraries you distributed with dotReader? wxPerl is compiled as normal[1]. The rest is just a packaging hack. It involves some apple-specific hacks with install_name_tool. The dylibs are rewritten with an appbundle variable @executable_path (which is maybe not supported on 10.2, but I don't remember details ATM.) I've got something of a decent (if not well-documented) abstraction going in the ExtUtils::MacMaker code, which is part of this: http://scratchcomputing.com/svn/Module-Build-Plugins-MacBundle/trunk Note that that involves a forked PerlWrapper. The last dist at web42.com had some issues and I needed some features, and I never heard anything back from the author (Christian Renz.) Primarily, the flaw with PerlWrapper is that it assumes your project is only on osX (e.g. step 1 is like "copy your code into this tree", and step 2 is like "edit x and y files accordingly", and step 3 "click a button in the xcode gui" is where I decided to fork it.) The ExtUtils::MacMaker code plays nicely with the standard cross-platform Module::Build tools/layout (rather than assuming that you have xcode on the windows and linux machines in your build farm.) For usage, see the demos and take a look at the more specific frontended bits in dtRdrBuilder.pm here: http://svn.dotreader.com/svn/dotreader/trunk/inc/ You could also try par. [1] There is a caveat to the build process if you want a universal binary. It's no fun. There are some messages in the list archive from me and others with details. However, I don't think it is possible to build a universal binary which will run on both 10.3 and 10.4 without building two perls and two of each of everything else too. Apple's perl Config.pm certainly won't do it (in fact, I think I had to hack their Config.pm to even get the 10.4-only UB.) Woot. --Eric -- I arise in the morning torn between a desire to improve the world and a desire to enjoy the world. This makes it hard to plan the day. --E.B. White --------------------------------------------------- http://scratchcomputing.com --------------------------------------------------- |