[Module::Build] Re: [PATCH] VMS-specific arg_defines for CBuilder
Status: Beta
Brought to you by:
kwilliams
|
From: Craig B. <cra...@ma...> - 2006-03-13 23:12:16
|
On Monday, March 13, 2006, at 04:06PM, Ken Williams <ke...@ma...> wrote:
>BTW, is there a regression test that could have exposed this issue?
>
> -Ken
It did show up in a number of the Module::Build failures, such as xs.t. Anything compiling XS-generated C would hit it since the version is defined on the command line.
>On Mar 12, 2006, at 7:37 PM, Ken Williams wrote:
>
>> Thanks Craig. Yup, CBuilder is separately maintained, the nexus
>> for development is often the Module::Build list.
>>
>> I'll apply this patch and make a new release.
>>
>> -Ken
>>
>>
>> On Mar 12, 2006, at 6:01 PM, Craig A. Berry wrote:
>>
>>> The attached provides the special handling needed for C compiler
>>> defines
>>> in ExtUtils::CBuilder. This is against blead but I'm hoping the right
>>> number after -p supplied to patch will apply cleanly to the CPAN
>>> version
>>> (which is separately maintained, right?).
>>> --- lib/ExtUtils/CBuilder/Platform/VMS.pm;-0 Wed Sep 28 19:54:07 2005
>>> +++ lib/ExtUtils/CBuilder/Platform/VMS.pm Sat Mar 11 17:53:09 2006
>>> @@ -9,6 +9,21 @@ $VERSION = '0.12';
>>>
>>> sub need_prelink { 0 }
>>>
>>> +sub arg_defines {
>>> + my ($self, %args) = @_;
>>> +
>>> + s/"/""/g foreach values %args;
>>> +
>>> + my $config_defines = '';
>>> +
>>> + # VMS can only have one define qualifier; add the one from
>>> config, if any.
>>> + if ($self->{config}{ccflags} =~ s{/def[^=]+(?:=)+(?:\()?([^\/\)]
>>> *)} {}i) {
>>> + $config_defines = "$1,";
>>> + }
>>> +
>>> + return ('/define=(' . $config_defines . join(',', map "\"$_=
>>> $args{$_}\"", keys %args) . ')');
>>> +}
>>> +
>>> sub arg_include_dirs {
>>> my ($self, @dirs) = @_;
>>>
>>
>
>
>
|