|
NAMEExtUtils::CppGuess - guess C++ compiler and flagsSYNOPSISWith 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. METHODSnewCreates 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_optionsReturns 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_optionsReturns 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_gccReturns true if the detected compiler is in the gcc family.is_msvcReturns true if the detected compiler is in the MS VC family.is_clangReturns true if the detected compiler is in the Clang family.is_sunstudioReturns true if the detected compiler is in the Sun Studio family.add_extra_compiler_flagsTakes a string as argument that is added to the string of extra compiler flags.add_extra_linker_flagsTakes a string as argument that is added to the string of extra linker flags.compiler_commandReturns 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_flagsThe same as returned as the Module::Build "extra_linker_flags".Added in 0.13. iostream_fnameReturns 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_defsReturns 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
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. AUTHORMattia Barbon <mbarbon@cpan.org>Steffen Mueller <smueller@cpan.org> Tobias Leich <froggs@cpan.org> COPYRIGHT AND LICENSECopyright 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.
Visit the GSP FreeBSD Man Page Interface. |