Hi,

On 19/03/2012 09:20, Ahmad Zawawi wrote:
Cool thanks for the valuable information but how will I require it in
my Makefile.PL to be wxWidgets 2.9.3 and not the default 2.8.1x? :) I
am looking at Padre and thinking how we can use the new wxWebView:
http://docs.wxwidgets.org/trunk/classwx_web_view.html

You cannot. Firstly because there's no implementation :-)
But mainly because - different major versions of wxWidgets ( 2.8 vs 2.9 ) have different API's. There's no backwards compatibility guaranteed. If you install Wx based on wxWidgets 2.9.3 into an existing 2.8.12 installation, it will possibly break any installed Wx Perl code. There is a '2.8' compatibility option in 2.9, but it does not guarantee compatibility. Requiring and installing 2.8.12 over 2.9.3 would be much worse for the installed Perl code, of course.

Leaving the Perl code aspect apart, all binary Wx modules would need to be updated / downgraded to the chosen wxWidgets version. Installing to a different lib path does not really help unless you can rip out any existing Wx installation.

So, an implementation that allowed 'use Wx wxWidgets => 2.9.3;' that would actually suit most situations seems difficult. Well, to me it does. Perhaps there's a simple solution I'm missing.

My answer to the problem was a binary distribution of everything - Citrus Perl.

You could argue that 'require Alien::wxWidgets 0.58' should get you a specific wxWidgets version - but that would often prevent use of the system installed wxWidgets which would be a real pain for many Linux users I suspect.

So I think you are left with having to code for both 2.8 and 2.9 wxWidgets or having a specific Perl install for your application whether that's Citrus, or a perlbrew recipe or Strawberry or ActivePerl + ppms etc.

Suggestions for better solutions most welcome !!

Regards

Mark





Reply via email to