ó
    F±‰j´  ã                   ó   • S r SrSSKrSSKrSSKrS!S jr\R                  " S5      r\" S5      r\" S5      r	\" S	5      r
\" S
5      r\\
:X  a  SrO!\R                  R                  \SS 5      S   r\" S\R                  R                  SS5      5      r\" S5      S-   \R                  R                  SS5      -   r\" S\R                  R                  S\5      5      r\" S5      r\" S5      r\" S5      r\R
                  " S5      rS rS rS rS"S jrS rS rS#S jrS#S jrS$S jrS r S r!\"S:X  a  \!" \RF                  S S 5        gg)%zÑ
Compile a Python script into an executable that embeds CPython.
Requires CPython to be built as a shared library ('libpythonX.Y').

Basic usage:

    python -m Cython.Build.BuildExecutable [ARGS] somefile.py
Té    NÚ c                 ó@   • [         R                  " U 5      =(       d    U$ ©N)Ú	sysconfigÚget_config_var)ÚnameÚdefaults     ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\Cython/Build/BuildExecutable.pyr   r      s   € Ü×#Ò# DÓ)×4¨WÐ4ó    ÚincludeÚLIBDIRÚLIBPLÚLIBRARYÚ	LDLIBRARYé   ÚCCÚCFLAGSÚ ÚLINKCCÚLINKFORSHAREDÚLIBSÚSYSLIBSÚEXEc                 óv   • [         (       a.  U(       a  X-  n [        R                  R                  U S-   5        g g )NÚ
)ÚDEBUGÚsysÚstderrÚwrite)ÚmsgÚargss     r
   Ú_debugr"   )   s,   € ß‚uÞØ‘*ˆCÜ�
