U if=3 @ sh d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm Z dddZ G d d d eZd ddZdS ) 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 )7configzprepare 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 )compilerZccinclude_dirs librarieslibrary_dirsr dump_source temp_filesself r =/opt/alt/python38/lib64/python3.8/distutils/command/config.pyinitialize_options3 s zconfig.initialize_optionsc C s | j d kr| jj pg | _ nt| j tr6| j tj| _ | jd krHg | _nt| jtr^| jg| _| jd krpg | _nt| jtr| jtj| _d S N) r Zdistribution isinstancestrsplitospathsepr 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 ) CCompilernew_compilerr )r dry_runZforce) 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|dL}|r>|D ]}|d| q |d || |d dkr^|d W 5 Q R X |S )NZ_configtestwz#include <%s> )LANG_EXTopenwrite)r bodyheaderslangfilenamefileheaderr r r _gen_temp_sourcefilek s zconfig._gen_temp_sourcefilec C s<