Ë
    ¨Õ°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y)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                 ó<  — dD �cg c]C  }t         j                  j                  |d «      x}rt         j                  j	                  |«      ‘ŒE }}t        |«      dk(  ryi }dD ]  }d||<   Œ	 dD ]  }d||<   Œ	 dD ]  }d||<   Œ	 |j                  |d   d«      S c c}w )	N)Ú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   )ÚosÚenvironÚgetÚpathÚbasenameÚlen)ÚselfÚenvvarÚbinaryÚzos_compiler_namesÚzos_compilersÚcompilers         ú[/var/www/mission/venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/zos.pyÚ_get_zos_compiler_namezCompiler._get_zos_compiler_namey   s×   € ð 4ö
àÜŸ*™*Ÿ.™.¨°Ó6Ð6�Ð6ô �G‰G×Ñ˜VÕ$ð
Ðð 
ô
 Ð!Ó" aÒ'Øàˆð
ò 		3ˆHð '3ˆM˜(Ò#ð		3ð Cò 	4ˆHØ&3ˆM˜(Ò#ð	4ð 0ò 	0ˆHØ&/ˆM˜(Ò#ð	0ð × Ñ Ð!3°AÑ!6¸ÓEÐEùò5
s   …ABc                 ór   •— t         ‰| �  ||¬«       | j                  «       | _        | j	                  «        y )N)Úforce)ÚsuperÚ__init__r5   Úzos_compilerÚconfigure_system)r.   Úverboser7   Ú	__class__s      €r4   r9   zCompiler.__init__–   s2   ø€ Ü‰Ñ˜¨ÐÔ.Ø ×7Ñ7Ó9ˆÔØ×ÑÕó    c                 óR  — g }|| j                   v r/| j                  }|j                  t        | j                     «       n�|| j
                  v rQ| j                  }|j                  t        | j                     «       |j                  t        | j                     «       n.| j                  }|j                  t        | j                     «       |j                  |«       	 | j                  ||z   |d|gz   |z   «       y # 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   )
r.   ÚobjÚsrcÚextÚcc_argsÚextra_postargsÚpp_optsÚ
local_argsr3   Úmsgs
             r4   Ú_compilezCompiler._compile›   s  € Øˆ
Ø�$×&Ñ&Ñ&Ø×(Ñ(ˆHØ×Ñœi¨×(9Ñ(9Ñ:Õ;Ø�D×(Ñ(Ñ(Ø×'Ñ'ˆHØ×Ñœh t×'8Ñ'8Ñ9Ô:Ø×Ñœi¨×(9Ñ(9Ñ:Õ;à×'Ñ'ˆHØ×Ñœh t×'8Ñ'8Ñ9Ô:Ø×Ñ˜'Ô"ð	$Ø�I‰I�h Ñ+¨s°D¸#Ð.>Ñ>ÀÑOÕPøÜ×-Ñ-¬wÐ7ò 	$Ü˜sÓ#Ð#ûð	$ús   ÃC= Ã=D&ÄD!Ä!D&c                 ó   — d|z   S )Nz-L© )r.   Údirs     r4   Úruntime_library_dir_optionz#Compiler.runtime_library_dir_option®   s   € Ø�c‰zÐr>   c                 ó6  •— t        j                  d«      }t        j                  «       r8t        j                  j                  t        j                  d«      d|› d�«      }nKt        j                  j                  t        j                  d«      t        j                  d«      d|› d�«      }t        j                  j                  |«      r|r|j                  |«       n|g}|rw|D ]r  }|d d  D ]h  }t        j                  j                  ||› d�«      }t        j                  j                  |«      sŒF|j                  |«       |j                  |«        Œr Œt |j                  t        | j                     «       t        ‰| �5  |||||||||	|
|||«       y )NÚ	LDVERSIONÚabs_builddirÚ	libpythonz.xÚinstalled_baseÚ
platlibdir)Ú	sysconfigÚget_config_varÚis_python_buildr(   r+   ÚjoinÚexistsÚappendÚremoverA   Ú_ld_argsr:   r8   Úlink)r.   Útarget_descÚobjectsÚoutput_filenameÚ
output_dirÚ	librariesÚlibrary_dirsÚruntime_library_dirsÚexport_symbolsÚdebugÚextra_preargsrN   Ú
build_tempÚtarget_langÚ	ldversionÚside_deck_pathrU   ÚlibraryÚlibrary_side_deckr=   s                      €r4   re   zCompiler.link±   sv  ø€ ô$ ×,Ñ,¨[Ó9ˆ	Ü×$Ñ$Ô&ÜŸW™WŸ\™\Ü×(Ñ(¨Ó8Ø˜I˜; bÐ)ó‰Nô
  ŸW™WŸ\™\Ü×(Ñ(Ð)9Ó:Ü×(Ñ(¨Ó6Ø˜I˜; bÐ)óˆNô �7‰7�>‰>˜.Ô)ÙØ×%Ñ% nÕ5à"0Ð!1�ñ  Ø+ò �Ø(©˜|ò �GÜ(*¯©¯©°S¸W¸IÀR¸.Ó(IÐ%Ü—w‘w—~‘~Ð&7Õ8Ø!×(Ñ(¨Ô1Ø&×-Ñ-Ð.?Ô@Ùñðð 	×Ñœh t×'8Ñ'8Ñ9Ô:ä‰‰ØØØØØØØ ØØØØØØõ	
r>   )FF)
NNNNNFNNNN)Ú__name__Ú
__module__Ú__qualname__Úcompiler_typeÚdescriptionr   r   ÚlistÚstrÚ__annotations__r   r   r5   r9   rR   rV   re   Ú__classcell__)r=   s   @r4   r   r   j   s•   ø… Ø€MØ*€Kò2€N�H˜T #™Y¨Ñ-Ñ.ó ò ,I€O�X˜d 3™iÑ(ÓHØ,0¨6€O�X˜d 3™iÑ(Ó1òFõ: ò
$ò&ð ØØØ!ØØØØØØ÷@
ñ @
r>   r   )Ú__doc__r(   rG   r]   Útypingr   Ú r   Úerrorsr   rD   rB   rE   rd   r   rT   r>   r4   ú<module>rƒ      s�   ðñó 
Û Û Ý å Ý  òòòñ' €òFòòñ' €	òF MØØñ€	ð Ø˜vÐ&Ø˜6Ð"ñ€ôG
ˆt�}‰}õ G
r>   