
    ?e                         d dl Z d dlZd dlZd dlZddlmZmZ ddlmZm	Z	m
Z
 d Z	 	 dd	Zd
 Zd Z	 	 ddZd Zd Zd Zd ZdS )    N   )SIP_VERSIONSIP_VERSION_STR   )get_module_source_dirget_sip_module_versionresolve_abi_versionc                    t          |                              d          d         }||                     dd          }t          | ||          }	|dz   |	d         z   }
d}d}|r`t          j                            ||
          }
t          j                            ||          }t          j                            ||          }|rt          |
||	|           |rt          |||	           |rt          |||	           dS dS )	z. Create the various elements of a sip module. .r   N_-@SIP_MODULE_VERSION@sip.hzsip.rst)	r	   splitreplace_create_patchesospathjoin_create_sdist_create_sip_file)
sip_moduleabi_versionprojectsdist	setup_cfgsip_hsip_rst
target_dirabi_major_versionpatches	sdist_dirsip_h_fn
sip_rst_fns                6lib/python3.11/site-packages/sipbuild/module/module.pymoduler&   #   s#   
 ,K88>>sCCAF$$S#.. j*;WEEG #(> ??IHJ :GLLY77	7<<
H55W\\*j99
  Hi!2GYGGG ?#4g>>> A%6@@@@@A A     Tc                 h    t          || |          }t          dt          |           ||           dS )z Copy the sip.h file. )version_infor   N)r   _install_source_filer   )r    r   r   r*   r!   s        r%   
copy_sip_hr,   E   sO     j*;%' ' 'G"78I"J"J! ! ! ! !r'   c                     t          j        t          j                            t          |           d          |           dS )z Copy the sip.pyi file. sip.pyiN)shutilcopyr   r   r   r   )r    r   s     r%   copy_sip_pyir1   O   sB     KGLL./@AA9MM    r'   c                    t          | |           t          |           }g }t          j        |          D ]}|                    d          s*|                    d          s|                    d          rt          j                            ||          }t          j                            ||          }t          j        ||           |                    d          s|	                    |           |S )z1 Copy the module sources as a non-shared module. z.cz.cppz.h)
r,   r   r   listdirendswithr   r   r/   copyfileappend)r    r   module_source_dirsourcesfnsrc_fndst_fns          r%   copy_nonshared_sourcesr<   W   s      *--- ..?@@Gj*++ ' ';;t 	'F 3 3 	'r{{47H7H 	'W\\"3R88FW\\*b11FOFF+++;;t$$ 'v&&&Nr'   c                    |                      d          }d                    |dd                   }|d         }| dk    }|rt          }t          }	nd}d}	| ||t	          |          | || rdndd	|z   |rdndt          |          |	d
S )z Return a dict of the patches. r   Nz	PyQt5.sipr   r(   10PyInit_)z@SIP_MODULE_FQ_NAME@z@SIP_MODULE_PROJECT_NAME@z@SIP_MODULE_PACKAGE_NAME@r   z@_SIP_MODULE_FQ_NAME@z@_SIP_MODULE_NAME@z@_SIP_MODULE_SHARED@z@_SIP_MODULE_ENTRY@z@_SIP_MODULE_LEGACY@z@_SIP_VERSION@z@_SIP_VERSION_STR@)r   r   r   r   r   hex)
r   r    r   r*   sip_module_partssip_module_package_namesip_module_namelegacysip_versionsip_version_strs
             r%   r   r   m   s     "'',,!hh'7'<==&r*O K'F !)
 )3(/(?(>0A)C )C )3(7/9(Bs(1O(C/5(>3(+K(8(8(7!  r'   c                    t          j        | d           t          j        |            t	          |          }t          j        |          D ]z}|dv r|dk    r:|                    d          r%|dd         }|dk    s|t          ||| |           Gt          j        t          j	        
                    ||          |            {| t          j	        
                    |d	          }t          |t          j	        
                    | d
          |           t          j                    }t          j        |            t          j        t           j        dddddg           t          j        |           t          j        |            dS )z Create the sdist. T)ignore_errors)setup.cfg.inr.   z
sip.rst.inzMANIFEST.in.inNREADMErK   z	setup.cfgzsetup.pyz--quietr   z
--dist-dirz..)r/   rmtreer   mkdirr   r3   r4   r+   r0   r   r   _install_filegetcwdchdir
subprocessrunsys
executable)r"   r   r!   r   r7   name	saved_cwds          r%   r   r      s    M)40000HY .k::
,-- J J<<<=  T]]5%9%9 9D x9#4$T+<i! ! ! K%6==yIIII GLL!2NCC	)RW\\)[AA7KKK 	IHYN^ZG\   HY M)r'   c                     t           j                            t           j                            |                     \  }}t	          |t          |          ||           dS )z9 Create a patched file from the module source directory. N)r   r   r   abspathr+   r   )sip_file_fnr   r!   dnamefnames        r%   r   r      sW     7==!=!=>>LE5 5k B BE    r'   c                     t          t          j                            ||           dz   t          j                            ||           |           dS )z. Install a source file in a target directory. rL   N)rQ   r   r   r   )rX   r7   r   r!   s       r%   r+   r+      sM     "',,0$77%?GLLT**G5 5 5 5 5r'   c                 X   t          |           5 }|                                }ddd           n# 1 swxY w Y   |                                D ]\  }}|                    ||          }t          |d          5 }|                    |           ddd           dS # 1 swxY w Y   dS )z Install a file. Nw)openreaditemsr   write)name_inname_outr!   fdata
patch_namepatchs          r%   rQ   rQ      s$    
g !vvxx               %]]__ / /
E||J.. 
h		 	                 s   155<BB#&B#)r(   T)r   r/   rT   rV   versionr   r   r   r   r   r	   r&   r,   r1   r<   r   r   r   r+   rQ    r'   r%   <module>rn      s)  0 
			      



 2 2 2 2 2 2 2 2         A A AD :<! ! ! !    , <>$ $ $ $N, , ,^  5 5 5    r'   