B °Ÿu»´ÂUæã @ sh d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z dddœZ G d d „ d eƒZd dd„ZdS )é N)ÚCommand)ÚDistutilsExecError)Úcustomize_compiler)Úlogz.cz.cxx)Úczc++c @ sÆ e Zd ZdZdddddddd d g Zdd„ Zd d„ Zdd„ Zdd„ Zdd„ Z dd„ Z dd„ Zdd„ Zdd„ Z d0dd „Zd1d!d"„Zd2d#d$„Zd3d%d&„Zd4d'd(„Zd5d*d+„Zdddg fd,d-„Zd6d.d/„ZdS )7Úconfigzprepare to build)z compiler=Nzspecify the compiler type)zcc=Nzspecify the compiler executable)z include-dirs=ÚIz.list of directories to search for header files)zdefine=ÚDzC preprocessor macros to define)zundef=ÚUz!C preprocessor macros to undefine)z libraries=Úlz!external C libraries to link with)z library-dirs=ÚLz.directories to search for external C libraries)ÚnoisyNz1show every action (compile, link, run, ...) taken)zdump-sourceNz=dump generated source files before attempting to compile themc C s4 d | _ d | _d | _d | _d | _d| _d| _g | _d S )Né )ÚcompilerZccÚinclude_dirsÚ librariesÚlibrary_dirsr Údump_sourceÚ temp_files)Úself© r ú=/opt/alt/python37/lib64/python3.7/distutils/command/config.pyÚinitialize_options3 s zconfig.initialize_optionsc C s | j d kr| jj pg | _ nt| j tƒr6| j tj¡| _ | jd krHg | _nt| jtƒr^| jg| _| jd krpg | _nt| jtƒrŒ| j tj¡| _d S )N) r ZdistributionÚ isinstanceÚstrÚsplitÚosÚpathsepr r )r r r r Úfinalize_optionsB s zconfig.finalize_optionsc C s d S )Nr )r r r r ÚrunR s z config.runc C sz ddl m}m} t| j|ƒsv|| j| jdd| _t| jƒ | jrN| j | j¡ | j rb| j | j ¡ | jrv| j | j¡ d S )Nr )Ú CCompilerÚnew_compilerr )r Údry_runÚforce) Údistutils.ccompilerr r! r r r" r r Zset_include_dirsr Z set_librariesr Zset_library_dirs)r r r! r r r Ú_check_compilerY s zconfig._check_compilerc C sl dt | }t|dƒ}|r@x|D ]}| d| ¡ q W | d¡ | |¡ |d dkr`| d¡ | ¡ |S )NZ_configtestÚwz#include <%s> Ú éÿÿÿÿ)ÚLANG_EXTÚopenÚwriteÚclose)r ÚbodyÚheadersÚlangÚfilenameÚfileÚheaderr r r Ú_gen_temp_sourcefilek s zconfig._gen_temp_sourcefilec C s<