OwlCyberSecurity - MANAGER
Edit File: msvc9compiler.cpython-38.opt-2.pyc
U ����e5d/w����������������������@���sN��d�dl�Z�d�dlZd�dlZd�dlZd�dlmZmZmZmZm Z �d�dl mZmZm Z �d�dlmZ�d�dlmZ�d�dlZejZejZejZejZejejejejfZej dko�ej!dkZ"e"r�dZ#d Z$d Z%ndZ#dZ$d Z%ddd�Z&G�dd��d�Z'G�dd��d�Z(dd��Z)dd��Z*dd��Z+dd��Z,d#dd�Z-e)��Z.e.dk��r:ed e.���G�d!d"��d"e�Z/dS�)$�����N)�DistutilsExecError�DistutilsPlatformError�CompileError�LibError� LinkError)� CCompiler�gen_preprocess_options�gen_lib_options)�log)�get_platform�win32l��������z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFramework�x86Zamd64�r���z win-amd64c�������������������@���sL���e�Zd�Zdd��Zee�Zdd��Zee�Zdd��Zee�Zdd��Zee�Zd S�) �Regc�����������������C���s:���t�D�](}|��||�}|r||kr||���S�qt|��d�S��N)�HKEYS�read_values�KeyError)�cls�path�key�base�d��r����//usr/lib64/python3.8/distutils/msvc9compiler.py� get_value@���s ����z Reg.get_valuec�����������������C���sn���zt�||�}W�n�tk r$���Y�d�S�X�g�}d}zt||�}W�n�tk rT���Y�qjY�nX�|�|��|d7�}q.|S��Nr�������)�RegOpenKeyEx�RegError� RegEnumKey�append)r���r���r����handle�L�i�kr���r���r���� read_keysH���s���� z Reg.read_keysc����������� ������C���s����zt�||�}W�n�tk r$���Y�d�S�X�i�}d}zt||�\}}}W�n�tk rZ���Y�q�Y�nX�|���}|��|�||��|�<�|d7�}q.|S�r���)r���r����RegEnumValue�lower�convert_mbcs) r���r���r���r"���r���r$����name�value�typer���r���r���r���Z���s���� zReg.read_valuesc�����������������C���s:���t�|�dd��}|d�k r6z|d�}�W�n�tk r4���Y�nX�|�S�)N�decode�mbcs)�getattr�UnicodeError)�sZdecr���r���r���r)���p���s����zReg.convert_mbcsN) �__name__� __module__�__qualname__r����classmethodr&���r���r)����staticmethodr���r���r���r���r���<���s���r���c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) � MacroExpanderc�����������������C���s���i�|�_�t|�|�_|��|��d�S�r���)�macros�VS_BASE�vsbase�load_macros)�self�versionr���r���r����__init__|���s���� zMacroExpander.__init__c�����������������C���s���t��||�|�jd|�<�d�S�)Nz$(%s))r���r���r8���)r<���Zmacror���r���r���r���r���� set_macro����s����zMacroExpander.set_macroc�������������� ���C���s��|���d|�jd�d��|���d|�jd�d��|���dtd��z$|dkrP|���d td ��ntd ��W�n�tk rv���td��Y�nX�|dkr�|���d |�jd��|���dtd��nbd}tD�]X}zt||�}W�n�tk r����Y�q�Y�nX�t |d�}t �|d||f��}|d�|�jd<�q�d�S�)NZVCInstallDirz \Setup\VC� productdirZVSInstallDirz \Setup\VSZFrameworkDirZinstallroot������� @ZFrameworkSDKDirzsdkinstallrootv2.0a��Python was built with Visual Studio 2008; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2008 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.g������"@ZFrameworkVersionzclr versionZ WindowsSdkDirZcurrentinstallfolderz.Software\Microsoft\NET Framework Setup\Productr���z%s\%sr=���z$(FrameworkVersion)) r?���r:����NET_BASEr���r����WINSDK_BASEr���r���r���r ���r���r���r8���)r<���r=����pr����hr���r���r���r���r���r;�������s2������ zMacroExpander.load_macrosc�����������������C���s$���|�j����D�]\}}|�||�}q |S�r���)r8����items�replace)r<���r1���r%����vr���r���r����sub����s����zMacroExpander.subN)r2���r3���r4���r>���r?���r;���rI���r���r���r���r���r7���z���s���r7���c������������������C���s����d}�t�j�|��}|dkrdS�|t|���}t�j|d����dd�\}}t|d�d���d�}|dkrf|d7�}t|dd ���d �}|dkr�d}|dkr�||�S�d�S�)NzMSC v.�������� r������� �����������g������$@r���)�sysr=����find�len�split�int)�prefixr$���r1����restZmajorVersionZminorVersionr���r���r����get_build_version����s����rX���c�����������������C���s0���g�}|�D�]"}t�j�|�}||kr|�|��q|S�r���)�osr����normpathr!���)�pathsZ reduced_pathsrD���Znpr���r���r����normalize_and_reduce_paths����s����r\���c�����������������C���s<���|���tj�}g�}|D�]}||kr|�|��qtj�|�}|S�r���)rT���rY����pathsepr!����join)ZvariableZoldListZnewListr$���ZnewVariabler���r���r����removeDuplicates����s����r_���c�����������������C���s��t�|��}zt�d|�d�}W�n"�tk r>���t�d��d�}Y�nX�|rPtj�|�s�d|��}tj � |d��}|r�tj�|�r�tj�|tjtjd�}tj� |�}tj�|�s�t�d|���d�S�nt�d|���|s�t�d��d�S�tj�|d �}tj�|�r�|S�t�d ��d�S�)Nz%s\Setup\VCr@���z%Unable to find productdir in registryzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.bat�Unable to find vcvarsall.bat)r9���r���r���r���r ����debugrY���r����isdir�environ�getr^����pardir�abspath�isfile)r=���r:���r@���ZtoolskeyZtoolsdir� vcvarsallr���r���r����find_vcvarsall����s4���� � ri���c�����������������C���s8��t�|��}ddddh}i�}|d�kr(td��t�d||���tjd||f�tjtjd�}z�|� ��\}}|���d krzt|�d ���|�d �}|� d�D�]d}t�|�}d|kr�q�|���}|� dd �\} } | ���} | |kr�| �tj�r�| d�d��} t| �|| <�q�W�5�|j����|j ����X�t|�t|�k�r4ttt|�������|S�)N�include�libZlibpathr���r`���z'Calling 'vcvarsall.bat %s' (version=%s)z "%s" %s & set)�stdout�stderrr���r.���� �=r���rJ���)ri���r���r ���ra���� subprocess�Popen�PIPErl����closerm���Zcommunicate�waitr-���rT���r���r)����stripr(����endswithrY���r]���r_���rS���� ValueError�str�list�keys)r=���Zarchrh���Zinteresting�result�popenrl���rm����liner���r+���r���r���r����query_vcvarsall����s>����� r~���rA���z(VC %0.1f is not supported by this modulec���������������� ���@���s����e�Zd�ZdZi�ZdgZdddgZdgZdgZee�e�e�Z dZ d Zd ZdZ d�ZZd Zd-dd�Zd.dd�Zd/dd�Zd0dd�Zd1dd�Zd2dd�Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��Zd'd(��Zd3d)d*�Zd+d,��ZdS�)4�MSVCCompilerZmsvcz.cz.ccz.cppz.cxx�.rcz.mcz.resz.objz.libz.dllz%s%sz.exer���c�����������������C���s8���t��|�|||��t|�_d|�_g�|�_d�|�_d�|�_d|�_d�S�)NzSoftware\Microsoft\VisualStudioF) r���r>����VERSION�_MSVCCompiler__versionZ_MSVCCompiler__root�_MSVCCompiler__paths� plat_name�_MSVCCompiler__arch�initialized)r<����verboseZdry_runZforcer���r���r���r>���I��s����zMSVCCompiler.__init__Nc�����������������C���s��|d�krt���}d}||kr(td|f���dtjkrfdtjkrf|��d�rfd|�_d|�_d|�_d|�_d |�_ n�|t���ksx|d kr�t |�}nt t����d�t |��}tt|�}|d�� tj�|�_|d �tjd <�|d�tjd<�t|�j�dkr�td|�j���|��d�|�_|��d�|�_|��d�|�_|��d�|�_|��d �|�_ z(tjd�� d�D�]}|�j�|���q:W�n�tk �rf���Y�nX�t|�j�|�_d�|�j�tjd<�d�|�_|�jdk�r�dddddg|�_ddddddg|�_n&ddddddg|�_dddddddg|�_dddg|�_|�jdk�rddd d!g|�_dg|�_d"|�_d�S�)#Nr���z--plat-name must be one of %sZDISTUTILS_USE_SDKZMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer����_r���rk���rj���r���zxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.�;r ���z/nologoz/Oxz/MDz/W3z/DNDEBUGz/Odz/MDdz/Z7z/D_DEBUGz/GS-z/DLLz/INCREMENTAL:NO����z/INCREMENTAL:noz/DEBUGT)r���r���rY���rc����find_exe�cc�linkerrk����rc�mc�PLAT_TO_VCVARSr~���r����rT���r]���r����rS���Z_MSVCCompiler__productr!���r���r\���r^���Zpreprocess_optionsr�����compile_options�compile_options_debug�ldflags_sharedr�����ldflags_shared_debugZldflags_staticr����)r<���r����Zok_platsZ plat_specZvc_envrD���r���r���r���� initializeT��s~����� � ���� � ������zMSVCCompiler.initialize��c�����������������C���s����|d�krd}g�}|D�]�}t�j�|�\}}t�j�|�d�}|t�j�|�d���}||�jkrbtd|���|rrt�j�|�}||�jkr�|� t�j� |||�j����q||�jkr�|� t�j� |||�j����q|� t�j� |||�j ����q|S�)Nr����r���zDon't know how to compile %s)rY���r����splitext� splitdrive�isabs�src_extensionsr����basename�_rc_extensionsr!���r^���� res_extension�_mc_extensions� obj_extension)r<���Zsource_filenamesZ strip_dir� output_dirZ obj_namesZsrc_namer����extr���r���r����object_filenames���s.����� � ��zMSVCCompiler.object_filenamesc �����������������C���sp��|�j�s|�����|��||||||�} | \}} }}}|p6g�} | �d��|rT| �|�j��n| �|�j��| D��]}z||�\}}W�n�tk r����Y�qdY�nX�|r�tj � |�}||�jkr�d|�}�nT||�jkr�d|�}�n>||�j k�r<|}d|�}z"|��|�jg|�|g�|g���W�qd�tk �r6�}�zt|��W�5�d�}~X�Y�qdX�qdn�||�jk�r�tj �|�}tj �|�}zl|��|�jgd|d|g�|g���tj �tj �|��\}}tj �||d��}|��|�jgd|�g�|g���W�qd�tk �r��}�zt|��W�5�d�}~X�Y�qdX�qdntd||f���d |�}z&|��|�jg| �|�||g�|���W�qd�tk �rh�}�zt|��W�5�d�}~X�Y�qdX�qd| S�) Nz/cz/Tcz/Tpz/foz-hz-rr����z"Don't know how to compile %s to %sz/Fo)r����r����Z_setup_compiler!����extendr����r����r���rY���r���rf���� _c_extensions�_cpp_extensionsr�����spawnr����r���r���r�����dirnamer����r����r����r^���r����)r<���Zsourcesr����r8���Zinclude_dirsra���� extra_preargs�extra_postargsZdependsZcompile_info�objectsZpp_optsZbuildZcompile_opts�obj�srcr����Z input_optZ output_opt�msgZh_dirZrc_dirr���r����Zrc_filer���r���r����compile���s����� ��� �� �� �� ��� zMSVCCompiler.compilec����������� ��� ���C���s����|�j�s|�����|��||�\}}|�j||d�}|��||�r�|d|�g�}|rJz|��|�jg|���W�q��tk r��}�zt|��W�5�d�}~X�Y�q�X�nt � d|��d�S�)N)r�����/OUT:�skipping %s (up-to-date))r����r�����_fix_object_args�library_filename� _need_linkr����rk���r���r���r ���ra���) r<���r����Zoutput_libnamer����ra����target_lang�output_filenameZlib_argsr����r���r���r����create_static_lib��s�����zMSVCCompiler.create_static_libc�������������� ���C���sT��|�j�s|�����|��||�\}}|��|||�}|\}}}|rL|��dt|����t|�|||�}|d�k rptj� ||�}|�� ||��rD|tjkr�| r�|�j dd���}q�|�jdd���}n| r�|�j }n|�j}g�}|p�g�D�]}|�d|���q�||�|�|�d|�g�}tj�|d��}|d�k �rLtj�tj�|��\}}tj� ||��|��}|�d|���|��|||��| �rl| |d�d�<�|�r||�|��|��tj�|���z|��|�jg|���W�n,�tk �r��}�zt|��W�5�d�}~X�Y�nX�|��||�}|d�k �rP|\}}d||f�}z|��dd d ||g��W�n,�tk �r@�}�zt|��W�5�d�}~X�Y�nX�nt�d|��d�S�)Nz5I don't know what to do with 'runtime_library_dirs': r���z/EXPORT:r����r���z/IMPLIB:z-outputresource:%s;%szmt.exez-nologoz -manifestr����)r����r����r����Z _fix_lib_args�warnrx���r ���rY���r���r^���r����r���� EXECUTABLEr����r����r!���r����r����r����r�����manifest_setup_ldargsr����Zmkpathr����r����r���r����manifest_get_embed_infor ���ra���)r<����target_descr����r����r����Z librariesZlibrary_dirsZruntime_library_dirsZexport_symbolsra���r����r����� build_tempr����Z fixed_argsZlib_optsZldflagsZexport_optsZsym�ld_argsZdll_nameZdll_extZimplib_filer����ZmfinfoZ mffilename�mfidZout_argr���r���r����link6��s������ ��� �� �� �� zMSVCCompiler.linkc�����������������C���s,���t�j�|t�j�|�d��}|�d|���d�S�)Nz .manifest�/MANIFESTFILE:)rY���r���r^���r����r!���)r<���r����r����r����� temp_manifestr���r���r���r�������s �����z"MSVCCompiler.manifest_setup_ldargsc�����������������C���s^���|D�]"}|��d�r|�dd�d�}�q,qd�S�|tjkr<d}nd}|��|�}|d�krVd�S�||fS�)Nr�����:r���rO���)� startswithrT���r���r�����_remove_visual_c_ref)r<���r����r�����argr����r����r���r���r���r�������s���� z$MSVCCompiler.manifest_get_embed_infoc�����������������C���s����z�t�|�}z|���}W�5�|����X�t�dtj�}t�|d|�}d}t�|d|�}t�dtj�}t�||�d�krtW�d�S�t�|d�}z|�|��|W��W�S�|����X�W�n�t k r����Y�nX�d�S�)NzU<assemblyIdentity.*?name=("|')Microsoft\.VC\d{2}\.CRT("|').*?(/>|</assemblyIdentity>)r����z*<dependentAssembly>\s*</dependentAssembly>zI<assemblyIdentity.*?name=(?:"|')(.+?)(?:"|').*?(?:/>|</assemblyIdentity>)�w) �openrs����read�rer�����DOTALLrI����search�write�OSError)r<���Z manifest_fileZ manifest_fZmanifest_buf�patternr���r���r���r�������s2���� �� z!MSVCCompiler._remove_visual_c_refc�����������������C���s���d|�S�)Nz /LIBPATH:r����r<����dirr���r���r����library_dir_option���s����zMSVCCompiler.library_dir_optionc�����������������C���s���t�d��d�S�)Nz<don't know how to set runtime library search path for MSVC++)r���r����r���r���r����runtime_library_dir_option���s�����z'MSVCCompiler.runtime_library_dir_optionc�����������������C���s ���|���|�S�r���)r����)r<���rk���r���r���r����library_option���s����zMSVCCompiler.library_optionc�����������������C���s\���|r|d�|g}n|g}|D�]:}|D�]0}t�j�||��|��}t�j�|�r$|����S�q$qd�S�)NZ_d)rY���r���r^���r�����exists)r<����dirsrk���ra���Z try_namesr����r*���Zlibfiler���r���r����find_library_file���s����zMSVCCompiler.find_library_filec�����������������C���sz���|�j�D�].}tj�tj�|�|�}tj�|�r|��S�qtjd��d�D�].}tj�tj�|�|�}tj�|�rF|��S�qF|S�)N�Pathr����)r����rY���r���r^���rf���rg���rc���rT���)r<���ZexerD����fnr���r���r���r������s���� zMSVCCompiler.find_exe)r���r���r���)N)r���r����)NNNr���NNN)Nr���N) NNNNNr���NNNN)r���)r2���r3���r4���Z compiler_typeZexecutablesr����r����r����r����r����r����r����Zstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr>���r����r����r����r����r����r����r����r����r����r����r����r����r����r���r���r���r���r���+��sj��� �� W��� ������������� X���� ����������� _+ r���)r ���)0rY���rp���rQ���r����Zdistutils.errorsr���r���r���r���r���Zdistutils.ccompilerr���r���r ���Z distutilsr ���Zdistutils.utilr����winregZ OpenKeyExr���ZEnumKeyr ���Z EnumValuer'����errorr���Z HKEY_USERS�HKEY_CURRENT_USER�HKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTr����platform�maxsizeZNATIVE_WIN64r9���rC���rB���r����r���r7���rX���r\���r_���ri���r~���r����r���r���r���r���r����<module>���sN�����>.# )