44 lines
1.0 KiB
Perl
44 lines
1.0 KiB
Perl
package ExtUtils::CBuilder::Platform::darwin;
|
|
|
|
use warnings;
|
|
use strict;
|
|
use ExtUtils::CBuilder::Platform::Unix;
|
|
use Config;
|
|
|
|
our $VERSION = '0.280238'; # VERSION
|
|
our @ISA = qw(ExtUtils::CBuilder::Platform::Unix);
|
|
|
|
my ($osver) = split /\./, $Config{osvers};
|
|
my $apple_cor = $^X eq "/usr/bin/perl" && $osver >= 18;
|
|
|
|
sub compile {
|
|
my $self = shift;
|
|
my $cf = $self->{config};
|
|
|
|
# -flat_namespace isn't a compile flag, it's a linker flag. But
|
|
# it's mistakenly in Config.pm as both. Make the correction here.
|
|
local $cf->{ccflags} = $cf->{ccflags};
|
|
$cf->{ccflags} =~ s/-flat_namespace//;
|
|
|
|
# XCode 12 makes this fatal, breaking tons of XS modules
|
|
$cf->{ccflags} .= ($cf->{ccflags} ? ' ' : '').'-Wno-error=implicit-function-declaration';
|
|
|
|
$self->SUPER::compile(@_);
|
|
}
|
|
|
|
sub arg_include_dirs {
|
|
my $self = shift;
|
|
|
|
if ($apple_cor) {
|
|
my $perl_inc = $self->perl_inc;
|
|
return map {
|
|
$_ eq $perl_inc ? ("-iwithsysroot", $_ ) : "-I$_"
|
|
} @_;
|
|
}
|
|
else {
|
|
return $self->SUPER::arg_include_dirs(@_);
|
|
}
|
|
}
|
|
|
|
1;
|