§
    !@Äj}  ã                   óÀ   — d Z ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 g d¢g d¢g d	¢d
œZ
g d¢g d¢g d¢d
œZg d¢g g d
œZg ddgddgd
œZ G d„ dej        ¦  «        ZdS )aœ  distutils.zosccompiler

Contains the selection of the c & c++ compilers on z/OS. There are several
different c compilers on z/OS, all of them are optional, so the correct
one needs to be chosen based on the users input. This is compatible with
the following compilers:

IBM C/C++ For Open Enterprise Languages on z/OS 2.0
IBM Open XL C/C++ 1.1 for z/OS
IBM XL C/C++ V2.4.1 for z/OS 2.4 and 2.5
IBM z/OS XL C/C++
é    N)ÚClassVaré   )Úunix)ÚCompileError)z-m64z-fvisibility=defaultz-fzos-le-char-mode=asciiz-fno-short-enums)
ú-q64ú-qexportallú-qasciiú-qstrictú	-qnocsectú-Wa,asa,goffú
-Wa,xplinkú
-qgonumberú
-qenum=intú-Wc,DLL)r   r   r	   r
   r   r   r   r   r   r   z-qlanglvl=extc99)ú
ibm-openxlúibm-xlclangúibm-xlc)r   r   r	   r
   r   r   r   r   r   r   z-qlanglvl=extended0x)z-fasmz-fno-integrated-asz	-Wa,--ASAz
-Wa,--GOFFz-Wl,dllr   c                   óÞ   ‡ — e Zd ZU dZdZg d¢Zeee         dz           e	d<   g d¢Z
eee                  e	d<   dgZeee                  e	d	<   d
„ Zdˆ fd„	Zd„ Zd„ Z	 	 	 	 	 	 	 	 	 	 dˆ fd„	Zˆ xZS )ÚCompilerÚzoszIBM XL C/C++ Compilers)z.cú.Cú.ccú.cxxú.cppz.mú.sNÚsrc_extensions)r   r   r   r   Ú_cpp_extensionsr   Ú_asm_extensionsc                 óÂ   ‡— ˆfd„dD ¦   «         }t          |¦  «        dk    rdS i }dD ]}d||<   ŒdD ]}d||<   ŒdD ]}d	||<   Œ|                     |d         d¦  «        S )
Nc                 ó’   •— g | ]C}t           j                             |d ¦  «        xŠ¯$t           j                             ‰¦  «        ‘ŒDS )N)ÚosÚenvironÚgetÚpathÚbasename)Ú.0ÚenvvarÚbinarys     €úVC:\Projects\Historical\venv\Lib\site-packages\setuptools/_distutils/compilers/C/zos.pyú
<listcomp>z3Compiler._get_zos_compiler_name.<locals>.<listcomp>z   sT   ø€ ð 
ð 
ð 
àÝœ*Ÿ.š.¨°Ñ6Ô6Ð6�ð
ÝŒG×Ò˜VÑ$Ô$ð
ð 
ð 
ó    )ÚCCÚCXXÚLDSHAREDr   r   )z	ibm-clangzibm-clang64zibm-clang++zibm-clang++64Úclangzclang++zclang-14)Úxlclangz	xlclang++Únjscznjsc++r   )ÚxlcÚxlCzxlc++r   )Úlenr#   )ÚselfÚzos_compiler_namesÚzos_compilersÚcompilerr(   s       @r)   Ú_get_zos_compiler_namezCompiler._get_zos_compiler_namey   sÀ   ø€ ð
ð 
ð 
ð 
à3ð
ñ 
ô 
Ðõ
 Ð!Ñ"Ô" aÒ'Ð'Ø�<àˆð
ð 		3ð 		3ˆHð '3ˆM˜(Ñ#Ð#àBð 	4ð 	4ˆHØ&3ˆM˜(Ñ#Ð#à/ð 	0ð 	0ˆHØ&/ˆM˜(Ñ#Ð#à× Ò Ð!3°AÔ!6¸ÑEÔEÐEr+   Fc                 ó¨   •— t          ¦   «                              ||¬¦  «         |                      ¦   «         | _        |                      ¦   «          d S )N)Úforce)ÚsuperÚ__init__r9   Úzos_compilerÚconfigure_system)r5   Úverboser;   Ú	__class__s      €r)   r=   zCompiler.__init__–   sL   ø€ Ý‰Œ×Ò˜¨ÐÑ.Ô.Ð.Ø ×7Ò7Ñ9Ô9ˆÔØ×ÒÑÔÐÐÐr+   c                 óL  — g }|| j         v r-| j        }|                     t          | j                 ¦  «         n‡|| j        v rR| j        }|                     t          | j                 ¦  «         |                     t          | j                 ¦  «         n,| j        }|                     t          | j                 ¦  «         |                     |¦  «         	 |  	                    ||z   |d|gz   |z   ¦  «         d S # t          j        t          f$ r}	t          |	¦  «        ‚d }	~	ww xY w)Nz-o)r   Úcompiler_cxxÚextendÚ	_cxx_argsr>   r   Úcompiler_soÚ_cc_argsÚ	_asm_argsÚcallÚ
subprocessÚCalledProcessErrorÚOSErrorr   )
r5   ÚobjÚsrcÚextÚcc_argsÚextra_postargsÚpp_optsÚ
local_argsr8   Úmsgs
             r)   Ú_compilezCompiler._compile›   s-  € Øˆ
