§
    Ü+ög„  ã                   ó�   — d Z ddlZddlmZ ddlmZ ddlmZ g d¢dgddgg d	¢g d
¢ddgdgdgdgddgg d¢ddgdœZ	 d„ Z	d„ Z
d„ ZdS )a]  
Try to detect a C++ compiler from the list of supported compilers (g++, msvc, etc)::

	def options(opt):
		opt.load('compiler_cxx')
	def configure(cnf):
		cnf.load('compiler_cxx')
	def build(bld):
		bld.program(source='main.cpp', target='app')

The compilers are associated to platforms in :py:attr:`waflib.Tools.compiler_cxx.cxx_compiler`. To register
a new C++ compiler named *cfoo* (assuming the tool ``waflib/extras/cfoo.py`` exists), use::

	from waflib.Tools.compiler_cxx import cxx_compiler
	cxx_compiler['win32'] = ['cfoo', 'msvc', 'gcc']

	def options(opt):
		opt.load('compiler_cxx')
	def configure(cnf):
		cnf.load('compiler_cxx')
	def build(bld):
		bld.program(source='main.c', target='app')

Not all compilers need to have a specific tool. For example, the clang compilers can be detected by the gcc tools when using::

	$ CXX=clang waf configure
é    N)Úccroot)ÚUtils)Údebug)Úmsvcúg++úclang++r   r   )zxlc++r   r   )r   r   Úicpczsunc++)r   r   r   r	   )Úwin32ÚcygwinÚdarwinÚaixÚlinuxÚsunosÚirixÚhpuxÚosf1VÚgnuÚjavaÚdefaultc                  óž   — t          j        ¦   «         } t                               | t          d         ¦  «        }d                     |¦  «        S )Nr   ú )r   Úunversioned_sys_platformÚcxx_compilerÚgetÚjoin)Úbuild_platformÚpossible_compiler_lists     ú./git_repos/avwlv2/waflib/Tools/compiler_cxx.pyÚdefault_compilersr   <   s>   € ÝÔ0Ñ2Ô2€Ý&×*Ò*¨>½<È	Ô;RÑSÔSÐØ�ŠÐ'Ñ(Ô(Ð(ó    c                 óF  — 	 | j         j        pt          ¦   «         }n%# t          $ r |                      d¦  «         Y nw xY wt          j        d|¦  «        D �]3}| j                             ¦   «          |  	                    d|z  ¦  «         	 |  
                    |¦  «         | j        j        rU|                      | j                             d¦  «        ¦  «         || j        _        | j                             ¦   «           dS | j                             ¦   «          |                      d¦  «         ŒÚ# | j        j        $ rI}| j                             ¦   «          |                      d¦  «         t'          d|¦  «         Y d}~�Œ-d}~ww xY w|                      d¦  «         dS )	z~
	Detects a suitable C++ compiler

	:raises: :py:class:`waflib.Errors.ConfigurationError` when no suitable compiler is found
	z*Add options(opt): opt.load('compiler_cxx')z[ ,]+zChecking for %r (C++ compiler)ÚCXXFzcompiler_cxx: %rNz#could not configure a C++ compiler!)ÚoptionsÚcheck_cxx_compilerr   ÚAttributeErrorÚfatalÚreÚsplitÚenvÚstashÚ	start_msgÚloadr"   Úend_msgÚget_flatÚCOMPILER_CXXÚcommitÚrevertÚerrorsÚConfigurationErrorr   )ÚconfÚtest_for_compilerÚcompilerÚes       r   Ú	configurer8   A   s³  € ð;Ø”lÔ5ÐLÕ9JÑ9LÔ9LÐÐøÝð ;ð ;ð ;Ø‡*‚*Ð9Ñ:Ô:Ð:Ð:Ð:ð;øøøõ ”˜'Ð#4Ñ5Ô5ð 4ñ 4€XØ„(‡.‚.ÑÔÐØ‡.‚.Ð1°HÑ<Ñ=Ô=Ð=ðØ‡9‚9ˆXÑÔÐð „h„lð 
Ø‡L‚L�”×"Ò" 5Ñ)Ô)Ñ*Ô*Ð*Ø$€D„HÔØ„H‡O‚OÑÔÐØ	€E€EØ„8‡?‚?ÑÔÐØ‡<‚<�ÑÔÐÐøð 
ŒÔ	'ð  ð  ð  Ø„8‡?‚?ÑÔÐØ‡<‚<�ÑÔÐÝÐ	˜QÑÔÐÐÐÐÐÑøøøøð øøøð ‡*‚*Ð2Ñ3Ô3Ð3Ð3Ð3s$   ‚ �?¾?ÂD1Ä1F	Å >FÆF	c                 ó  — t          ¦   «         }|                      d¦  «         |                      d¦  «        }|                     ddd|z  d¬¦  «         |                     ¦   «         D ]}|                      d|z  ¦  «         ŒdS )	zq
	This is how to provide compiler preferences on the command-line::

		$ waf configure --check-cxx-compiler=gxx
	zcxx_*.pyzConfiguration optionsz--check-cxx-compilerNz!list of C++ compilers to try [%s]r$   )r   ÚhelpÚdestz%s)r   Úload_special_toolsÚadd_option_groupÚ
add_optionr(   r,   )Úoptr5   Úcxx_compiler_optsÚxs       r   r#   r#   `   s§   € õ 'Ñ(Ô(ÐØ×Ò˜
Ñ#Ô#Ð#Ø×)Ò)Ð*AÑBÔBÐØ×ÒÐ4¸dØ*Ð->Ñ>Øð ñ ô ð ð ×
!Ò
!Ñ
#Ô
#ð ð €QØ‡(‚(ˆ4�!‰8ÑÔÐÐðð r    )Ú__doc__r'   Úwaflib.Toolsr   Úwaflibr   Úwaflib.Logsr   r   r   r8   r#   © r    r   ú<module>rG      sò   ðð
ð ð: 
€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð %Ð
$Ð
$Øˆ'Ø�eÐ
Ø
%Ð
%Ð
%Ø
$Ð
$Ð
$Ø�UÐ
Øˆ'Øˆ'Øˆ'Ø�)Ð
Ø
,Ð
,Ð
,Ø�uÐðð €ðð)ð )ð )ð
4ð 4ð 4ð>ð ð ð ð r    