‰
×Ñ˜˜t™Õ$ð r   c                  ó„  • [        S[        5        [        S[        5        [        S[        5        [        S[        5        [        S[
        5        [        S[        5        [        S[        5        [        S[        5        [        S	[        5        [        S
[        5        [        S[        5        [        S[        5        g )Nz
INCDIR: %szLIBDIR1: %szLIBDIR2: %sz	PYLIB: %szPYLIB_DYN: %szCC: %sz
CFLAGS: %sz
LINKCC: %szLINKFORSHARED: %szLIBS: %szSYSLIBS: %szEXE_EXT: %s)r"   ÚINCDIRÚLIBDIR1ÚLIBDIR2ÚPYLIBÚ	PYLIB_DYNr   r   r   r   r   r   ÚEXE_EXT© r   r
   Údump_configr+   0   s{   € Ü
ˆ<œÔ Ü
ˆ=œ'Ô"Ü
ˆ=œ'Ô"Ü
ˆ;œÔÜ
ˆ?œIÔ&Ü
ˆ8”RÔÜ
ˆ<œÔ Ü
ˆ<œÔ Ü
Ð¤Ô.Ü
ˆ:”tÔÜ
ˆ=œ'Ô"Ü
ˆ=œ'Õ"r   c                 óê   • / nS n[        U 5       HR  u  p4UR                  S5      (       a  UR                  U5        O#US;   a  UR                  U5        OUnXS-   S  n   OUnMT     [        S5      eXQU 4$ )NÚ-)z-Xz--directiveé   zno input file provided)Ú	enumerateÚ
startswithÚappendÚ
ValueError)r!   Úcy_argsÚlast_argÚiÚargÚ
input_files         r
   Ú_parse_argsr8   ?   s   € Ø€GØ€HÜ˜D–/‰ˆØ�>‰>˜#×ÑØ�N‰N˜3ÕØÐ.Ó.Ø�N‰N˜3ÕàˆJØ˜!™˜�:ˆDÙØŠñ "ô Ð1Ó2Ð2à Ð$Ð$r   c                 óâ   • U(       a  SR                  U 5      n [        U 5        O[        SR                  U 5      5        SS KnUR                  XS9nU(       a  [        R
                  " U5        g g )Nr   r   ©Úshell)Újoinr"   Ú
subprocessÚcallr   Úexit)Úcmdr;   r=   Ú
returncodes       r
   ÚruncmdrB   R   sP   € ÞØ�h‰h�s‹mˆÜˆs�äˆs�x‰x˜‹}ÔãØ—‘ �Ð2€JæÜ�Š�Õð r   c           	      ój  • [        [        SU [        -   U S-   S[        -   S[        -   /[
        =(       a	    S[
        -   =(       d(    [        R                  R                  [        [        5      /-   [        R                  5       -   [        R                  5       -   [        R                  5       -   5        g )Nú-oú.oz-Lz-l)rB   r   r)   r%   r&   r(   ÚosÚpathr<   r'   r   Úsplitr   r   ©Úbasenames    r
   ÚclinkrK   `   sƒ   € Ü
ŒF�D˜(¤WÑ,¨h°t©m¸TÄ'¹\È4ÔPWÉ<ÐXÜ×,˜T¤)™^×L´·±·±¼WÄeÓ0LÐMñNä�Z‰Z‹\ñä#ŸM™M›Oñ,ä.;×.AÑ.AÓ.CñDõ Er   c           	      ór   • [        [        SSU S-   U S-   S[        -   /[        R	                  5       -   5        g )Nz-crD   rE   z.cz-I)rB   r   r$   r   rH   rI   s    r
   ÚccompilerM   f   s.   € Ü
ŒB��d˜H T™M¨8°D©=¸$Ä¹-ÐHÌ6Ï<É<Ë>ÑYÕZr   c                 ó
  • SSK JnJnJn  UR	                  [        U=(       d    S5      SU /-   5      u  p[        SUR                  U 5        UR                  XQ5      nUR                  S:”  a  [        R                  " S5        g g )Né   )ÚVersionÚCmdLineÚMainr*   z--embedzUsing Cython %s to compile %sr   r.   )ÚCompilerrP   rQ   rR   Úparse_command_lineÚlistr"   ÚversionÚcompileÚ
num_errorsr   r?   )r7   ÚoptionsrP   rQ   rR   ÚsourcesÚresults          r
   Ú	cycompiler\   j   sl   € ß1Ñ1Ø×1Ñ1´$°w·}À"Ó2EÈÐT^ÐH_Ñ2_Ó`Ñ€GÜ
Ð*¨G¯O©O¸ZÔHØ�\‰\˜'Ó+€FØ×Ñ˜1ÓÜ�Š��ð r   c                 ól   • [        [        R                  R                  U 5      /[	        U5      -   SS9  g )NFr:   )rB   rF   rG   ÚabspathrU   )Úprogram_namer!   s     r
   Ú	exec_filer`   s   s%   € Ü
ŒB�G‰G�O‰O˜LÓ)Ð*¬T°$«ZÑ7¸uÓEr   c                 ó|  • [         R                  R                  U 5      S   nU[        -   nU(       dK  [         R                  R	                  U5      [         R                  R	                  U 5      :X  a  [        S5      eU(       d–  [         R                  R                  U5      (       ar  [         R                  R                  U 5      (       aN  [         R                  R                  U 5      [         R                  R                  U5      ::  a  [        SU5        U$ [        X5        [        U5        [        U5        U$ )z]
Build an executable program from a Cython module.

Returns the name of the executable file.
r   z?Input and output file names are the same, refusing to overwritez'File is up to date, not regenerating %s)rF   rG   Úsplitextr)   r^   r2   ÚexistsÚgetmtimer"   r\   rM   rK   )r7   Úcompiler_argsÚforcerJ   Úexe_files        r
   Úbuildrh   w   sÐ   € ô �w‰w×Ñ 
Ó+¨AÑ.€HØœ'Ñ!€HÞ”R—W‘W—_‘_ XÓ.´"·'±'·/±/À*Ó2MÓMÜÐZÓ[Ð[Þ”b—g‘g—n‘n X×.Ñ.´2·7±7·>±>À*×3MÑ3MÜ—‘× Ñ  Ó,´·±×0@Ñ0@ÀÓ0JÓJÜÐ8¸(ÔCØˆÜˆjÔ(ÜˆXÔÜ	ˆ(„OØ€Or   c                 ó4   • [        U 5      u  p[        X5        g)z‰
Build an executable program from a Cython module and run it.

Arguments after the module name will be passed verbatimly to the program.
N)Ú_buildr`   )r!   r_   s     r
   Úbuild_and_runrk   ‹   s   € ô   ›Ñ€LÜˆlÕ!r   c                 ó:   • [        U 5      u  pn [        X5      nX04$ r   )r8   rh   )r!   r7   r3   r_   s       r
   rj   rj   •   s$   € Ü +¨DÓ 1Ñ€J˜Ü˜Ó-€LØÐÐr   Ú__main__r.   )r   )T)r*   )r*   F)$Ú__doc__r   r   rF   r   r   Úget_pathr$   r%   r&   r'   r(   rG   rb   ÚenvironÚgetr   r   r   r   r   r   r)   r"   r+   r8   rB   rK   rM   r\   r`   rh   rk   rj   Ú__name__Úargvr*   r   r
   Ú<module>rt      sg  ðñð 	€ã 
Û 	Û ô5ð 
×	Ò	˜IÓ	&€Ù
˜Ó
"€Ù
˜Ó
!€Ù�yÓ!€Ù˜;Ó'€	Ø�Óà�Ià—‘× Ñ  ¨1¨2 Ó/°Ñ2€Iá�D˜"Ÿ*™*Ÿ.™.¨¨rÓ2Ó3€Ù	˜Ó	! CÑ	'¨"¯*©*¯.©.¸À2Ó*FÑ	F€Ù	˜ "§*¡*§.¡.°¸2Ó">Ó	?€Ù˜Ó/€Ù�fÓ€Ù
˜Ó
#€Ø
×
"Ò
" 5Ó
)€ò%ò#ò%ô&òEò[ôôFôò("òð ˆzÓÙ
ˆ3�8‰8�A�Bˆ<Õð r   