§ !A?hV ã ó¸ — d Z ddlZddlZddlZg d¢ZdZdZdZdd„Zdd „Z d „ Z dad„ Zda d„ Zd „ Zd„ Zdad„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )zShared OS X support functions.é N)Úcompiler_fixupÚcustomize_config_varsÚcustomize_compilerÚget_platform_osx) ÚCFLAGSÚLDFLAGSÚCPPFLAGSÚ BASECFLAGSÚ BLDSHAREDÚLDSHAREDÚCCÚCXXÚ PY_CFLAGSÚ PY_LDFLAGSÚPY_CPPFLAGSÚPY_CORE_CFLAGSÚPY_CORE_LDFLAGS)r r r r Ú_OSX_SUPPORT_INITIAL_c ó¸ — |€t j d }| t j ¦ « }t j | ¦ « \ }}t j dk r|dk r| dz } t j | ¦ « sJ|D ]E}t j || ¦ « }t j |¦ « r|c S ŒFdS | S )zÚTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NÚPATHÚwin32z.exe) ÚosÚenvironÚsplitÚpathsepÚpathÚsplitextÚsysÚplatformÚisfileÚjoin)Ú executabler ÚpathsÚbaseÚextÚpÚfs ú9/opt/alt/python-internal/lib64/python3.11/_osx_support.pyÚ_find_executabler) sË € ð €|ÝŒz˜&Ô!ˆà�JŠJ•r”zÑ"Ô"€EÝ”× Ò Ñ,Ô,�I€Dˆ#匘ÒÐ c¨V¢m mØ &Ñ(ˆ å Œ7�>Š>˜*Ñ%Ô%ð Øð ð ˆAÝ”—’˜Q Ñ+Ô+ˆAÝŒw�~Š~˜aÑ Ô ð à���ð ð ˆtàÐó Fc óÜ — ddl } ddl}| ¦ « }n4# t $ r' t dt j ¦ « ›�d¦ « }Y nw xY w| |¦ « 5 }|r| ›d|j ›d�}n | ›d|j ›d�}t j |¦ « s9| ¦ « d ¦ « ¦ « ndcddd¦ « S # 1 swxY w Y dS ) z0Output from successful command execution or Noner Nz/tmp/_osx_support.zw+bz >'z' 2>&1z 2>/dev/null >'ú'úutf-8) Ú contextlibÚtempfileÚNamedTemporaryFileÚImportErrorÚopenr ÚgetpidÚclosingÚnameÚsystemÚreadÚdecodeÚstrip)Ú commandstringÚcapture_stderrr. r/ ÚfpÚcmds r( Ú_read_outputr> 7 sh € ð ÐÐÐð"؈ˆˆØ × (Ò (Ñ *Ô *ˆˆøÝð "ð "ð "Ý ˆTÝŒI‰KŒKˆKðØ ñ"ô "ˆˆˆð"øøøð × Ò ˜BÑ Ô ð Q 2Øð DØ%2 ] ]°B´G°G°GÐ<ˆCˆCà,9¨M¨M¸2¼7¸7¸7ÐCˆCÝ8:¼ À#¹¼ÐPˆr�wŠw‰yŒy×Ò Ñ(Ô(×.Ò.Ñ0Ô0Ð0ÈDðQð Qð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qð Qð Qs" † Ÿ.AÁAÁ(A,C!Ã!C%Ã(C%c óH — t | ¦ « pt d| ›�¦ « pdS )z0Find a build tool on current path or using xcrunz/usr/bin/xcrun -find Ú )r) r> )Útoolnames r( Ú_find_build_toolrB M s1 € å˜XÑ&Ô&ð