Archive-SCS
view release on metacpan or search on metacpan
fatlib/ExtUtils/CppGuess.pm view on Meta::CPAN
package ExtUtils::CppGuess;
use strict;
use warnings;
=head1 NAME
ExtUtils::CppGuess - guess C++ compiler and flags
=head1 SYNOPSIS
With L<Extutils::MakeMaker>:
use ExtUtils::CppGuess;
my $guess = ExtUtils::CppGuess->new;
WriteMakefile
( # MakeMaker args,
$guess->makemaker_options,
);
With L<Module::Build>:
my $guess = ExtUtils::CppGuess->new;
my $build = Module::Build->new
( # Module::Build arguments
$guess->module_build_options,
);
$build->create_build_script;
=head1 DESCRIPTION
C<ExtUtils::CppGuess> attempts to guess the system's C++ compiler
that is compatible with the C compiler that your perl was built with.
It can generate the necessary options to the L<Module::Build>
constructor or to L<ExtUtils::MakeMaker>'s C<WriteMakefile>
function.
=head1 ENVIRONMENT
As of 0.24, the environment variable C<CXX>
defines the obvious value, and will be used instead of any detection.
Supplied arguments to L</new> will still win.
=head1 METHODS
=head2 new
Creates a new C<ExtUtils::CppGuess> object.
Takes the path to the C compiler as the C<cc> argument,
but falls back to the value of C<$Config{cc}>, which should
be what you want anyway.
You can specify C<extra_compiler_flags> and C<extra_linker_flags>
(as strings) which will be merged in with the auto-detected ones.
=head2 module_build_options
Returns the correct options to the constructor of C<Module::Build>.
These are:
extra_compiler_flags
extra_linker_flags
config => { cc => ... }, # as of 0.15
Please note the above may have problems on Perl <= 5.8 with
L<ExtUtils::CBuilder> <= 0.280230 due to a Perl RE issue.
=head2 makemaker_options
Returns the correct options to the C<WriteMakefile> function of
C<ExtUtils::MakeMaker>.
These are:
CCFLAGS
dynamic_lib => { OTHERLDFLAGS => ... }
CC # as of 0.15
If you specify the extra compiler or linker flags in the
constructor, they'll be merged into C<CCFLAGS> or
C<OTHERLDFLAGS> respectively.
=head2 is_gcc
Returns true if the detected compiler is in the gcc family.
=head2 is_msvc
Returns true if the detected compiler is in the MS VC family.
=head2 is_clang
Returns true if the detected compiler is in the Clang family.
=head2 is_sunstudio
Returns true if the detected compiler is in the Sun Studio family.
=head2 add_extra_compiler_flags
Takes a string as argument that is added to the string of extra compiler
( run in 1.428 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )