U
e5d«> ã @ st d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm Z d dl
T d dlmZ d dl
mZ G dd „ d eƒZdS )
é N)ÚCommand)Úget_platform)Úcreate_treeÚremove_tree)Ú*)Úget_python_version)Úlogc
sš e Zd ZdZddddeƒ fdddd d
ddd
dddg
ZddddgZejdkZ ‡ fdd„Z
dd„ Zdd„ Zdd„ Z
dd„ Zd'd!d"„Zd#d$„ Zd%d&„ Z‡ ZS )(Ú
bdist_wininstz-create an executable installer for MS Windows)z
bdist-dir=Nz1temporary directory for creating the distributionz
plat-name=Úpz;platform name to embed in generated filenames (default: %s))ú keep-tempÚkzPkeep the pseudo-installation tree around after creating the distribution archive)ztarget-version=Nz6require a specific python version on the target system)úno-target-compileÚcz/do not compile .py to .pyc on the target system)úno-target-optimizeÚoz;do not compile .py to .pyo (optimized) on the target system)z dist-dir=Údz-directory to put final built distributions in)zbitmap=Úbz>bitmap to use for the installer instead of python-powered logo)ztitle=Útz?title to display on the installer background instead of default)ú
skip-buildNz2skip rebuilding everything (for testing/debugging))zinstall-script=NzUbasename of installation script to be run after installation or before deinstallation)zpre-install-script=Nz{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distribution)zuser-access-control=NzŠspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACr r
r r Úwin32c s t ƒ j||Ž t dtd¡ d S )Nz^bdist_wininst command is deprecated since Python 3.8, use bdist_wheel (wheel packages) insteadé )ÚsuperÚ__init__ÚwarningsÚwarnÚDeprecationWarning)ÚselfÚargsÚkw©Ú __class__© ú7/usr/lib64/python3.8/distutils/command/bdist_wininst.pyr ? s
þzbdist_wininst.__init__c C sR d | _ d | _d| _d| _d| _d | _d | _d | _d | _d | _ d | _
d | _d | _d S )Nr )
Ú bdist_dirÚ plat_nameÚ keep_tempÚno_target_compileÚno_target_optimizeÚtarget_versionÚdist_dirÚbitmapÚtitleÚ
skip_buildÚinstall_scriptÚpre_install_scriptÚuser_access_control)r r! r! r" Úinitialize_optionsE s z bdist_wininst.initialize_optionsc C sâ | dd¡ | jd krR| jr6| jr6| j d¡}| j|_| d¡j}tj
|d¡| _| js^d| _| js˜| j ¡ r˜t
ƒ }| jr’| j|kr’td|f ƒ‚|| _| ddd¡ | jrÞ| jjD ]}| jtj |¡kr´ qÞq´td| j ƒ‚d S ) NÚbdist)r, r, ZwininstÚ zMtarget version can only be %s, or the '--skip-build' option must be specified)r) r) )r$ r$ z(install_script '%s' not found in scripts)Zset_undefined_optionsr# r, r$ ÚdistributionZget_command_objÚget_finalized_commandÚ
bdist_baseÚosÚpathÚjoinr( Úhas_ext_modulesr ZDistutilsOptionErrorr- ÚscriptsÚbasename)r r1 r5 Z
short_versionÚscriptr! r! r" Úfinalize_optionsU s>
ÿÿþÿÿzbdist_wininst.finalize_optionsc
C sà t jdkr&| j ¡ s| j ¡ r&tdƒ‚| js6| d¡ | jddd�}| j |_
| j|_d|_| j|_| d¡}d|_
d|_| j ¡ rÌ| j}|sžd t jd d
… }d| j|f }| d¡}tj |jd| ¡|_d
D ],}| ¡ }|dkrì|d }t|d| |ƒ qÐt d| j ¡ | ¡ t j dtj | j d¡¡ | ¡ t jd= ddlm} |ƒ } | j ¡ }
| j!| d| j d�}| "||
| j#¡ | j ¡ �r�t$ƒ }nd}| jj% &d|| '|
¡f¡ t (d|¡ t )|¡ | j*�sÜt+| j | j,d� d S )Nr z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformÚbuildÚinstallé )Zreinit_subcommandsr Úinstall_libz%d.%dr z.%s-%sÚlib)ZpurelibZplatlibÚheadersr: ÚdatarC z/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)ÚmktempÚzip)Zroot_dirÚanyr zremoving temporary file '%s')Údry_run)-ÚsysÚplatformr3 r9 Zhas_c_librariesZDistutilsPlatformErrorr, Zrun_commandZreinitialize_commandr# ÚrootZwarn_dirr$ ÚcompileÚoptimizer( Úversion_infor4 r6 r7 r8 Z
build_baseZ build_libÚupperÚsetattrr ÚinfoZensure_finalizedÚinsertÚrunZtempfilerE Úget_fullnameZmake_archiveÚ
create_exer* r Z
dist_filesÚappendÚget_installer_filenameÚdebugÚremover% r rH )
r r? rA r( Zplat_specifierr> ÚkeyÚvaluerE Zarchive_basenameÚfullnameÚarcnameZ pyversionr! r! r" rS { sr
ÿþÿ
ÿþ
ÿÿ
zbdist_wininst.runc C sZ g }| j j}| d¡ |jpdd }dd„ }dD ]B}t||dƒ}|r0|d| ¡ ||ƒf }| d|||ƒf ¡ q0| d ¡ | jr”| d
| j ¡ | d||ƒ ¡ | d| j ¡ | d
| j ¡ | j rà| d| j ¡ | j
rö| d| j
¡ | j�p| j ¡ }| d||ƒ ¡ dd l
}dd l} d| |
¡ ¡| jf }
| d|
¡ d |¡S )Nz
[metadata]r2 Ú
c S s | dd¡S )Nr^ z\n)Úreplace)Úsr! r! r" ÚescapeÙ s z)bdist_wininst.get_inidata.