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'},
);



Reply via email to