Provided by: libextutils-cppguess-perl_0.26-1_all bug

NAME

       ExtUtils::CppGuess - guess C++ compiler and flags

SYNOPSIS

       With Extutils::MakeMaker:

           use ExtUtils::CppGuess;

           my $guess = ExtUtils::CppGuess->new;

           WriteMakefile
             ( # MakeMaker args,
               $guess->makemaker_options,
               );

       With Module::Build:

           my $guess = ExtUtils::CppGuess->new;

           my $build = Module::Build->new
             ( # Module::Build arguments
               $guess->module_build_options,
               );
           $build->create_build_script;

DESCRIPTION

       "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 Module::Build constructor or to
       ExtUtils::MakeMaker's "WriteMakefile" function.

ENVIRONMENT

       As of 0.24, the environment variable "CXX" defines the obvious value, and will be used
       instead of any detection.  Supplied arguments to "new" will still win.

METHODS

   new
       Creates a new "ExtUtils::CppGuess" object.  Takes the path to the C compiler as the "cc"
       argument, but falls back to the value of $Config{cc}, which should be what you want
       anyway.

       You can specify "extra_compiler_flags" and "extra_linker_flags" (as strings) which will be
       merged in with the auto-detected ones.

   module_build_options
       Returns the correct options to the constructor of "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 ExtUtils::CBuilder <= 0.280230
       due to a Perl RE issue.

   makemaker_options
       Returns the correct options to the "WriteMakefile" function of "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 "CCFLAGS" or "OTHERLDFLAGS" respectively.

   is_gcc
       Returns true if the detected compiler is in the gcc family.

   is_msvc
       Returns true if the detected compiler is in the MS VC family.

   is_clang
       Returns true if the detected compiler is in the Clang family.

   is_sunstudio
       Returns true if the detected compiler is in the Sun Studio family.

   add_extra_compiler_flags
       Takes a string as argument that is added to the string of extra compiler flags.

   add_extra_linker_flags
       Takes a string as argument that is added to the string of extra linker flags.

   compiler_command
       Returns the string that can be passed to "system" to execute the compiler.  Will include
       the flags returned as the Module::Build "extra_compiler_flags".

       Added in 0.13.

   linker_flags
       The same as returned as the Module::Build "extra_linker_flags".

       Added in 0.13.

   iostream_fname
       Returns the filename to "#include" to get iostream capability.

       This can be used a bit creatively to be portable in one's XS files, as the tests for this
       module need to be:

         # in Makefile.PL:
         $guess->add_extra_compiler_flags(
           '-DINCLUDE_DOT=' .
           ($guess->iostream_fname =~ /\./ ? 1 : 0)
         );

         // in your .xs file:
         #if INCLUDE_DOT
         #include <string.h>
         #else
         #include <string>
         #endif

       Added in 0.15.

   cpp_flavor_defs
       Returns the text for a header that "#define"s "__INLINE_CPP_STANDARD_HEADERS" and
       "__INLINE_CPP_NAMESPACE_STD" if the standard headers and namespace are available. This is
       determined by trying to compile C++ with "#define <iostream>" - if it succeeds, the
       symbols will be defined, else commented.

       Added in 0.15.

   cpp_standard_flag
         $guess->cpp_standard_flag( $standard_name )

       Given a string $standard_name that is currently one of

       •   "C++98"

       •   "C++11"

       •   "C++14"

       •   "C++17"

       returns a string with a flag that can be used to tell the compiler to support that version
       of the C++ standard or dies if version is not supported.

       Added in version v0.22.

AUTHOR

       Mattia Barbon <mbarbon@cpan.org>

       Steffen Mueller <smueller@cpan.org>

       Tobias Leich <froggs@cpan.org>

COPYRIGHT AND LICENSE

       Copyright 2010, 2011 by Mattia Barbon.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.