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