3 \[@ ã @ sþ d Z ddlZddlZddlZddlmZmZmZ ddlZddl m Z mZ ddlm Z ddlmZ ddlmZmZmZmZ ddlmZ dd lmZ dd lmZ dd„ ZG d d„ de ƒZG dd„ deƒZdZdZdZ dd„ Z!ej"dƒZ#dd„ Z$dd„ Z%dd„ Z&dS )a distutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). é N)ÚPopenÚPIPEÚcheck_output)Úgen_preprocess_optionsÚgen_lib_options)Ú UnixCCompiler)Ú write_file)ÚDistutilsExecErrorÚCCompilerErrorÚCompileErrorÚUnknownFileError)Úlog)ÚLooseVersion)Úfind_executablec C s€ t jjdƒ} | dkr|t j| d | d … }|dkr8dgS |dkrFdgS |d krTd gS |dkrbdgS |d krpdgS td| ƒ‚dS )zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v.é é é Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s Néÿÿÿÿ)ÚsysÚversionÚfindÚ ValueError)Zmsc_posZmsc_ver© r ú1/usr/lib64/python3.6/distutils/cygwinccompiler.pyÚ get_msvcr? s r c @ sR e Zd ZdZdZdZdZdZdZdZ dZ dd d„Zdd „ Zddd„Z ddd„ZdS )ÚCygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. Úcygwinz.oz.az.dllzlib%s%sz%s%sz.exer c C sè t j| |||ƒ tƒ \}}| jd||f ƒ |tk rB| jd| ƒ tƒ \| _| _| _ | j| j d| j| j| j f ƒ | jdkr†d| _nd| _| jdkrœd}nd }| jd ddd d| j|f d� | jdkrÜdg| _ | jdƒ ntƒ | _ d S )Nz%Python's GCC status: %s (details: %s)zƒPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90ÚgccÚdllwrapz2.13z-sharedz -mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallzgcc -mcygwinz%s -mcygwin %s)ÚcompilerÚcompiler_soÚcompiler_cxxÚ linker_exeÚ linker_soz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r Ú__init__Úcheck_config_hZdebug_printÚCONFIG_H_OKÚwarnÚget_versionsÚgcc_versionÚ ld_versionZdllwrap_versionÚ compiler_typeÚ linker_dllÚset_executablesÚ dll_librariesr )ÚselfÚverboseÚdry_runÚforceZstatusZdetailsÚ shared_optionr r r r$ d s<