a
´i=3 ã @ 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 ZdZg d¢Zdd„ Zdd„ Zdd„ Zd d
„ Zdd„ Z d
d„ Z
dd„ Zdd„ Zdd„ Z
d(dd„Zd)dd„Zd*dd„Zd+dd„Zd,dd „Zd-d"d#„Zdddg fd$d%„Zd.d&d'„ZdS )/Ú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 ú0/usr/lib64/python3.9/distutils/command/config.pyÚinitialize_options3 s zconfig.initialize_optionsc C s | j d u r| jj pg | _ nt| j tƒr6| j tj¡| _ | jd u rHg | _nt| jtƒr^| jg| _| jd u rpg | _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 r r 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 s€ dt | }t|dƒV}|r>|D ]}| d| ¡ q | d¡ | |¡ |d dkr^| d¡ W d ƒ n1 sr0 Y |S )NZ_configtestÚwz#include <%s>
Ú
éÿÿÿÿ)ÚLANG_EXTÚopenÚwrite)r ÚbodyÚheadersÚlangÚfilenameÚfileÚheaderr r r Ú_gen_temp_sourcefilek s
(zconfig._gen_temp_sourcefilec C s<