ZQd<dZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZGd d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc eZdZdZddgdgdgddgdgddgddZejddd krd ged <gd Zd Zd Z dZ dZ dZ dxZ xZZeZejdkrdZ ddZdZ ddZ d dZdZdZdZdZd!dZdS)" UnixCCompilerunixNccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr r)z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exec|d||}|\}}}t||} |j| z} |r| d|g|r|| dd<|r| || ||js|t ||rm|r2|tj | | | dS#t$r} t| d} ~ wwxYwdS)N-or)_fix_compile_argsrrextendappendforcermkpathospathdirnamespawnrr ) selfsource output_filemacros include_dirs extra_preargsextra_postargs fixed_argsignorepp_optspp_argsmsgs ./usr/lib/python3.11/distutils/unixccompiler.py preprocesszUnixCCompiler.preprocessUs;++D&,GG '1$ (>>#g-  0 NND+. / / /  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( ("3''' ( -,sC++ D 5DD c|j}tjdkrtj|||z} |||z|d|gz|zdS#t $r}t|d}~wwxYw)Nr r)rsysplatform _osx_supportcompiler_fixupr'rr ) r(objsrcextcc_argsr.r1rr3s r4_compilezUnixCCompiler._compileos& <8 # #&5k4;n4LNNK $ JJ{W,T3/??%& ' ' ' ' '! $ $ $s## # $s!A A2A--A2rc|||\}}|||}|||r|tj|||j|gz|z|j z|j rB ||j |gzdS#t$r}t|d}~wwxYwdStjd|dS)N) output_dirskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr#r$r%r&r'robjectsrrr r debug)r(rFoutput_libnamerArG target_langoutput_filenamer3s r4create_static_libzUnixCCompiler.create_static_libzs,"33GZHH  ! !.Z ! H H  ??7O 4 4 C KK88 9 9 9 JJt}'()!%. / / /{ ((JJt{o->>?????)((("3--'( ( ( I0/ B B B B Bs*C C(C##C(cd|||\}}||||}|\}}}gdtjd}|rd|zd|zgfd|D}fd|D}t ||||}t |ttdfstd| tj ||}| ||r||jz|zd|gz}| rd g|dd <| r| |dd <| r|| |tj | |t"jkr|jdd}n|jdd}| d kr|jrd }tj |d d krd }d||vr|d z }d||vtj ||dkrd }nd }|j||||z<t.jdkrt3j||}|||zdS#t8$r}t;|d}~wwxYwt=jd|dS)N)z/libz/lib64z/usr/libz /usr/lib64 MULTIARCHz/lib/%sz /usr/lib/%scg|]}|v| SrO.0dirsystem_libdirss r4 z&UnixCCompiler.link..s-666"n44444cg|]}|v| SrOrOrPs r4rTz&UnixCCompiler.link..s- > > >'*n'<'<!$'<'<'> 8B5  > > >/C > > >#47K#,..*sDJJ&788 ECDD D  ! gll:GGO ??7O 4 4+ C- #'"9:G %#f  ,+  /~... KK88 9 9 9 %)"666!_QQQ/FF!^AAA.F%''D,=' Aw''q 22e;;!VAY..FA"VAY..w''q 22kAA"#!"'+'8';F1V8$<8++)8IIF 6G+,,,,,% % % %nn$ % I0/ B B B B Bs8DI:: JJJc d|zS)N-LrO)r(rRs r4library_dir_optionz UnixCCompiler.library_dir_option czrUc:tfddDS)Nc3 K|]}|vV dS)NrO)rQname compiler_names r4 z(UnixCCompiler._is_gcc..s(MMT4=(MMMMMMrU)gcczg++clang)any)r(rxs `r4_is_gcczUnixCCompiler._is_gccs'MMMM5LMMMMMMrUctjtjd}t jdddkrd|zSt jdddkrd|zSt jddd kr#||rd d|zgSd d|zgS||r"tjd d krd|zSd|zSd|zS)NCCrr rrfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r$r%rcrr\r7r8r})r(rRrs r4runtime_library_dir_optionz(UnixCCompiler.runtime_library_dir_options7##I$) cz!rUc d|zS)Nz-lrO)r(libs r4library_optionzUnixCCompiler.library_optionrtrUc||d}||d}||d}||d}tjdkrgtjd}t jd|} | 'tjtjd } n| d } |D]} tj | |} tj | |} tj | |}tj | |}tjdkr| d s*| d r| d stj | | d d|} tj | | d d|} tj | | d d|}tj | | d d|}tj | r| cStj |r|cStj | r| cStj |r|cSdS)Nshared)lib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s*(\S+)rrXz/System/z/usr/z /usr/local/)rDr7r8rr\researchr9_default_sysrootgroupr$r%ra startswithexists)r(dirsrrGshared_fdylib_f xcode_stub_fstatic_fcflagsmsysrootrRrrrrs r4find_library_filezUnixCCompiler.find_library_files~((x(@@''g'>>,,S<,HH ((x(@@ <8 # #&-h77F .77Ay&7 8PQU8V8VWW''!**  CW\\#x00FGLLg..EW\\#x00Fc<88J|x''z**(w''(03}0M0M(gs122wAA Wc!""gw??gs122wAAW\\'3qrr7LII w~~e$$   ++ !!!!''  ''   trU)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__ compiler_type executablesr7r8src_extensions obj_extensionstatic_lib_extensionshared_lib_extensiondylib_lib_extensionxcode_stub_lib_extensionstatic_lib_formatshared_lib_formatdylib_lib_formatxcode_stub_lib_format exe_extensionr5r?rKrprsr}rrrrOrUr4rr-sM%)%)F%)F%)F%)9$5%)F%)5M$(K |BQB8##!) H:99NM "%?HHH),<, |x :>IM((((4 $ $ $AECCCC6:>599=?C GCGCGCGCZNNN("("("T??????rUr)__doc__r$r7r distutilsrdistutils.dep_utilrdistutils.ccompilerrrrdistutils.errorsrr r r r r8r9rrOrUr4rs0  $$$$$$8888888888;;;;;;;;;;;;<8$gggggIgggggrU