Hi,
Took a look at Wx::Scintilla - great work. With a minor build tweak (on
my build systems some stuff isn't in the assumed locations - I'll post a
patch) builds and works on Windows for me with a number of Perls.
For info, Wx already has a build system for Wx extensions - but using EUMM.
As an example, the attacked Makefile builds Wx::Scintilla if the
scintilla wxWidgets dll is already built.
The only hard coded part is the LIBS line which I was too lazy to set up
properly.
Obviously, it is of no use to your build system - but the point is, you
don't have to figure out the correct compiler and linker lines, the
Wx::build modules do that for you.
I guess you could use and adapt Wx::build code for a Module::Build install.
Building the scintilla wxWidgets dll is a bit more problematic.
However, I'm pretty sure that the methods provided by Alien::wxWidgets
give you more or less everything you need to create the necessary
compiler and linker lines without having to work it all out yourself.
I'll see if I can do the necessary in your Module::Build bits to get
build working across Windows/Linux/Mac using just the info from
Wx::build and Alien::wxWidgets.
I'll certainly upload and maintain PPMs for Wx::Scintilla and I'll try
to better keep up with PPMs for Padre releases. For Padre, I need to
'diary on' say 7 days from a Padre CPAN release until the engines of
ActiveState have caught up with PPM builds for latest non-wx dependencies.
Hopefully have some build patches soon.
Regards
Mark
On 13/06/2011 14:51, Ahmad Zawawi wrote:
Oops forgot to CC the wxPerl users list :)
---------- Forwarded message ----------
From: Ahmad Zawawi<ahmad.zaw...@gmail.com>
Date: Mon, Jun 13, 2011 at 4:40 PM
Subject: Re: Alien::wxWidgets questions
To: Mark Dootson<mark.doot...@znix.com>
Hi,
Thanks for the quick reply :)
I use mingw-w64 32 and 64 bit gcc compilers to build against all current
versions of ActivePerl. A recent gcc from mingw.org works too.
I was referring the broken ActivePerl PPM gcc + dmake support. The one
you get when you run cpan Alien::wxWidgets (after a fresh ActivePerl
installation) and it tells you that it cannot find a working compiler
and it downloads the one from ActiveState PPM repository. I will post
the exact log if you are interested. VC++ CL is not registered in PATH
unless you explicity call "%VS_STUDIO_HOME%\VC\bin\vcvars32.bat"
first.
Occasionally, in the past, a particular release of ActivePerl broke gcc
compatibility, though I can't remember the last one. (one of the 5.10.1
releases)
For this reason I'm in the habit of still using ExtUtils::FakeConfig,
creating my own libperl5xx.a and loading a Config_w64.pm
( http://www.wxperl.co.uk/building/Config_w64.pm )
- What are the supported Alien::wxWidgets configurations of over
Linux, Mac OS X and other platforms?
Not sure what you mean?
Alien::wxWidgets compiler / platforms tested support matrix. For example:
On Linux, Alien::wxWidgets links to libs or from source. Supports only gcc?
On win32, gcc or VC++ cl (ActivePerl). Only gcc on strawberry and Cygwin.
On Mac, only gcc also?
- How can one could 'require Alien::wxWidgets;' and then call
Alien::wxWidgets->compiler without a 'use Alien::wxWidgets' it?
Please note that I am asking about the supported configurations to
develop a proper Wx::Scintilla test plan. Hopefully, I will get more
tester reports for Wx::Scintilla on different platforms.
P.S. I need PAUSE *co-maintainer permission* on Wx::Event so I can
extend it without the PAUSE indexer complaints.
you can also defeat indexer by splitting the package line
package
Wx::Event;
Fixed in 0.09. Thanks for the tip :)
alternatively, you can add your events in your XS code - which may be the
preferred way for new stuff. See Wx source
ext/richtext/RichText.xs
Thanks, I will take a look at it.
Hope it helps.
Mark
It helped a lot.
Thanks, :)
Ahmad M. Zawawi
use strict;
use Wx::build::MakeMaker;
use Wx::Overload::Driver;
my $driver = Wx::Overload::Driver->new
( files => [ qw( ./XS/ScintillaTextCtrl.xsp ./XS/ScintillaTextEvent.xsp ) ],
header => 'cpp/ovl_const.h',
source => 'cpp/ovl_const.cpp',
);
$driver->process;
wxWriteMakefile(
NAME => 'Wx::Scintilla',
VERSION_FROM => 'lib/Wx/Scintilla.pm',
ABSTRACT => 'Fresh Perl wxWidgets XS bindings for Scintilla editor
component',
AUTHOR => q{Ahmad M. Zawawi <ahmad.zaw...@gmail.com>},
WX_CORE_LIB => 'core base',
REQUIRE_WX => 2.008010,
ON_WX_PLATFORMS => [ 'gtk', 'msw', 'mac' ],
PREREQ_PM => { Wx => '0.99', },
CONFIGURE_REQUIRES => {
'Wx::build::MakeMaker' => 0,
},
META_MERGE => {
resources => {
repository => 'http://svn.perlide.org/padre/trunk/Wx-Scintilla/',
homepage => 'http://padre.perlide.org/',
},
},
LIBS => '-lwx_msw28u_scintilla',
clean => { FILES => 'cpp/ovl_const.h cpp/ovl_const.cpp
overload.lst'},
);