Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ExtUtils::CppGuess(3) User Contributed Perl DocumentationExtUtils::CppGuess(3)

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.

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.

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.

perl v5.32.1			  2020-01-23		 ExtUtils::CppGuess(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ExtUtils::CppGuess&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help