Ø�$Ô&Ð&Ð&ØÔ(ˆHØ×Ò�i¨Ô(9Ô:Ñ;Ô;Ð;Ð;Ø�DÔ(Ð(Ð(ØÔ'ˆHØ×Ò�h tÔ'8Ô9Ñ:Ô:Ð:Ø×Ò�i¨Ô(9Ô:Ñ;Ô;Ð;Ð;àÔ'ˆHØ×Ò�h tÔ'8Ô9Ñ:Ô:Ð:Ø×Ò˜'Ñ"Ô"Ð"ð	$Ø�IŠI�h Ñ+¨s°D¸#Ð.>Ñ>ÀÑOÑPÔPÐPÐPÐPøÝÔ-­wÐ7ð 	$ð 	$ð 	$Ý˜sÑ#Ô#Ð#øøøøð	$øøøs   Ã!C9 Ã9D#ÄDÄD#c                 ó   — d|z   S )Nz-L© )r5   Údirs     r)   Úruntime_library_dir_optionz#Compiler.runtime_library_dir_option®   s   € Ø�c‰zÐr+   c                 ór  •— t          j        d¦  «        }t          j        ¦   «         r7t          j                             t          j        d¦  «        d|› d�¦  «        }nIt          j                             t          j        d¦  «        t          j        d¦  «        d|› d�¦  «        }t          j                             |¦  «        r|r|                     |¦  «         n|g}|r€|D ]}}|d d …         D ]p}t          j                             ||› d�¦  «        }t          j                             |¦  «        r,|                     |¦  «         |                     |¦  «          nŒqŒ~| 	                    t          | j                 ¦  «         t          ¦   «                              |||||||||	|
|||¦  «         d S )NÚ	LDVERSIONÚabs_builddirÚ	libpythonz.xÚinstalled_baseÚ
platlibdir)Ú	sysconfigÚget_config_varÚis_python_buildr!   r$   ÚjoinÚexistsÚappendÚremoverD   Ú_ld_argsr>   r<   Úlink)r5   Útarget_descÚobjectsÚoutput_filenameÚ
output_dirÚ	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsÚdebugÚextra_preargsrQ   Ú
build_tempÚtarget_langÚ	ldversionÚside_deck_pathrX   ÚlibraryÚlibrary_side_deckrA   s                      €r)   rh   zCompiler.link±   sÚ  ø€ õ$ Ô,¨[Ñ9Ô9ˆ	ÝÔ$Ñ&Ô&ð 
	ÝœWŸ\š\ÝÔ(¨Ñ8Ô8Ø)˜IÐ)Ð)Ð)ñô ˆNˆNõ
  œWŸ\š\ÝÔ(Ð)9Ñ:Ô:ÝÔ(¨Ñ6Ô6Ø)˜IÐ)Ð)Ð)ñô ˆNõ Œ7�>Š>˜.Ñ)Ô)ð 	2Øð 2Ø×%Ò% nÑ5Ô5Ð5Ð5à"0Ð!1�ð  ð 	Ø+ð ð �Ø(¨¨¨œ|ð ð �GÝ(*¬¯ª°S¸W¸.¸.¸.Ñ(IÔ(IÐ%Ý”w—~’~Ð&7Ñ8Ô8ð Ø!×(Ò(¨Ñ1Ô1Ð1Ø&×-Ò-Ð.?Ñ@Ô@Ð@Ø˜ðøð 	×Ò�h tÔ'8Ô9Ñ:Ô:Ð:å‰Œ�ŠØØØØØØØ ØØØØØØñ	
ô 	
ð 	
ð 	
ð 	
r+   )FF)
NNNNNFNNNN)Ú__name__Ú
__module__Ú__qualname__Úcompiler_typeÚdescriptionr   r   ÚlistÚstrÚ__annotations__r   r   r9   r=   rU   rY   rh   Ú__classcell__)rA   s   @r)   r   r   j   s.  ø€ € € € € € Ø€MØ*€Kð2ð 2ð 2€N�H˜T #œY¨Ñ-Ô.ð ð ñ ð ,IÐ+HÐ+H€O�X˜d 3œiÔ(ÐHÐHÑHØ,0¨6€O�X˜d 3œiÔ(Ð1Ð1Ñ1ðFð Fð Fð: ð  ð  ð  ð  ð  ð
$ð $ð $ð&ð ð ð ØØØ!ØØØØØØð@
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
r+   r   )Ú__doc__r!   rJ   r`   Útypingr   Ú r   Úerrorsr   rG   rE   rH   rg   r   rW   r+   r)   ú<module>r†      s[  ððð ð 
€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ðð ð ðð ð ð' ð  €ðFð ð ðð ð ðð ð ð' ð  €	ðF MÐLÐLØØðð €	ð Ø˜vÐ&Ø˜6Ð"ðð €ðG
ð G
ð G
ð G
ð G
ˆtŒ}ñ G
ô G
ð G
ð G
ð G
r+   