§
    ‹ã÷c¯ñ ã                  ó¬  — d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8 ej9        rqd dl:m;Z; ddl<m=Z= ddl>m?Z?m@Z@ ddl/mAZA ddlBmCZCmDZDmEZE ddl6mFZF ddlGmHZH ddlmIZImJZJ ddlKmLZL ddlMmNZN ddlOmPZP ejQ        d         ZRejQ        d         ZSejQ        d         ZTddhZUd„ e3D ¦   «         ZVeVh d£z  ZVh d £ZWd!hZXd"d#hZYh d$£ZZeZeVz  eUz  eWz  eXz  eYz  Z[e[h d%£z  Z\e[h d&£z  Z]e[d'hz  Z^e[d(d)hz  Z_e\d*d+hz  Z`d~d2„Za e	d¬3¦  «        dd5„¦   «         Zb G d6„ d7e¦  «        Zc ed8¬9¦  «         G d:„ d;e¦  «        ¦   «         Zd ed8¬9¦  «         G d<„ d=e¦  «        ¦   «         Ze ed8¬9¦  «         G d>„ d?e¦  «        ¦   «         Zf ed8¬9¦  «         G d@„ dAe¦  «        ¦   «         Zg ed8¬9¦  «         G dB„ dCe¦  «        ¦   «         Zh ed8¬9¦  «         G dD„ dE¦  «        ¦   «         Zi G dF„ dG¦  «        Zj ed8¬9¦  «         G dH„ dIe¦  «        ¦   «         Zk ed8¬9¦  «         G dJ„ dKe¦  «        ¦   «         Zl ed8d8¬L¦  «         G dM„ dNe¦  «        ¦   «         Zm ed8¬9¦  «         G dO„ dPe¦  «        ¦   «         Zn G dQ„ dRen¦  «        Zo G dS„ dTe¦  «        Zp ed8¬9¦  «         G dU„ dVe¦  «        ¦   «         Zq G dW„ dXeo¦  «        Zr G dY„ dZeo¦  «        Zs G d[„ d\eo¦  «        Zt G d]„ d^et¦  «        Zu G d_„ d`e¦  «        Zv G da„ db¦  «        Zw G dc„ ddenew¦  «        Zx G de„ dfeo¦  «        Zy G dg„ dhenew¦  «        Zz G di„ djez¦  «        Z{ G dk„ dleo¦  «        Z| ed8¬9¦  «         G dm„ dne¦  «        ¦   «         Z} G do„ dpe¦  «        Z~ ed8¬9¦  «         G dq„ dre¦  «        ¦   «         Z ed8¬9¦  «         G ds„ dte¦  «        ¦   «         Z€ ed8¬9¦  «         G du„ dv¦  «        ¦   «         Z�dw„ Z‚d€dy„Zƒd�d}„Z„dS )‚é    )Úannotations)ÚdefaultdictÚOrderedDict)Ú	dataclassÚfield)Ú	lru_cacheNé   )Úenvironment©Údependencies)Úmlog)Úprograms)ÚHoldableObjectÚSecondLevelHolderÚFileÚMesonExceptionÚMachineChoiceÚ
PerMachineÚ
OrderedSetÚlistifyÚextract_as_listÚtypeslistifyÚstringlistifyÚclassify_unity_sourcesÚget_filenames_templates_dictÚsubstitute_valuesÚhas_path_sepÚ	OptionKeyÚPerMachineDefaultableÚOptionOverrideProxyÚMesonBugExceptionÚEnvironmentVariablesÚpickle_load)Ú	is_objectÚclink_langsÚ
sort_clinkÚall_languagesÚis_known_suffixÚdetect_static_linker)Ú
FeatureNewÚFeatureDeprecated)ÚLiteral)ÚImmutableListProtocol)ÚBackendÚExecutableSerialisation)ÚCompiler)ÚTestÚSourceOutputsÚInterpreter)Ú
SubProject)ÚStaticLinker)ÚFileModeÚFileOrString)ÚModuleState)ÚBaseNode)ÚWrapMode)ÚCustomTargetÚCustomTargetIndexÚGeneratedList)ÚSharedLibraryÚStaticLibraryr;   r<   )ÚBuildTargetr;   r<   Úc_pchÚcpp_pchc                ó   — h | ]}|› d �’ŒS )Ú_args© )Ú.0Úlangs     ú2/usr/lib/python3/dist-packages/mesonbuild/build.pyú	<setcomp>rI   B   s   € Ð<Ð<Ð< d�d�>�>�>Ð<Ð<Ð<ó    >   Úd_debugÚ
d_unittestÚd_import_dirsÚd_module_versions>   Úvala_girÚ	vala_vapiÚvala_headerÚrust_crate_typeÚ	resourcesÚcs_args>   ÚnativeÚgui_appÚinstallÚobjectsÚsourcesÚ	link_argsÚ	link_withÚ
link_wholeÚbuild_rpathÚextra_filesÚinstall_dirÚinstall_tagÚname_prefixÚname_suffixr   Úinstall_modeÚlink_dependsÚinstall_rpathÚlink_languageÚwin_subsystemÚbuild_by_defaultÚoverride_optionsÚinclude_directoriesÚgnu_symbol_visibilityÚimplicit_include_directories>   ÚpieÚimplibÚexport_dynamic>   ÚversionÚ	soversionÚvs_module_defsÚdarwin_versionsrr   ÚpicÚprelinkÚ
main_classÚjava_resourcesr`   ú#T.Optional[T.List[T.Optional[str]]]Únum_outputsÚintÚreturnúT.List[T.Optional[str]]c                óN   — | sd g|z  }nt          | ¦  «        dk    r| |z  }n| }|S )Nr	   )Úlen)r`   ry   Ú_install_tags      rH   Ú_process_install_tagr€   x   sD   € ð ð #Ø�v Ñ+ˆˆÝ	ˆ[Ñ	Ô	˜QÒ	Ð	Ø" [Ñ0ˆˆà"ˆØÐrJ   ©ÚmaxsizeÚstrc                ó¼   — d| j         | j        g}| j        �|                     d| j        z   ¦  «         |                     d¦  «         d                     |¦  «        S )Nz@rpath/ú.ú.dylibÚ )ÚprefixÚnamerq   ÚappendÚjoin)Úldr‰   s     rH   Ú#get_target_macos_dylib_install_namer�   „   sU   € à�r”y "¤'Ð*€DØ	„|ÐØ�Š�C˜"œ,Ñ&Ñ'Ô'Ð'Ø‡K‚K�ÑÔÐØ�7Š7�4‰=Œ=ÐrJ   c                  ó   — e Zd ZdS )ÚInvalidArgumentsN)Ú__name__Ú
__module__Ú__qualname__rE   rJ   rH   r�   r�   Œ   s   € € € € € Ø€DrJ   r�   F)Úeqc                  ó2   — e Zd ZU ded<   ded<   dZded<   dS )	ÚDependencyOverridezdependencies.DependencyÚdepz
'BaseNode'ÚnodeTÚboolÚexplicitN)r�   r‘   r’   Ú__annotations__r™   rE   rJ   rH   r•   r•   �   s;   € € € € € € à Ð Ð Ñ ØÐÐÑØ€HÐÐÐÑÐÐrJ   r•   c                  ój   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   dd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚHeadersúT.List[File]rY   úT.Optional[str]Úinstall_subdirÚcustom_install_dirú
'FileMode'Úcustom_install_moderƒ   Ú
subprojectÚsubdirr{   ÚNonec                ó   — || _         d S ©N©rŸ   )Úselfr¤   s     rH   Úset_install_subdirzHeaders.set_install_subdir    s   € Ø$ˆÔÐÐrJ   c                ó   — | j         S r§   r¨   ©r©   s    rH   Úget_install_subdirzHeaders.get_install_subdir£   ó   € ØÔ"Ð"rJ   c                ó   — | j         S r§   ©rY   r¬   s    rH   Úget_sourceszHeaders.get_sources¦   ó
   € ØŒ|ÐrJ   c                ó   — | j         S r§   ©r    r¬   s    rH   Úget_custom_install_dirzHeaders.get_custom_install_dir©   ó   € ØÔ&Ð&rJ   c                ó   — | j         S r§   ©r¢   r¬   s    rH   Úget_custom_install_modezHeaders.get_custom_install_mode¬   ó   € ØÔ'Ð'rJ   N)r¤   rƒ   r{   r¥   ©r{   rž   ©r{   r�   ©r{   r¡   )	r�   r‘   r’   rš   rª   r­   r±   rµ   r¹   rE   rJ   rH   rœ   rœ   •   s³   € € € € € € àÐÐÑØ#Ð#Ð#Ñ#Ø'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#Ø€O€O�Oð
%ð %ð %ð %ð#ð #ð #ð #ðð ð ð ð'ð 'ð 'ð 'ð(ð (ð (ð (ð (ð (rJ   rœ   c                  óZ   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   dd„Zdd„Zdd„ZdS )ÚManr�   rY   rž   r    r¡   r¢   rƒ   r£   Úlocaler{   c                ó   — | j         S r§   r´   r¬   s    rH   rµ   zMan.get_custom_install_dir¸   r¶   rJ   c                ó   — | j         S r§   r¸   r¬   s    rH   r¹   zMan.get_custom_install_mode»   rº   rJ   úT.List['File']c                ó   — | j         S r§   r°   r¬   s    rH   r±   zMan.get_sources¾   r²   rJ   Nr»   r½   ©r{   rÃ   )r�   r‘   r’   rš   rµ   r¹   r±   rE   rJ   rH   r¿   r¿   °   s‹   € € € € € € àÐÐÑØ'Ð'Ð'Ñ'Ø#Ð#Ð#Ñ#Ø€O€O�OØÐÐÑð'ð 'ð 'ð 'ð(ð (ð (ð (ðð ð ð ð ð rJ   r¿   c                  ó<   — e Zd ZU ded<   ded<   ded<   dZded<   dS )	ÚEmptyDirrƒ   Úpathr¡   rc   r£   Nrž   r`   )r�   r‘   r’   rš   r`   rE   rJ   rH   rÇ   rÇ   Â   sA   € € € € € € à€I€I�IØÐÐÑØ€O€O�OØ#'€KÐ'Ð'Ð'Ñ'Ð'Ð'rJ   rÇ   c                  ó|   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   dZd
ed<   dZded<   dS )Ú
InstallDirrƒ   Úsource_subdirÚinstallable_subdirr_   Úinstall_dir_namer¡   rc   zT.Tuple[T.Set[str], T.Set[str]]Úexcluder˜   Ústrip_directoryr£   TÚfrom_source_dirNrž   r`   )r�   r‘   r’   rš   rÐ   r`   rE   rJ   rH   rÊ   rÊ   Ê   s‘   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ,Ð,Ð,Ñ,ØÐÐÑØ€O€O�OØ €OÐ Ð Ð Ñ Ø#'€KÐ'Ð'Ð'Ñ'Ð'Ð'rJ   rÊ   c                  ó,   — e Zd ZU ded<   ded<   d	d„ZdS )
ÚDepManifestrƒ   rp   úT.List[str]Úlicenser{   ú&T.Dict[str, T.Union[str, T.List[str]]]c                ó    — | j         | j        dœS )N©rp   rÔ   r×   r¬   s    rH   Úto_jsonzDepManifest.to_jsonÜ   s   € à”|Ø”|ð
ð 
ð 	
rJ   N)r{   rÕ   )r�   r‘   r’   rš   rØ   rE   rJ   rH   rÒ   rÒ   ×   s?   € € € € € € à€L€L�LØÐÐÑð
ð 
ð 
ð 
ð 
ð 
rJ   rÒ   c                  ó²   — e Zd ZdZd-d„Zd„ Zd„ Zd.d„Zd/d„Zd0d„Z	d„ Z
d„ Zd1d„Zd2d„Zd2d„Zd3d„Zd4d„Zd5d„Zd6d„Zd7d„Zd8d!„Zd9d&„Zd:d)„Zd9d*„Zd:d+„Zd,S );ÚBuildzYA class that holds the status of one build including
    all dependencies and so on.
    r
   úenvironment.Environmentc                óü  — d| _         d | _        || _        i | _        t	          ¦   «         | _        t          i i ¦  «        | _        t          i i ¦  «        | _        t          i i ¦  «        | _	        t          i i ¦  «        | _
        g | _        g | _        g | _        g | _        g | _        g | _        g | _        t          d d ¦  «        | _        i | _        d| _        g | _        g | _        g | _        g | _        d | _        i | _        t          i i ¦  «        | _        i | _        d | _        i | _        t?          ¦   «         | _         tC          j"         |j#        ¦   «         i i ¦  «        | _$        g | _%        g | _&        d| _'        d S )Nzname of master projectr‡   F)(Úproject_nameÚproject_versionr
   Úprojectsr   Útargetsr   Úglobal_argsÚglobal_link_argsÚprojects_argsÚprojects_link_argsÚtestsÚ
benchmarksÚheadersÚmanÚemptydirÚdataÚsymlinksÚstatic_linkerÚsubprojectsÚsubproject_dirÚinstall_scriptsÚpostconf_scriptsÚdist_scriptsÚinstall_dirsÚdep_manifest_nameÚdep_manifestÚstdlibsÚtest_setupsÚtest_setup_default_nameÚfind_overridesÚsetÚsearched_programsr   ÚdefaultÚis_cross_buildÚdependency_overridesÚdevenvÚmodulesÚ
need_vsenv)r©   r
   s     rH   Ú__init__zBuild.__init__é   s{  € Ø4ˆÔØ#ˆÔØ&ˆÔØˆŒÝQ\ÑQ^ÔQ^ˆŒÝAKÈBÐPRÑASÔASˆÔÝFPÐQSÐUWÑFXÔFXˆÔÝPZÐ[]Ð_aÑPbÔPbˆÔÝU_Ð`bÐdfÑUgÔUgˆÔØ%'ˆŒ
Ø*,ˆŒØ(*ˆŒØ "ˆŒØ*,ˆŒØ"$ˆŒ	Ø-/ˆŒÝ7AÀ$ÈÑ7MÔ7MˆÔØˆÔØ ˆÔØBDˆÔØCEˆÔØ?AˆÔØ02ˆÔØ26ˆÔØ68ˆÔÝ! " bÑ)Ô)ˆŒØ35ˆÔØ'+ˆÔ$ØvxˆÔÝ-0©U¬UˆÔõ VkÔUrØ&ˆKÔ&Ñ(Ô(¨"¨bñV2ô V2ˆÔ!à46ˆŒØ$&ˆŒØˆŒˆˆrJ   c                ó”   — t          ¦   «         }| j                             ¦   «         D ]\  }}t          |t          ¦  «        r|||<   Œ |S r§   )r   rà   ÚitemsÚ
isinstancer@   )r©   Úbuild_targetsr‰   Úts       rH   Úget_build_targetszBuild.get_build_targets  sO   € Ý#™œˆØ”|×)Ò)Ñ+Ô+ð 	(ð 	(‰GˆD�!Ý˜!�[Ñ)Ô)ð (Ø&'�˜dÑ#øØÐrJ   c                ó”   — t          ¦   «         }| j                             ¦   «         D ]\  }}t          |t          ¦  «        r|||<   Œ |S r§   )r   rà   r  r  r;   )r©   Úcustom_targetsr‰   r  s       rH   Úget_custom_targetszBuild.get_custom_targets  sO   € Ý$™œˆØ”|×)Ò)Ñ+Ô+ð 	)ð 	)‰GˆD�!Ý˜!�\Ñ*Ô*ð )Ø'(�˜tÑ$øØÐrJ   r{   c                ó
  — t          | j        ¦  «        }| j                             ¦   «         D ]T\  }}t	          |t
          t          t          t          f¦  «        r| 	                    ¦   «         |j        |<   ŒJ||j        |<   ŒU|S r§   )
rÚ   r
   Ú__dict__r  r  ÚlistÚdictrù   r   Úcopy©r©   ÚotherÚkÚvs       rH   r  z
Build.copy  sy   € Ý�dÔ&Ñ'Ô'ˆØ”M×'Ò'Ñ)Ô)ð 	&ð 	&‰DˆAˆqÝ˜!�d¥D­#­{Ð;Ñ<Ô<ð &Ø$%§F¢F¡H¤H�”˜qÑ!Ð!à$%�”˜qÑ!Ð!ØˆrJ   r  r¥   c                óX   — |j                              ¦   «         D ]\  }}|| j         |<   Œd S r§   )r  r  r  s       rH   ÚmergezBuild.merge(  s<   € Ø”N×(Ò(Ñ*Ô*ð 	!ð 	!‰DˆAˆqØ ˆDŒM˜!ÑÐð	!ð 	!rJ   Úcompilerr0   c                óž   — | j         |j                 €8|                     ¦   «         r&t          | j        |¦  «        | j         |j        <   d S d S d S r§   )rì   Úfor_machineÚneeds_static_linkerr)   r
   )r©   r  s     rH   Úensure_static_linkerzBuild.ensure_static_linker,  sV   € ØÔ˜hÔ2Ô3Ð;À×@\Ò@\Ñ@^Ô@^Ð;Ý7KÈDÔL\Ð^fÑ7gÔ7gˆDÔ˜xÔ3Ñ4Ð4Ð4ð <Ð;Ð;Ð;rJ   c                ó   — | j         d         S )Nr‡   )rß   r¬   s    rH   Úget_projectzBuild.get_project0  s   € ØŒ}˜RÔ Ð rJ   c                ó   — | j         S r§   )rî   r¬   s    rH   Úget_subproject_dirzBuild.get_subproject_dir3  r®   rJ   ú8'T.OrderedDict[str, T.Union[CustomTarget, BuildTarget]]'c                ó   — | j         S r§   )rà   r¬   s    rH   Úget_targetszBuild.get_targets6  r²   rJ   úT.List['Test']c                ó   — | j         S r§   )rå   r¬   s    rH   Ú	get_testszBuild.get_tests9  s
   € ØŒzÐrJ   c                ó   — | j         S r§   )ræ   r¬   s    rH   Úget_benchmarkszBuild.get_benchmarks<  ó
   € ØŒÐrJ   úT.List['Headers']c                ó   — | j         S r§   )rç   r¬   s    rH   Úget_headerszBuild.get_headers?  r²   rJ   úT.List['Man']c                ó   — | j         S r§   )rè   r¬   s    rH   Úget_manzBuild.get_manB  ó	   € ØŒxˆrJ   úT.List['Data']c                ó   — | j         S r§   )rê   r¬   s    rH   Úget_datazBuild.get_dataE  ó
   € ØŒyÐrJ   úT.List['SymlinkData']c                ó   — | j         S r§   )rë   r¬   s    rH   Úget_symlinkszBuild.get_symlinksH  ó
   € ØŒ}ÐrJ   úT.List['EmptyDir']c                ó   — | j         S r§   )ré   r¬   s    rH   Úget_emptydirzBuild.get_emptydirK  r6  rJ   úT.List['InstallDir']c                ó   — | j         S r§   )rò   r¬   s    rH   Úget_install_subdirszBuild.get_install_subdirsN  ó   € ØÔ Ð rJ   ú
'Compiler'r  ú'MachineChoice'rÓ   c                ól   — | j         |         }|                     |                     ¦   «         g ¦  «        S r§   )rá   ÚgetÚget_language©r©   r  r  Úds       rH   Úget_global_argszBuild.get_global_argsQ  s/   € ØÔ˜[Ô)ˆØ�uŠu�X×*Ò*Ñ,Ô,¨bÑ1Ô1Ð1rJ   Úprojectrƒ   c                óž   — | j         |         }|                     |¦  «        }|sg S |                     |                     ¦   «         g ¦  «        S r§   )rã   rA  rB  )r©   r  rF  r  rD  Úargss         rH   Úget_project_argszBuild.get_project_argsU  sK   € ØÔ˜{Ô+ˆØ�uŠu�W‰~Œ~ˆØð 	ØˆIØ�xŠx˜×-Ò-Ñ/Ô/°Ñ4Ô4Ð4rJ   c                ól   — | j         |         }|                     |                     ¦   «         g ¦  «        S r§   )râ   rA  rB  rC  s       rH   Úget_global_link_argszBuild.get_global_link_args\  s/   € ØÔ! +Ô.ˆØ�uŠu�X×*Ò*Ñ,Ô,¨bÑ1Ô1Ð1rJ   c                óž   — | j         |         }|                     |¦  «        }|sg S |                     |                     ¦   «         g ¦  «        S r§   )rä   rA  rB  )r©   r  rF  r  rD  rZ   s         rH   Úget_project_link_argszBuild.get_project_link_args`  sK   € ØÔ# KÔ0ˆà—E’E˜'‘N”Nˆ	Øð 	ØˆIà�}Š}˜X×2Ò2Ñ4Ô4°bÑ9Ô9Ð9rJ   N)r
   rÛ   )r{   rÚ   )r  rÚ   r{   r¥   )r  r0   r{   r¥   )r{   r  )r{   r"  )r{   r(  )r{   r+  )r{   r/  )r{   r3  )r{   r7  )r{   r:  )r  r>  r  r?  r{   rÓ   )r  r>  rF  rƒ   r  r?  r{   rÓ   )r�   r‘   r’   Ú__doc__r  r  r
  r  r  r  r  r  r!  r$  r&  r*  r-  r1  r5  r9  r<  rE  rI  rK  rM  rE   rJ   rH   rÚ   rÚ   ä   s³  € € € € € ðð ð& ð & ð & ð & ðPð ð ðð ð ðð ð ð ð!ð !ð !ð !ðhð hð hð hð!ð !ð !ð#ð #ð #ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ð2ð 2ð 2ð 2ð5ð 5ð 5ð 5ð2ð 2ð 2ð 2ð:ð :ð :ð :ð :ð :rJ   rÚ   c                  ó~   — e Zd ZU dZded<   ded<   ded<    ee¬¦  «        Zded	<   dd„Zdd„Z	dd„Z
dd„Zddd„ZdS )ÚIncludeDirsz7Internal representation of an include_directories call.rƒ   ÚcurdirrÓ   Úincdirsr˜   Ú	is_system©Údefault_factoryÚextra_build_dirsr{   c                ó\   — d}|                      | j        j        | j        | j        ¦  «        S )Nz
<{} {}/{}>)ÚformatÚ	__class__r�   rQ  rR  ©r©   Úrs     rH   Ú__repr__zIncludeDirs.__repr__u  s&   € ØˆØ�xŠx˜œÔ/°´¸d¼lÑKÔKÐKrJ   c                ó   — | j         S r§   )rQ  r¬   s    rH   Ú
get_curdirzIncludeDirs.get_curdiry  ó
   € ØŒ{ÐrJ   c                ó   — | j         S r§   )rR  r¬   s    rH   Úget_incdirszIncludeDirs.get_incdirs|  r²   rJ   c                ó   — | j         S r§   )rV  r¬   s    rH   Úget_extra_build_dirsz IncludeDirs.get_extra_build_dirs  s   € ØÔ$Ð$rJ   NÚ	sourcedirÚbuilddirrž   c                ó  — g }| j         D ]v}|                     t          j                             || j        |¦  «        ¦  «         |r9|                     t          j                             || j        |¦  «        ¦  «         Œw|S )a*  Convert IncludeDirs object to a list of strings.

        :param sourcedir: The absolute source directory
        :param builddir: The absolute build directory, option, build dir will not
            be added if this is unset
        :returns: A list of strings (without compiler argument)
        )rR  rŠ   ÚosrÈ   r‹   rQ  )r©   rd  re  ÚstrlistÚidirs        rH   Úto_string_listzIncludeDirs.to_string_list‚  sw   € ð  "ˆØ”Lð 	Jð 	JˆDØ�NŠN�2œ7Ÿ<š<¨	°4´;ÀÑEÔEÑFÔFÐFØð JØ—’�rœwŸ|š|¨H°d´kÀ4ÑHÔHÑIÔIÐIøØˆrJ   ©r{   rƒ   ©r{   rÓ   r§   )rd  rƒ   re  rž   r{   rÓ   )r�   r‘   r’   rN  rš   r   r  rV  r\  r^  ra  rc  rj  rE   rJ   rH   rP  rP  i  sË   € € € € € € ð BÐAà€K€K�KØÐÐÑØ€O€O�Oð %* E¸$Ð$?Ñ$?Ô$?ÐÐ?Ð?Ð?Ñ?ðLð Lð Lð Lðð ð ð ðð ð ð ð%ð %ð %ð %ðð ð ð ð ð ð rJ   rP  c                  óÊ   — e Zd ZU dZded<    ee¬¦  «        Zded<    ee¬¦  «        Zded<    ee¬¦  «        Z	d	ed
<   dZ
ded<   dd„Zdd„Zed d„¦   «         Zd!d„Zdd„ZdS )"ÚExtractedObjectszI
    Holds a list of sources for which the objects must be extracted
    z'BuildTarget'ÚtargetrT  r�   ÚsrclistúT.List['GeneratedTypes']Úgenlistú0T.List[T.Union[str, 'File', 'ExtractedObjects']]ÚobjlistTr˜   Ú	recursiver{   r¥   c                óJ   — | j         j        r|                      ¦   «          d S d S r§   )ro  Úis_unityÚcheck_unity_compatibler¬   s    rH   Ú__post_init__zExtractedObjects.__post_init__œ  s1   € ØŒ;Ôð 	*Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)ð	*ð 	*rJ   rƒ   c                óf   — d}|                      | j        j        | j        j        | j        ¦  «        S )Nz<{0} {1!r}: {2}>)rX  rY  r�   ro  r‰   rp  rZ  s     rH   r\  zExtractedObjects.__repr__   s)   € ØˆØ�xŠx˜œÔ/°´Ô1AÀ4Ä<ÑPÔPÐPrJ   rY   úT.Sequence['FileOrString']Úgenerated_sourcesúT.Sequence['GeneratedTypes']úT.List['FileOrString']c                óš   — t          | ¦  «        } |D ].}|                     ¦   «         D ]}|                      |¦  «         ŒŒ/d„ | D ¦   «         S )Nc                ó:   — g | ]}t          j        |¦  «        ¯|‘ŒS rE   )r
   Ú	is_source)rF   Úss     rH   ú
<listcomp>z0ExtractedObjects.get_sources.<locals>.<listcomp>°  s(   € Ð?Ð?Ð?�a¥kÔ&;¸AÑ&>Ô&>Ð?�Ð?Ð?Ð?rJ   )r  Úget_outputsrŠ   )rY   r|  Úgensrcr‚  s       rH   r±   zExtractedObjects.get_sources¤  sl   € õ �w‘-”-ˆØ'ð 	"ð 	"ˆFØ×'Ò'Ñ)Ô)ð "ð "�ð —’˜qÑ!Ô!Ð!Ð!ð	"ð @Ð?˜7Ð?Ñ?Ô?Ð?rJ   úT.List[FileOrString]ú*T.Dict['Compiler', T.List['FileOrString']]c                ó†   — |                       ||¦  «        }t          | j        j                             ¦   «         |¦  «        S r§   )r±   r   ro  Ú	compilersÚvalues)r©   rY   r|  Úsources_s       rH   Úclassify_all_sourcesz%ExtractedObjects.classify_all_sources²  s9   € Ø×#Ò# GÐ->Ñ?Ô?ˆÝ% d¤kÔ&;×&BÒ&BÑ&DÔ&DÀhÑOÔOÐOrJ   c                ó8  — |                       | j        j        | j        j        ¦  «        }|                       | j        | j        ¦  «        }|                     ¦   «         D ]:\  }}t          |¦  «        t          ||         ¦  «        k    rt          d¦  «        ‚Œ;d S )Nz~Single object files can not be extracted in Unity builds. You can only extract all the object files for each compiler at once.)	rŒ  ro  rY   Ú	generatedrp  rr  r  rù   r   )r©   ÚcmpsrcsÚextracted_cmpsrcsÚcompÚsrcss        rH   rx  z'ExtractedObjects.check_unity_compatible¶  s§   € ð ×+Ò+¨D¬KÔ,?ÀÄÔAVÑWÔWˆØ ×5Ò5°d´lÀDÄLÑQÔQÐà+×1Ò1Ñ3Ô3ð 	Tð 	T‰JˆD�$Ý�4‰yŒy�C ¨¤Ñ.Ô.Ò.Ð.Ý$ð &Sñ Tô Tð Tð /ð	Tð 	TrJ   N©r{   r¥   rk  )rY   r{  r|  r}  r{   r~  )rY   r†  r|  r}  r{   r‡  )r�   r‘   r’   rN  rš   r   r  rp  rr  rt  ru  ry  r\  Ústaticmethodr±   rŒ  rx  rE   rJ   rH   rn  rn  ‘  s  € € € € € € ðð ð ÐÐÑØ!˜E°$Ð7Ñ7Ô7€GÐ7Ð7Ð7Ñ7Ø(-¨¸dÐ(CÑ(CÔ(C€GÐCÐCÐCÑCØ@EÀÐVZÐ@[Ñ@[Ô@[€GÐ[Ð[Ð[Ñ[Ø€IÐÐÐÑð*ð *ð *ð *ðQð Qð Qð Qð ð@ð @ð @ñ „\ð@ðPð Pð Pð PðTð Tð Tð Tð Tð TrJ   rn  )r“   Úorderc                  ó`   — e Zd ZU dZ ed„ ¬¦  «        Zded<   dd„Zdd
„Zdd„Z	dd„Z
dd„ZdS )ÚStructuredSourcesa  A container for sources in languages that use filesystem hierarchy.

    Languages like Rust and Cython rely on the layout of files in the filesystem
    as part of the compiler implementation. This structure allows us to
    represent the required filesystem layout.
    c                 ó*   — t          t          ¦  «        S r§   )r   r  rE   rJ   rH   ú<lambda>zStructuredSources.<lambda>Ò  s   € ¥­DÑ 1Ô 1€ rJ   rT  zYT.DefaultDict[str, T.List[T.Union[File, CustomTarget, CustomTargetIndex, GeneratedList]]]rY   r  r{   c                óÆ   — | j                              ¦   «         }|j                              ¦   «         D ] \  }}||                              |¦  «         Œ!t	          |¦  «        S r§   )rY   r  r  Úextendr—  )r©   r  rY   r  r  s        rH   Ú__add__zStructuredSources.__add__Ô  s_   € Ø”,×#Ò#Ñ%Ô%ˆØ”M×'Ò'Ñ)Ô)ð 	!ð 	!‰DˆAˆqØ�AŒJ×Ò˜aÑ Ô Ð Ð Ý  Ñ)Ô)Ð)rJ   r˜   c                ó*   — t          | j        ¦  «        S r§   )r˜   rY   r¬   s    rH   Ú__bool__zStructuredSources.__bool__Ú  s   € Ý�D”LÑ!Ô!Ð!rJ   ú=T.Union[File, CustomTarget, CustomTargetIndex, GeneratedList]c                ó(   — | j         d         d         S )zXGet the first source in the root

        :return: The first source in the root
        r‡   r   r°   r¬   s    rH   Ú
first_filezStructuredSources.first_fileÝ  s   € ð
 Œ|˜BÔ Ô"Ð"rJ   úET.List[T.Union[File, CustomTarget, CustomTargetIndex, GeneratedList]]c                óˆ   — t          t          j                             | j                             ¦   «         ¦  «        ¦  «        S r§   )r  Ú	itertoolsÚchainÚfrom_iterablerY   rŠ  r¬   s    rH   Úas_listzStructuredSources.as_listä  s.   € Ý•I”O×1Ò1°$´,×2EÒ2EÑ2GÔ2GÑHÔHÑIÔIÐIrJ   c                ó�   — | j                              ¦   «         D ]+}|D ]&}t          |t          ¦  «        r|j        r  dS Œ#  dS Œ,dS )a	  Do we need to create a structure in the build directory.

        This allows us to avoid making copies if the structures exists in the
        source dir. Which could happen in situations where a generated source
        only exists in some configurations
        TF)rY   rŠ  r  r   Úis_built)r©   ÚfilesÚfs      rH   Ú
needs_copyzStructuredSources.needs_copyç  sq   € ð ”\×(Ò(Ñ*Ô*ð 	 ð 	 ˆEØð  ð  �Ý˜a¥Ñ&Ô&ð  Ø”zð $Ø#˜t˜t˜tð$ð  ˜4˜4˜4ð ð ˆurJ   N)r  r—  r{   r—  ©r{   r˜   )r{   rŸ  )r{   r¢  )r�   r‘   r’   rN  r   rY   rš   rœ  rž  r¡  r§  r¬  rE   rJ   rH   r—  r—  Ç  sÀ   € € € € € € ðð ð joÐinØ1Ð1ðj3ñ j3ô j3€Gð 3ð 3ð 3ñ 3ð*ð *ð *ð *ð"ð "ð "ð "ð#ð #ð #ð #ðJð Jð Jð Jðð ð ð ð ð rJ   r—  c                  ó*  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   d4d„Zd5d„Zd5d„Zd5d„Zd5d„Zd6d„Z	d7d„Z
d8d„Zd9d„Zd9d„Zd9d„Zed„ ¦   «         Zed:d „¦   «         Zd9d!„Zd;d$„Zd<d'„Zd=d)„Zd>d-„Zed?d.„¦   «         Zd@d/„ZdAd1„Zd@d2„Zd3S )BÚTargetrƒ   r‰   r¤   z'SubProject'r£   r˜   rh   r   r  rÛ   r
   r{   r¥   c                ót  — t          | j        ¦  «        r/t          j        t	          j        d| j        › d�¦  «        ¦  «         d| _        d| _        t          i | j	        j
        j        | j        ¦  «        | _        g | _        t          | d¦  «        s%t          dt!          | ¦  «        j        › d�¦  «        ‚d S )Nz                Target "z´" has a path separator in its name.
                This is not supported, it can cause unexpected failures and will become
                a hard error in the future.
            FÚtypenamez)Target type is not set for target class "z". This is a bug)r   r‰   r   ÚwarningÚtextwrapÚdedentrW   Úbuild_always_staler    r
   ÚcoredataÚoptionsr£   r^   ÚhasattrÚRuntimeErrorÚtyper�   r¬   s    rH   ry  zTarget.__post_init__  sË   € Ý˜œ	Ñ"Ô"ð 	åŒL�œð *Øœð*ð *ð *ñ ô ñ ô ð ð
 ˆŒØ"'ˆÔÝ*¨2¨tÔ/?Ô/HÔ/PÐRVÔRaÑbÔbˆŒØˆÔÝ�t˜ZÑ(Ô(ð 	rÝÐpÍ4ÐPTÉ:Ì:ÔK^ÐpÐpÐpÑqÔqÐqð	rð 	rrJ   r  Úobjectc                óŽ   — t          |t          ¦  «        st          S |                      ¦   «         |                     ¦   «         k     S r§   ©r  r¯  ÚNotImplementedÚget_id©r©   r  s     rH   Ú__lt__zTarget.__lt__  ó5   € Ý˜%¥Ñ(Ô(ð 	"Ý!Ð!Ø�{Š{‰}Œ}˜uŸ|š|™~œ~Ò-Ð-rJ   c                óŽ   — t          |t          ¦  «        st          S |                      ¦   «         |                     ¦   «         k    S r§   r½  rÀ  s     rH   Ú__le__zTarget.__le__  ó5   € Ý˜%¥Ñ(Ô(ð 	"Ý!Ð!Ø�{Š{‰}Œ} §¢¡¤Ò.Ð.rJ   c                óŽ   — t          |t          ¦  «        st          S |                      ¦   «         |                     ¦   «         k    S r§   r½  rÀ  s     rH   Ú__gt__zTarget.__gt__  rÂ  rJ   c                óŽ   — t          |t          ¦  «        st          S |                      ¦   «         |                     ¦   «         k    S r§   r½  rÀ  s     rH   Ú__ge__zTarget.__ge__#  rÅ  rJ   úT.Tuple[str, str]c                ó   — t           ‚r§   ©ÚNotImplementedErrorr¬   s    rH   Úget_default_install_dirzTarget.get_default_install_dir(  ó   € Ý!Ð!rJ   ú$T.List[T.Union[str, Literal[False]]]c                ó   — t           ‚r§   rÌ  r¬   s    rH   rµ   zTarget.get_custom_install_dir+  rÏ  rJ   úBT.Tuple[T.List[T.Union[str, Literal[False]]], str, Literal[False]]c                óð   — |                       ¦   «         \  }}|                      ¦   «         }|r%|d         |k    r|d         durd}d„ |D ¦   «         }n d}|r||d<   n|g}|gt          |¦  «        z  }|||fS )Nr   Tc                ó0   — g | ]}t          |d d¦  «        ‘ŒS )ÚoptnameN)Úgetattr)rF   Úis     rH   rƒ  z*Target.get_install_dir.<locals>.<listcomp>7  s$   € Ð NÐ NÐ NÀ¥¨¨I°tÑ!<Ô!<Ð NÐ NÐ NrJ   F)rÎ  rµ   r~   )r©   Údefault_install_dirÚdefault_install_dir_nameÚoutdirsr    Úinstall_dir_namess         rH   Úget_install_dirzTarget.get_install_dir.  s¶   € à8<×8TÒ8TÑ8VÔ8VÑ5ÐÐ5Ø×-Ò-Ñ/Ô/ˆØð 	J�w˜q”zÐ%8Ò8Ð8¸WÀQ¼ZÈtÐ=SÐ=Sð "&ÐØ NÐ NÀgÐ NÑ NÔ NÐÐà!&Ðð ð 0Ø0�˜‘
�
à.Ð/�Ø!9Ð :½SÀ¹\¼\Ñ IÐàÐ)Ð+=Ð=Ð=rJ   c                ó   — | j         S r§   ©r‰   r¬   s    rH   Úget_basenamezTarget.get_basenameD  r2  rJ   c                ó   — | j         S r§   ©r¤   r¬   s    rH   Ú
get_subdirzTarget.get_subdirG  r_  rJ   c                ó   — | j         S r§   )r±  r¬   s    rH   Úget_typenamezTarget.get_typenameJ  r6  rJ   c                ó´   — t          j        ¦   «         }|                     |                      dd¬¦  «        ¦  «         |                     ¦   «         d d…         S )Nzutf-8Úreplace)ÚencodingÚerrorsé   )ÚhashlibÚsha256ÚupdateÚencodeÚ	hexdigest)Ú	target_idÚhs     rH   Ú_get_id_hashzTarget._get_id_hashM  sO   € õ ŒNÑÔˆØ	�Š�×!Ò!¨7¸9Ð!ÑEÔEÑFÔFÐFð �{Š{‰}Œ}˜R˜a˜RÔ Ð rJ   Útype_suffixc                óÎ   — |                      dd¦  «                              dd¦  «        }t          |¦  «        rJ ‚||z   }| r"t                               | ¦  «        }|dz   |z   S |S )zuConstruct target ID from subdir, name and type suffix.

        This helper function is made public mostly for tests.ú/ú@ú\z@@)ræ  r   r¯  rñ  )r¤   r‰   rò  Ú	name_partÚmy_idÚsubdir_parts         rH   Úconstruct_id_from_pathzTarget.construct_id_from_pathW  su   € ð —L’L  cÑ*Ô*×2Ò2°4¸Ñ=Ô=ˆ	Ý Ñ,Ô,Ð,Ð,Ð,Ø˜KÑ'ˆØð 	.Ý ×-Ò-¨fÑ5Ô5ˆKà Ñ%¨Ñ-Ð-ØˆrJ   c                óh   — |                       | j        | j        |                      ¦   «         ¦  «        S r§   )rú  r¤   r‰   rò  r¬   s    rH   r¿  zTarget.get_idj  s1   € Ø×*Ò*ØŒK˜œ D×$4Ò$4Ñ$6Ô$6ñ8ô 8ð 	8rJ   ÚkwargsúT.Dict[str, T.Any]c                ó  — d|v r7|d         | _         t          | j         t          ¦  «        st          d¦  «        ‚n|                     dd¦  «        rd| _         |                      |                      |¦  «        ¦  «         d S )Nrh   z)build_by_default must be a boolean value.rW   FT)rh   r  r˜   r�   rA  Úset_option_overridesÚparse_overrides©r©   rü  s     rH   Úprocess_kwargs_basezTarget.process_kwargs_basen  sŽ   € Ø Ð'Ð'Ø$*Ð+=Ô$>ˆDÔ!Ý˜dÔ3µTÑ:Ô:ð TÝ&Ð'RÑSÔSÐSðTà�ZŠZ˜	 5Ñ)Ô)ð 	)ð %)ˆDÔ!à×!Ò! $×"6Ò"6°vÑ">Ô">Ñ?Ô?Ð?Ð?Ð?rJ   Úoption_overridesúT.Dict[OptionKey, str]c                óÐ   — i | j         _        |                     ¦   «         D ]D\  }}|j        r)|| j         j        |                     | j        ¬¦  «        <   Œ5|| j         j        |<   ŒEd S )N)Úmachine)r·  Ú	overridesr  rG   Úevolver  )r©   r  r  r  s       rH   rÿ  zTarget.set_option_overridesz  st   € Ø!#ˆŒÔØ$×*Ò*Ñ,Ô,ð 	.ð 	.‰DˆAˆqØŒvð .ØMN�”Ô& q§x¢x¸Ô8H xÑ'IÔ'IÑJÐJà,-�”Ô& qÑ)Ð)ð		.ð 	.rJ   r    c                ó   — | j         S r§   )r·  r¬   s    rH   Úget_optionszTarget.get_options‚  r²   rJ   Úkeyú'OptionKey'ú#T.Union[str, int, bool, 'WrapMode']c                óL   — t          j        d| j        |         j        ¦  «        S )Nz!T.Union[str, int, bool, WrapMode])ÚTÚcastr·  Úvalue)r©   r  s     rH   Ú
get_optionzTarget.get_option…  s!   € õ
 ŒvÐ9¸4¼<ÈÔ;LÔ;RÑSÔSÐSrJ   c                óˆ  — |                       dg ¦  «        }t          |t          ¦  «        rt          j        d|¦  «        S i }t          |¦  «        }|D ]m}d|vrt          d¦  «        ‚|                     dd¦  «        \  }}t          j	        | 
                    ¦   «         ¦  «        }| 
                    ¦   «         }|||<   Œn|S )Nri   r  ú=z%Overrides must be of form "key=value"r	   )rA  r  r  r  r  r   r�   Úsplitr   Úfrom_stringÚstrip)rü  ÚoptsÚresultr  Úor  r  r  s           rH   r   zTarget.parse_overridesŒ  sÀ   € à�zŠzÐ,¨bÑ1Ô1ˆõ �d�DÑ!Ô!ð 	:Ý”6Ð2°DÑ9Ô9Ð9à)+ˆÝ! $Ñ'Ô'ˆ	Øð 	ð 	ˆAØ˜!ˆ|ˆ|Ý&Ð'NÑOÔOÐOØ—7’7˜3 ‘?”?‰DˆAˆqÝÔ'¨¯ª©	¬	Ñ2Ô2ˆCØ—’‘	”	ˆAØˆF�3‰KˆKØˆrJ   c                ó   — dS ©NFrE   r¬   s    rH   Úis_linkable_targetzTarget.is_linkable_target   ó   € ØˆurJ   rÓ   c                ó   — g S r§   rE   r¬   s    rH   r„  zTarget.get_outputs£  ó   € Øˆ	rJ   c                ó   — dS r  rE   r¬   s    rH   Úshould_installzTarget.should_install¦  r  rJ   Nr“  )r  r»  r{   r˜   ©r{   rÊ  ©r{   rÐ  )r{   rÒ  rk  )r¤   rƒ   r‰   rƒ   rò  rƒ   r{   rƒ   )rü  rý  r{   r¥   )r  r  r{   r¥   )r{   r    )r  r  r{   r  )rü  rý  r{   r  r­  rl  )r�   r‘   r’   rš   ry  rÁ  rÄ  rÇ  rÉ  rÎ  rµ   rÜ  rß  râ  rä  r”  rñ  rú  r¿  r  rÿ  r
  r  r   r  r„  r"  rE   rJ   rH   r¯  r¯  ø  s=  € € € € € € ð
 €I€I�IØ€K€K�KØÐÐÑØÐÐÑØÐÐÑØ(Ð(Ð(Ñ(ðrð rð rð rð .ð .ð .ð .ð
/ð /ð /ð /ð
.ð .ð .ð .ð
/ð /ð /ð /ð
"ð "ð "ð "ð"ð "ð "ð "ð>ð >ð >ð >ð,ð ð ð ðð ð ð ðð ð ð ð ð!ð !ñ „\ð!ð ðð ð ñ „\ðð$8ð 8ð 8ð 8ð
@ð 
@ð 
@ð 
@ð.ð .ð .ð .ðð ð ð ðTð Tð Tð Tð ðð ð ñ „\ðð&ð ð ð ðð ð ð ðð ð ð ð ð rJ   r¯  c                  ój  ‡ — e Zd ZU eZded<   drˆ fd„Zdsd„Zd„ Zd„ Z	e
dtd„¦   «         Zd„ Zd„ Zd„ Zd„ Zdud„Zedvd"„¦   «         Zdwd%„Zdxd&„Zd'„ Zd(„ Zd)„ Zd*„ Zdyd.„Zdzd{d1„Zd|d3„Z ed4¬5¦  «        d|d6„¦   «         Zd}d9„Z ed4¬5¦  «        d}d:„¦   «         Z ed4¬5¦  «        d~d<„¦   «         Z dd>„Z!d€d?„Z"d�dA„Z#dB„ Z$d‚dD„Z%dƒdG„Z&d„dH„Z'dxdI„Z(dJ„ Z)d…dK„Z*dL„ Z+dM„ Z,d†dO„Z-d‡dQ„Z.dtdR„Z/dtdS„Z0dˆdU„Z1d‰dW„Z2dX„ Z3dŠdZ„Z4dtd[„Z5d\„ Z6d]„ Z7d‹d_„Z8dŒda„Z9d…d�df„Z:dŽdg„Z;d�di„Z<dxdj„Z=dk„ Z>d�dm„Z?dtdn„Z@dtdo„ZAdtdp„ZBdq„ ZCˆ xZDS )‘r@   rÐ  r_   r‰   rƒ   r¤   r£   r4   r  r   rY   úT.List['SourceOutputs']Ústructured_sourcesúT.Optional[StructuredSources]r
   rÛ   r‰  úT.Dict[str, 'Compiler']c                óÄ  •— t          ¦   «                              |||d||¦  «         |	| _        t          ¦   «         | _        g | _        || _        g | _        g | _        |
 	                    d¦  «        | _
        g | _        g | _        g | _        t          ¦   «         | _        d| _        d| _        d| _        | j        g| _        d| _        i | _        i | _        g | _        g | _        t3          t4          ¦  «        | _        d| _        d| _        t          ¦   «         | _        |                      |¦  «         |                       |¦  «         |  !                    |
¦  «         |  "                    |
¦  «         tG          | j        | j        | j        | j        | j        g¦  «        stI          j%        d|› d�¦  «         |  &                    ¦   «          |  '                    ¦   «          d S )NTrf   FÚno_namezBuild target z… has no sources. This was never supposed to be allowed but did because of a bug, support will be removed in a future release of Meson)(Úsuperr  Úall_compilersr   r‰  rX   r'  Úexternal_depsÚinclude_dirsrA  rf   Úlink_targetsÚlink_whole_targetsrd   rù   Ú
added_depsÚname_prefix_setÚname_suffix_setÚfilenameÚoutputsÚneed_installÚpchÚ
extra_argsrY   rŽ  r   r  Ú
d_featuresrt   rm   Úrpath_dirs_to_removeÚprocess_sourcelistÚprocess_objectlistÚprocess_kwargsÚcheck_unknown_kwargsÚanyr   r²  Úvalidate_installÚcheck_module_linking©r©   r‰   r¤   r£   r  rY   r'  rX   r
   r‰  rü  rY  s              €rH   r  zBuildTarget.__init__®  sÙ  ø€ õ 	‰Œ×Ò˜˜v z°4¸ÀkÑRÔRÐRØ&ˆÔÝ$™œˆŒØIKˆŒØ"4ˆÔØ>@ˆÔØ35ˆÔØ#ŸZšZ¨Ñ8Ô8ˆÔØ.0ˆÔØceˆÔØˆÔÝ™%œ%ˆŒØ$ˆÔØ$ˆÔØ!ˆŒð œ�ˆŒØ!ˆÔØ-/ˆŒØ?AˆŒØ%'ˆŒØ35ˆŒÝ%¥dÑ+Ô+ˆŒØˆŒØˆŒå25±%´%ˆÔ!Ø×Ò Ñ(Ô(Ð(ð 	×Ò Ñ(Ô(Ð(Ø×Ò˜FÑ#Ô#Ð#Ø×!Ò! &Ñ)Ô)Ð)Ý�D”L $¤.°$´,ÀÔ@WÐY]ÔYpÐqÑrÔrð 	QÝŒLð P¨ð Pð Pð Pñ Qô Qð Qð 	×ÒÑÔÐØ×!Ò!Ñ#Ô#Ð#Ð#Ð#rJ   r{   r¥   c                óÒ   — |                       ¦   «          | j        r*t          | j        | j        g¦  «        rt          d¦  «        ‚| j        rd| j        vrt          d¦  «        ‚dS dS )zV Initialisations and checks requiring the final list of compilers to be known
        z6cannot mix structured sources and unstructured sourcesÚrustz5structured sources are only supported in Rust targetsN)Úvalidate_sourcesr'  r@  rY   rŽ  r   r‰  r¬   s    rH   Ú	post_initzBuildTarget.post_initÛ  sƒ   € ð 	×ÒÑÔÐØÔ"ð 	[¥s¨D¬L¸$¼.Ð+IÑ'JÔ'Jð 	[Ý Ð!YÑZÔZÐZØÔ"ð 	Z v°T´^Ð'CÐ'CÝ Ð!XÑYÔYÐYð	Zð 	ZÐ'CÐ'CrJ   c                óv   — d}|                      | j        j        |                      ¦   «         | j        ¦  «        S ©Nú<{0} {1}: {2}>)rX  rY  r�   r¿  r5  ©r©   Úrepr_strs     rH   r\  zBuildTarget.__repr__ä  s,   € Ø#ˆØ�Š˜tœ~Ô6¸¿º¹¼ÀtÄ}ÑUÔUÐUrJ   c                ó   — | j         › S r§   rÞ  r¬   s    rH   Ú__str__zBuildTarget.__str__è  s   € Ø”)ˆ~ÐrJ   r˜   c                ót   — |                       t          d¦  «        ¦  «        }|dk    p|dk    o
| j        dk    S )NÚunityÚonrí   r‡   )r  r   r£   )r©   Ú	unity_opts     rH   rw  zBuildTarget.is_unityë  s=   € à—O’O¥I¨gÑ$6Ô$6Ñ7Ô7ˆ	Ø˜DÒ ÐZ Y°-Ò%?Ð%YÀDÄOÐWYÒDYÐZrJ   c                óº   — | j         t          j        u rE| j        r@| j                             ¦   «         rt          d¦  «        ‚t          j        d¦  «         d S d S d S )NzATried to install a target for the build machine in a cross build.zOInstalling target build for the build machine. This will fail in a cross build.)	r  r   ÚBUILDr7  r
   rü   r�   r   r²  r¬   s    rH   rA  zBuildTarget.validate_installð  sg   € ØÔ�}Ô2Ð2Ð2°tÔ7HÐ2ØÔ×.Ò.Ñ0Ô0ð pÝ&Ð'jÑkÔkÐkå”ÐnÑoÔoÐoÐoÐoð	 3Ð2Ð2Ð2rJ   c                ó<   — |                       || j        ¦  «         d S r§   )Úcheck_unknown_kwargs_intÚknown_kwargsr  s     rH   r?  z BuildTarget.check_unknown_kwargs÷  s#   € ð 	×%Ò% f¨dÔ.?Ñ@Ô@Ð@Ð@Ð@rJ   c                óð   — g }|D ]}||vr|                      |¦  «         Œt          |¦  «        dk    rBt          j        d                     | j        d                     |¦  «        ¦  «        ¦  «         d S d S )Nr   z-Unknown keyword argument(s) in target {}: {}.ú, )rŠ   r~   r   r²  rX  r‰   r‹   )r©   rü  rW  Úunknownsr  s        rH   rV  z$BuildTarget.check_unknown_kwargs_intü  sˆ   € ØˆØð 	#ð 	#ˆAØ˜Ð$Ð$Ø—’ Ñ"Ô"Ð"øÝˆx‰=Œ=˜1ÒÐÝŒLÐH×OÒOÐPTÔPYÐ[_×[dÒ[dÐemÑ[nÔ[nÑoÔoÑpÔpÐpÐpÐpð ÐrJ   c                óŽ  — t          |t          ¦  «        sJ ‚|D ]ª}t          |t          t          t          f¦  «        r| j                             |¦  «         Œ?t          |t          t          f¦  «        r#dd| j	        ›d�z   dz   dz   }t          |¦  «        ‚t          dt          |¦  «        j        ›d| j	        ›d�¦  «        ‚d S )	Nz7Generated files are not allowed in the 'objects' kwarg zfor target z.
It is meant only for z8pre-built object files that are shipped with the
source z+tree. Try adding it in the list of sources.zBad object of type ú in target r…   )r  r  rƒ   r   rn  rX   rŠ   r=   r;   r‰   r�   rº  r�   )r©   rX   r‚  Úmsgs       rH   r=  zBuildTarget.process_objectlist  sð   € Ý˜'¥4Ñ(Ô(Ð(Ð(Ð(Øð 
	lð 
	lˆAÝ˜!�c¥4Õ)9Ð:Ñ;Ô;ð 	lØ”×#Ò# AÑ&Ô&Ð&Ð&Ý˜A¥­|Ð<Ñ=Ô=ð lØQØG $¤)ÐGÐGÐGñHàOñPð BñB�õ ' sÑ+Ô+Ð+å&Ð'j½TÀ!¹W¼WÔ=MÐ'jÐ'jÐ\`Ô\eÐ'jÐ'jÐ'jÑkÔkÐkð
	lð 
	lrJ   c                ó6  — t          ¦   «         }|D ]‡}t          |t          ¦  «        r4||vr/| j                             |¦  «         |                     |¦  «         ŒKt          |t          t          t          f¦  «        r| j	                             |¦  «         ŒˆdS )a‚  Split sources into generated and static sources.

        Sources can be:
        1. Pre-existing source files in the source tree (static)
        2. Pre-existing sources generated by configure_file in the build tree.
           (static as they are only regenerated if meson itself is regenerated)
        3. Sources files generated by another target or a Generator (generated)
        N)
rù   r  r   rY   rŠ   Úaddr;   r<   r=   rŽ  )r©   rY   Úadded_sourcesr‚  s       rH   r<  zBuildTarget.process_sourcelist  sŸ   € õ &)¡U¤UˆØð 	)ð 	)ˆAÝ˜!�TÑ"Ô"ð )Ø˜MÐ)Ð)Ø”L×'Ò'¨Ñ*Ô*Ð*Ø!×%Ò% aÑ(Ô(Ð(øÝ˜A¥Õ.?ÅÐOÑPÔPð )Ø”×%Ò% aÑ(Ô(Ð(øð	)ð 	)rJ   r  r>  r~  c                ó|   — d}|d d …         D ].}|                       |¦  «        r|                     |¦  «         d}Œ/|S )NFT)Úcan_compileÚremove)r  rY   Úremovedr‚  s       rH   Úcan_compile_remove_sourcesz&BuildTarget.can_compile_remove_sources$  sQ   € àˆØ˜˜˜”ð 	ð 	ˆAØ×#Ò# AÑ&Ô&ð Ø—’˜qÑ!Ô!Ð!Ø�øØˆrJ   Úextra_languagesrÓ   c                ób  — |D ]}| j         |         | j        |<   Œ| j        r| j        gnt          }| j        s| j        rut          j        | j        | j        ¦  «        D ]U}t          |t          t          f¦  «        rŒ|j                             ¦   «         D ]\  }}||v r|| j        vr
|| j        |<   ŒŒV| j        s%|D ]"}|| j         v r| j         |         | j        |<    nŒ#t          t          | j                             ¦   «         d„ ¬¦  «        ¦  «        | _        |                      ¦   «          dS )a$  Processes additional compilers after kwargs have been evaluated.

        This can add extra compilers that might be required by keyword
        arguments, such as link_with or dependencies. It will also try to guess
        which compiler to use if one hasn't been selected already.
        c                ó,   — t          | d         ¦  «        S ©Nr   )r&   )r  s    rH   r™  z4BuildTarget.process_compilers_late.<locals>.<lambda>P  s   € ½*ÀQÀqÄTÑ:JÔ:J€ rJ   )r  N)r-  r‰  rf   r%   r0  r1  r¤  r¥  r  r;   r<   r  r   ÚsortedrG  )r©   rf  rG   Ú
link_langsr  r‰   r  s          rH   Úprocess_compilers_latez"BuildTarget.process_compilers_late-  s  € ð $ð 	<ð 	<ˆDØ#'Ô#5°dÔ#;ˆDŒN˜4Ñ Ð ð .2Ô-?ÐP�dÔ(Ð)Ð)Å[ˆ
ð Ôð 	8 Ô 7ð 	8Ý”_ TÔ%6¸Ô8OÑPÔPð 8ð 8�Ý˜a¥,Õ0AÐ!BÑCÔCð ØØ&'¤k×&7Ò&7Ñ&9Ô&9ð 8ð 8‘N�D˜(Ø˜zÐ)Ð)¨d¸$¼.Ð.HÐ.HØ/7˜œ tÑ,øð8ð Œ~ð 	ð #ð ð �Ø˜4Ô-Ð-Ð-Ø+/Ô+=¸dÔ+C�D”N 4Ñ(Ø�Eð .õ %¥V¨D¬N×,@Ò,@Ñ,BÔ,BØ0JÐ0Jð&Lñ &Lô &Lñ Mô MˆŒà�ŠÑÔÐÐÐrJ   c                ó*  — g }t          | j        | j        | j        | j        g¦  «        s|S t          | j        ¦  «        }| j                             ¦   «         }| j        rm| j        j                             ¦   «         D ]N}|D ]I}t          |t          t          f¦  «        r|                     |¦  «         Œ4|                     |¦  «         ŒJŒO|D ]=}|                     ¦   «         D ]&}t          |¦  «        s|                     |¦  «         Œ'Œ>| j        D ]=}|j        D ]3}t          |t          t          f¦  «        r|                     |¦  «         Œ4Œ>| j        D ]a}	t          |	t          ¦  «        sŒ|	                     |	j        g ¦  «        }
|
D ]+}|j        dk    rŒ|j        | j        vr|| j        |j        <   Œ,Œb|r¾|D ]»}| j                             ¦   «         D ]/\  }}|                     |¦  «        r|| j        vr
|| j        |<    nqŒ0t/          |¦  «        rat1          j        t          |¦  «        ¦  «                             ¦   «         }d| j                             ¦   «         › d|›�}t;          |¦  «        ‚Œ¼d| j        v rd| j        vr| j        d         | j        d<   d| j        v rht=          d| j        d¬¦  «        }|                      |¦  «        }	 | j        |         | j        |<   n%# t@          $ r |                     |¦  «         Y nw xY w|S )aq  
        Populate self.compilers, which is the list of compilers that this
        target will use for compiling all its sources.
        We also add compilers that were used by extracted objects to simplify
        dynamic linker determination.
        Returns a list of missing languages that we can add implicitly, such as
        C/C++ compiler for cython.
        ÚvalazNo z machine compiler for ÚcÚcythonÚlanguage)r  rG   )!r@  rY   rŽ  rX   r'  r  r  rŠ  r  rƒ   r   rŠ   r„  r$   r.  rn  rŒ  rp  rq  r‰  r-  r  rb  r(   ÚpathlibÚPathÚas_posixr  Úget_lower_case_namer   r   r  ÚKeyError)r©   Úmissing_languagesrY   rŽ  r  Úsrcr…  r‚  rD  r  Úcompsrcsr‘  rG   r  rÈ   Úmr  r  s                     rH   Úprocess_compilerszBuildTarget.process_compilersS  s›  € ð *,ÐÝ�D”L $¤.°$´,ÀÔ@WÐXÑYÔYð 	%Ø$Ð$å*.¨t¬|Ñ*<Ô*<ˆØ”N×'Ò'Ñ)Ô)ˆ	àÔ"ð 	.ØÔ,Ô4×;Ò;Ñ=Ô=ð .ð .�Øð .ð .�CÝ! #­­T {Ñ3Ô3ð .ØŸš sÑ+Ô+Ð+Ð+à!×(Ò(¨Ñ-Ô-Ð-Ð-ð	.ð  ð 	&ð 	&ˆFØ×'Ò'Ñ)Ô)ð &ð &�õ
 ! ‘|”|ð &Ø—N’N 1Ñ%Ô%Ð%øð&ð Ô#ð 	&ð 	&ˆAØ”Yð &ð &�Ý˜a¥#¥t Ñ-Ô-ð &Ø—N’N 1Ñ%Ô%Ð%øð&ð
 ”ð 	9ð 	9ˆAÝ˜aÕ!1Ñ2Ô2ð ØØ×-Ò-¨a¬i¸Ñ<Ô<ˆHØ ð 9ð 9�ð ”= FÒ*Ð*ØØ”=¨¬Ð6Ð6Ø48�D”N 4¤=Ñ1øð9ð ð 	0ð ð 
0ð 
0�Ø&*Ô&8×&>Ò&>Ñ&@Ô&@ð 	0ð 	0‘N�D˜(Ø×+Ò+¨AÑ.Ô.ð Ø t¤~Ð5Ð5Ø3;˜DœN¨4Ñ0Ø˜ðõ
 ' qÑ)Ô)ð 0Ý&œ|­C°©F¬FÑ3Ô3×<Ò<Ñ>Ô>˜Øh $Ô"2×"FÒ"FÑ"HÔ"HÐhÐhÐ`dÐhÐh˜Ý,¨QÑ/Ô/Ð/øð �T”^Ð#Ð#¨°4´>Ð(AÐ(AØ"&Ô"4°SÔ"9ˆDŒN˜3ÑØ�t”~Ð%Ð%Ý˜J°Ô0@ÀxÐPÑPÔPˆCØ—O’O CÑ(Ô(ˆEð0Ø(,Ô(:¸5Ô(A�”˜uÑ%Ð%øÝð 0ð 0ð 0Ø!×(Ò(¨Ñ/Ô/Ð/Ð/Ð/ð0øøøð !Ð s   ËK. Ë.LÌLc                óî   ‡ — t          ‰ j        ¦  «        dk    rYt          ˆ fd„dD ¦   «         ¦  «        r@d                     ‰ j                             ¦   «         ¦  «        }t          d|› �¦  «        ‚d S d S )Nr	   c              3  ó*   •K  — | ]}|‰j         v V — Œd S r§   ©r‰  )rF   rG   r©   s     €rH   ú	<genexpr>z/BuildTarget.validate_sources.<locals>.<genexpr>«  s*   øè è € Ð*]Ð*]Àd¨4°4´>Ð+AÐ*]Ð*]Ð*]Ð*]Ð*]Ð*]rJ   )ÚcsÚjavarY  z*Cannot mix those languages into a target: )r~   r‰  r@  r‹   Úkeysr�   )r©   Úlangss   ` rH   rF  zBuildTarget.validate_sourcesª  s   ø€ ÝˆtŒ~ÑÔ Ò"Ð"¥sÐ*]Ð*]Ð*]Ð*]ÈnÐ*]Ñ*]Ô*]Ñ']Ô']Ð"Ø—I’I˜dœn×1Ò1Ñ3Ô3Ñ4Ô4ˆEÝ"Ð#WÐPUÐ#WÐ#WÑXÔXÐXð #Ð"Ð"Ð"rJ   c                ó¦  — t          |¦  «        }|D ]¾}t          |t          ¦  «        r| j                             |¦  «         Œ2t          |t
          ¦  «        r>| j                             t          j        | j        j        | j	        |¦  «        ¦  «         Œ…t          |d¦  «        r| j                             |¦  «         Œ°t          d¦  «        ‚dS )a}  Process the link_depends keyword argument.

        This is designed to handle strings, Files, and the output of Custom
        Targets. Notably it doesn't handle generator() returned objects, since
        adding them as a link depends would inherently cause them to be
        generated twice, since the output needs to be passed to the ld_args and
        link_depends.
        r„  zTLink_depends arguments must be strings, Files, or a Custom Target, or lists thereof.N)r   r  r   rd   rŠ   rƒ   Úfrom_source_filer
   Ú
source_dirr¤   r¸  r�   )r©   rY   r‚  s      rH   Úprocess_link_dependsz BuildTarget.process_link_depends¯  sê   € õ ˜'Ñ"Ô"ˆØð 	=ð 	=ˆAÝ˜!�TÑ"Ô"ð 
=ØÔ!×(Ò(¨Ñ+Ô+Ð+Ð+Ý˜A�sÑ#Ô#ð =ØÔ!×(Ò(ÝÔ)¨$Ô*:Ô*EÀtÄ{ÐTUÑVÔVñXô Xð Xð Xå˜˜MÑ*Ô*ð =ØÔ!×(Ò(¨Ñ+Ô+Ð+Ð+å&ð<ñ=ô =ð =ð	=ð 	=rJ   c                ó   — | j         S r§   )rü  r¬   s    rH   Úget_original_kwargszBuildTarget.get_original_kwargsÆ  r_  rJ   c                ó6  — t          j         |¦  «        | _        | j                             ¦   «         D ]3\  }}t          |t          ¦  «        rt          |d¬¦  «        | j        |<   Œ4dD ]/}|| j        v r$t          | j        |         d¬¦  «        | j        |<   Œ0d S )NT)Úflatten)r   r[   rj   rY   )r  rü  r  r  r  r   )r©   rü  r  r  r  s        rH   Úcopy_kwargszBuildTarget.copy_kwargsÉ  s¨   € Ý”i Ñ'Ô'ˆŒØ”K×%Ò%Ñ'Ô'ð 	:ð 	:‰DˆAˆqÝ˜!�TÑ"Ô"ð :Ý!(¨°DÐ!9Ñ!9Ô!9�”˜A‘øØPð 	Gð 	GˆAØ�D”KÐÐÝ!(¨¬°Q¬ÀÐ!FÑ!FÔ!F�”˜A‘øð	Gð 	GrJ   rp  ú1T.List[T.Union['FileOrString', 'GeneratedTypes']]rn  c                ó.  — t          | j        ¦  «        }t          | j        ¦  «        }g }g }|D �]U}t          |t          t
          f¦  «        rtt          |t          ¦  «        rt          d| j        |¦  «        }nt          j        dd| j	        ¦  «         ||vrt          d|› d�¦  «        ‚|                     |¦  «         Œ“t          |t          t          t          f¦  «        r}t          j        dd| j	        ¦  «         t          |t          ¦  «        r|j        n|}||vr)||vr%t          d|                     ¦   «         › d�¦  «        ‚|                     |¦  «         �Œ2t          dt#          |¦  «        j        › d	�¦  «        ‚t'          | ||¦  «        S )
NFz!File argument for extract_objectsú0.50.0z Tried to extract unknown source r…   z%Generated sources for extract_objectsz0.61.0zCObject extraction arguments must be strings, Files or targets (got z).)rù   rY   rŽ  r  rƒ   r   r¤   r*   Ú
single_user£   r   rŠ   r;   r<   r=   ro  rß  rº  r�   rn  )r©   rp  Úsources_setÚgenerated_setÚobj_srcÚobj_genrx  ro  s           rH   Úextract_objectszBuildTarget.extract_objectsÒ  s¼  € Ý˜$œ,Ñ'Ô'ˆÝ˜DœNÑ+Ô+ˆà"$ˆØ,.ˆØð 	Cñ 	CˆCÝ˜#¥¥T˜{Ñ+Ô+ð CÝ˜c¥3Ñ'Ô'ð jÝ˜u d¤k°3Ñ7Ô7�C�CåÔ)Ð*MÈxÐY]ÔYhÑiÔiÐiØ˜kÐ)Ð)Ý(Ð)RÈCÐ)RÐ)RÐ)RÑSÔSÐSØ—’˜sÑ#Ô#Ð#Ð#Ý˜C¥,Õ0AÅ=Ð!QÑRÔRð CÝÔ%Ð&MÈxÐY]ÔYhÑiÔiÐiÝ'1°#Õ7HÑ'IÔ'IÐR˜œ˜Ès�Ø˜mÐ+Ð+°¸mÐ0KÐ0KÝ(Ð)dÈF×L_ÒL_ÑLaÔLaÐ)dÐ)dÐ)dÑeÔeÐeØ—’˜sÑ#Ô#Ð#Ñ#å$ð  &BÕkoÐpsÑktÔktÔk}ð  &Bð  &Bð  &Bñ  Cô  Cð  CÝ  g¨wÑ7Ô7Ð7rJ   Tru  c                óF   — t          | | j        | j        | j        |¦  «        S r§   )rn  rY   rŽ  rX   )r©   ru  s     rH   Úextract_all_objectszBuildTarget.extract_all_objectsë  s%   € Ý  d¤l°D´NÀDÄLØ )ñ+ô +ð 	+rJ   ú'ImmutableListProtocol[BuildTargetTypes]c                ó*   — |                       ¦   «         S r§   ©Úget_transitive_link_depsr¬   s    rH   Úget_all_link_depszBuildTarget.get_all_link_depsï  s   € Ø×,Ò,Ñ.Ô.Ð.rJ   Nr�   c                óL   — g }| j         D ]}||                     ¦   «         z  }Œ|S r§   )r0  rœ  ©r©   r  r×  s      rH   r›  z$BuildTarget.get_transitive_link_depsò  s6   € à!#ˆØÔ"ð 	,ð 	,ˆAØ�a×)Ò)Ñ+Ô+Ñ+ˆFˆFØˆrJ   rˆ   úT.Mapping[str, str]c                ó,   — |                       |¦  «        S r§   )Ú get_transitive_link_deps_mapping©r©   rˆ   s     rH   Úget_link_deps_mappingz!BuildTarget.get_link_deps_mappingù  s   € Ø×4Ò4°VÑ<Ô<Ð<rJ   c                óž   — i }| j         D ]B}|                     |¦  «        }|                     ¦   «         }|                     |¦  «         |}ŒC|S r§   )r0  r£  r  rì  )r©   rˆ   r  r×  ÚmappingÚ
result_tmps         rH   r¡  z,BuildTarget.get_transitive_link_deps_mappingü  sY   € à#%ˆØÔ"ð 	 ð 	 ˆAØ×-Ò-¨fÑ5Ô5ˆGà Ÿš™œˆJØ×Ò˜fÑ%Ô%Ð%ØˆFˆFØˆrJ   úT.AbstractSet[str]c                óü   — t          ¦   «         }| j        D ]e}t          |t          ¦  «        s'|                     |                     ¦   «         ¦  «         |                     |                     ¦   «         ¦  «         Œf|S r§   )r   r0  r  r?   r_  râ  rì  Úget_link_dep_subdirsrž  s      rH   r©  z BuildTarget.get_link_dep_subdirs  so   € å",¡,¤,ˆØÔ"ð 	4ð 	4ˆAÝ˜a¥Ñ/Ô/ð +Ø—
’
˜1Ÿ<š<™>œ>Ñ*Ô*Ð*Ø�MŠM˜!×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ð3ØˆrJ   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{libdir})r
   Ú
get_libdirr¬   s    rH   rÎ  z#BuildTarget.get_default_install_dir  ó   € ØÔ×*Ò*Ñ,Ô,¨jÐ8Ð8rJ   c                ó   — | j         S r§   ©r_   r¬   s    rH   rµ   z"BuildTarget.get_custom_install_dir  ó   € ØÔÐrJ   úT.Optional['FileMode']c                ó   — | j         S r§   ©rc   r¬   s    rH   r¹   z#BuildTarget.get_custom_install_mode  r=  rJ   c                ól  — |                       |¦  «         |                      |¦  «         |                     dg ¦  «         |                     d| j        ¦  «        | _        t	          |d¦  «        }|D ]R}t          |t          j        ¦  «        r!t          t          j
        d¦  «        ¦  «        ‚|                      |¦  «         ŒSt	          |d¦  «        }|D ]}|                      |¦  «         Œt          D ]+}t	          ||› d�¦  «        }|                      ||¦  «         Œ,|                      dt	          |d¦  «        ¦  «         |                      d	t	          |d
¦  «        ¦  «         t          | t           ¦  «        r|                     dd¦  «        ra|                     d| j        dz   ¦  «        | _        |                     d| j        dz   ¦  «        | _        |                     dd ¦  «        | _        t+          t,          ¦  «        }|                     dd¦  «        }|r||d<   |                     dg ¦  «        }	|	r|	|d<   |                     dg ¦  «        }
|
r|
|d<   d|v r>t	          |d¦  «        }|D ]&}t          |t.          ¦  «        st1          d¦  «        ‚Œ'||d<   |r|| _        t	          |d¦  «        | _        | j        D ]&}t          |t6          ¦  «        st1          d¦  «        ‚Œ'| j        D ]A}d|v s|                     d¦  «        r&t;          j        t          j
        d¦  «        ¦  «         ŒB|                      |                     d g ¦  «        ¦  «         t	          |d!¦  «        }|                       |¦  «         t	          |d"¦  «        }|  !                    |¦  «         tE          |                     d#g ¦  «        t6          tF          f¦  «        | _$        |                     d$d ¦  «        | _%        tM          |                     d%d g¦  «        ¦  «        | _'        |                     d&d'¦  «        }t          |t6          ¦  «        st1          d(¦  «        ‚|| _(        t          | t           ¦  «        rƒd | _)        d)|v rId*|v rt1          d+¦  «        ‚|d)         | _)        t          | j)        tF          ¦  «        st1          d,¦  «        ‚|  *                    |                     d*d-¦  «        ¦  «        | _+        n&d)|v rt1          d.¦  «        ‚d*|v rt1          d/¦  «        ‚t	          |d0¦  «        }|D ]�}t          |tX          ¦  «        sJ ‚tZ          j.         /                    | j0         1                    ¦   «         |j2        |j3        ¦  «        }tZ          j.         4                    |¦  «        st1          d1|› d2�¦  «        ‚ŒŽ|| _5        |                     d3d'¦  «        | _6        t          | j6        t6          ¦  «        st1          d4¦  «        ‚|                     d5d'¦  «        | _7        t          | j7        t6          ¦  «        st1          d6¦  «        ‚t	          |d7¦  «        }|D ]•}t          |t6          ¦  «        st1          d8¦  «        ‚tZ          j.         /                    | j0         1                    ¦   «         | j2        |¦  «        }tZ          j.         4                    |¦  «        st1          d9|› d2�¦  «        ‚Œ–|| _8        d:|v ra|d:         }t          |t,          ¦  «        r|rt1          d;¦  «        ‚n2t          |t6          ¦  «        st1          d<¦  «        ‚|| _9        d=| _:        d>|v rv|d>         }t          |t,          ¦  «        r|rt1          d?¦  «        ‚nGt          |t6          ¦  «        st1          d@¦  «        ‚|d'k    rt1          dA¦  «        ‚|| _;        d=| _<        t          | tz          ¦  «        rc| j0        j>        | j?                 }| @                    ¦   «         s| A                    ¦   «         rd=| _B        n|  C                    |dBdC¦  «        | _B        t          | t           ¦  «        st          | tz          ¦  «        rT| jB        sM| j0        j>        | j?                  D                    ¦   «         rd=| _E        n|  C                    |dDdE¦  «        | _E        |                     dFd=¦  «        | _F        t          | jF        tF          ¦  «        st1          dG¦  «        ‚|                     dHd'¦  «        | _G        t          | jG        t6          ¦  «        st1          dI¦  «        ‚| jG        d'k    rHg dJ¢}| jG        |vr=t1          dK H                    | jG        dL /                    |¦  «        ¦  «        ¦  «        ‚d S d S )MNrÿ   rW   r[   a²                      An external library was used in link_with keyword argument, which
                    is reserved for libraries built as part of this project. External
                    libraries must be passed using the dependencies keyword argument
                    instead, because they are conceptually "external dependencies",
                    just like those detected with the dependency() function.
                r\   rD   ro  rA   ÚcpprB   ro   FrQ   z.hrP   z.vapirO   rL   ÚunittestrN   ÚversionsrK   ÚdebugrM   z7Arguments to d_import_dirs must be include_directories.Úimport_dirsrZ   z$Link_args arguments must be strings.z
-Wl,-rpathz-rpathzí                    Please do not define rpath with a linker argument, use install_rpath
                    or build_rpath properties instead.
                    This will become a hard error in a future Meson release.
                rd   rj   r   r_   rc   r`   rv   r‡   zMain class must be a stringrV   rg   zACan specify only gui_app or win_subsystem for a target, not both.z!Argument gui_app must be boolean.Úconsolez1Argument gui_app can only be used on executables.z7Argument win_subsystem can only be used on executables.r^   z%Tried to add non-existing extra file r…   re   zInstall_rpath is not a string.r]   zBuild_rpath is not a string.rS   z"Resource argument is not a string.z#Tried to add non-existing resource ra   z3name_prefix array must be empty to signify default.zname_prefix must be a string.Trb   z3name_suffix array must be empty to signify default.zname_suffix must be a string.zƒname_suffix should not be an empty string. If you want meson to use the default behaviour for each platform pass `[]` (empty array)rt   Úb_staticpicrm   Úb_pierl   z/Implicit_include_directories must be a boolean.rk   z'GNU symbol visibility must be a string.)rû   ÚinternalÚhiddenÚ	protectedÚinlineshiddenz+GNU symbol visibility arg {} not one of: {}rY  )Ir  rŒ  rA  r7  r   r  r   ÚExternalLibraryr   r³  r´  Úlinkr\   r'   Úadd_compiler_argsÚadd_pchÚ
Executabler‰   rQ   rP   rO   r   r  rP  r�   r:  rZ   rƒ   Ú
startswithr   r²  r‡  Úadd_include_dirsÚadd_depsr   r˜   r_   rc   r   r`   rv   rV   Úvalidate_win_subsystemrg   r   rg  rÈ   r‹   r
   Úget_source_dirr¤   ÚfnameÚisfiler^   re   r]   rS   rˆ   r3  Úsuffixr4  r?   Úmachinesr  Ú	is_darwinÚ
is_windowsrt   Ú_extract_pic_pieÚ
is_androidrm   rl   rk   rX  )r©   rü  ÚllistÚ
linktargetÚlwholerG   Ú	lang_argsÚ	dfeaturesÚdfeature_unittestÚdfeature_versionsÚdfeature_debugÚdfeature_import_dirsrD  r×  ÚlÚinclistÚdeplistrv   r^   ÚtrialrS   r[  ra   rb   rz  Ú	permitteds                             rH   r>  zBuildTarget.process_kwargs  s
  € Ø× Ò  Ñ(Ô(Ð(Ø×Ò˜Ñ Ô Ð Ø�
Š
�9˜bÑ!Ô!Ð!Ø"ŸJšJ y°$Ô2CÑDÔDˆÔÝ ¨Ñ4Ô4ˆØð 		"ð 		"ˆJÝ˜*¥lÔ&BÑCÔCð Ý$¥X¤_ð 6ñ &ô &ñ ô ð ð �IŠI�jÑ!Ô!Ð!Ð!Ý  ¨Ñ6Ô6ˆØ ð 	(ð 	(ˆJØ�OŠO˜JÑ'Ô'Ð'Ð'å!ð 	4ð 	4ˆDÝ'¨°4°°°Ñ?Ô?ˆIØ×"Ò" 4¨Ñ3Ô3Ð3Ð3à�Š�S�/¨&°'Ñ:Ô:Ñ;Ô;Ð;Ø�Š�U�O¨F°IÑ>Ô>Ñ?Ô?Ð?å˜$¥
Ñ+Ô+ð 	9¨v¯zªzÐ:JÈEÑ/RÔ/Rð 	9Ø%Ÿzšz¨-¸¼ÀTÑ9IÑJÔJˆDÔØ#ŸZšZ¨°T´YÀÑ5HÑIÔIˆDŒNØ"ŸJšJ z°4Ñ8Ô8ˆDŒMå¥Ñ%Ô%ˆ	Ø"ŸJšJ |°UÑ;Ô;ÐØð 	6Ø$5ˆI�jÑ!Ø"ŸJšJÐ':¸BÑ?Ô?ÐØð 	6Ø$5ˆI�jÑ!ØŸš I¨rÑ2Ô2ˆØð 	0Ø!/ˆI�gÑØ˜fÐ$Ð$Ý#2°6¸?Ñ#KÔ#KÐ Ø)ð fð f�Ý! !¥[Ñ1Ô1ð fÝ*Ð+dÑeÔeÐeðfà';ˆI�mÑ$Øð 	(Ø'ˆDŒOå(¨°Ñ=Ô=ˆŒØ”ð 	Oð 	OˆAÝ˜a¥Ñ%Ô%ð OÝ&Ð'MÑNÔNÐNðOà”ð 	ð 	ˆAØ˜qÐ Ð  A§L¢L°Ñ$:Ô$:Ð Ý”�Xœ_ð .ñ ô ñ ô ð øð
 	×!Ò! &§*¢*¨^¸RÑ"@Ô"@ÑAÔAÐAõ " &Ð*?Ñ@Ô@ˆØ×Ò˜gÑ&Ô&Ð&å! &¨.Ñ9Ô9ˆØ�Š�gÑÔÐõ (¨¯
ª
°=À"Ñ(EÔ(EÝ),­d¨ñ5ô 5ˆÔà"ŸJšJ ~°tÑ<Ô<ˆÔÝ(¨¯ª°MÀDÀ6Ñ)JÔ)JÑKÔKˆÔØ—Z’Z ¨bÑ1Ô1ˆ
Ý˜*¥cÑ*Ô*ð 	BÝ"Ð#@ÑAÔAÐAØ$ˆŒÝ�d�JÑ'Ô'ð 	^ð  ˆDŒLØ˜FÐ"Ð"Ø" fÐ,Ð,Ý*Ð+nÑoÔoÐoØ% iÔ0�”Ý! $¤,µÑ5Ô5ð PÝ*Ð+NÑOÔOÐOØ!%×!<Ò!<¸V¿ZºZÈÐYbÑ=cÔ=cÑ!dÔ!dˆDÔÐØ˜&Ð Ð Ý"Ð#VÑWÔWÐWØ Ð&Ð&Ý"Ð#\Ñ]Ô]Ð]Ý% f¨mÑ<Ô<ˆØð 	Uð 	UˆAÝ˜a¥Ñ&Ô&Ð&Ð&Ð&Ý”G—L’L Ô!1×!@Ò!@Ñ!BÔ!BÀAÄHÈaÌgÑVÔVˆEÝ”7—>’> %Ñ(Ô(ð UÝ&Ð'SÈqÐ'SÐ'SÐ'SÑTÔTÐTðUà&ˆÔØ"(§*¢*¨_¸bÑ"AÔ"AˆÔÝ˜$Ô,­cÑ2Ô2ð 	EÝ"Ð#CÑDÔDÐDØ!Ÿ:š: m°RÑ8Ô8ˆÔÝ˜$Ô*­CÑ0Ô0ð 	CÝ"Ð#AÑBÔBÐBÝ# F¨KÑ8Ô8ˆ	Øð 	Sð 	SˆAÝ˜a¥Ñ%Ô%ð MÝ&Ð'KÑLÔLÐLÝ”G—L’L Ô!1×!@Ò!@Ñ!BÔ!BÀDÄKÐQRÑSÔSˆEÝ”7—>’> %Ñ(Ô(ð SÝ&Ð'QÈQÐ'QÐ'QÐ'QÑRÔRÐRðSà"ˆŒØ˜FÐ"Ð"Ø  Ô/ˆKÝ˜+¥tÑ,Ô,ð ,Øð bÝ*Ð+`ÑaÔaÐaðbõ " +­sÑ3Ô3ð LÝ*Ð+JÑKÔKÐKØ)�”Ø'+�Ô$Ø˜FÐ"Ð"Ø  Ô/ˆKÝ˜+¥tÑ,Ô,ð ,Øð bÝ*Ð+`ÑaÔaÐaðbõ " +­sÑ3Ô3ð LÝ*Ð+JÑKÔKÐKØ "Ò$Ð$Ý*ð ,Wñ Xô Xð Xð *�”Ø'+�Ô$Ý�d�MÑ*Ô*ð 	Oð Ô Ô)¨$Ô*:Ô;ˆAØ�{Š{‰}Œ}ð O §¢¡¤ð OØ�”�à×0Ò0°¸ÀÑNÔN�”Ý�d�JÑ'Ô'ð 	I­J°t½]Ñ,KÔ,Kð 	IÐTXÔT\ð 	IàÔÔ(¨Ô)9Ô:×EÒEÑGÔGð IØ�”�à×0Ò0°¸ÀÑHÔH�”Ø,2¯JªJÐ7UÐW[Ñ,\Ô,\ˆÔ)Ý˜$Ô;½TÑBÔBð 	VÝ"Ð#TÑUÔUÐUØ%+§Z¢ZÐ0GÈÑ%LÔ%LˆÔ"Ý˜$Ô4µcÑ:Ô:ð 	NÝ"Ð#LÑMÔMÐMØÔ%¨Ò+Ð+ØWÐWÐWˆIØÔ)°Ð:Ð:Ý&Ð'T×'[Ò'[Ð\`Ô\vÐx|÷  yBò  yBð  CLñ  yMô  yMñ  (Nô  (Nñ  Oô  Oð  Oð ,Ð+à:Ð:rJ   r  c                ó~   — |                      ¦   «         }t          j        d|¦  «        €t          d|› d�¦  «        ‚|S )Nz�(boot_application|console|efi_application|efi_boot_service_driver|efi_rom|efi_runtime_driver|native|posix|windows)(,\d+(\.\d+)?)?z!Invalid value for win_subsystem: r…   )ÚlowerÚreÚ	fullmatchr�   ©r©   r  s     rH   rÈ  z"BuildTarget.validate_win_subsystem¿  sR   € Ø—’‘”ˆÝŒ<ð  ]ð  _dñ  eô  eð  mÝ"Ð#OÀuÐ#OÐ#OÐ#OÑPÔPÐPØˆrJ   ÚargÚoptionc                óä  — | j         d         | j         d         z   }d|                     ¦   «         z   |v sd|                     ¦   «         z   |v r$t          j        d|› d|› d| j        ›�¦  «         dS t          |¦  «        }||v r	||         }n2|| j        j        j	        v r| j        j        j	        |         j
        }nd}t          |t          ¦  «        st          d	|› d
| j        ›d�¦  «        ‚|S )Nro  r´  z-fz	Use the 'z' kwarg instead of passing '-fz' manually to TFú	Argument z to z must be boolean)r9  rá  Úupperr   r²  r‰   r   r
   r¶  r·  r  r  r˜   r�   )r©   rü  rå  ræ  Ú	all_flagsr  Úvals          rH   rÐ  zBuildTarget._extract_pic_pieÅ  s	  € à”O CÔ(¨4¬?¸5Ô+AÑAˆ	Ø�#—)’)‘+”+Ñ Ð*Ð*¨d°S·Y²Y±[´[Ñ.@ÀIÐ.MÐ.MÝŒLÐh SÐhÐhÈÐhÐhÐ[_Ô[dÐhÐhÑiÔiÐiØ�4å�fÑÔˆØ�&ˆ=ˆ=Ø˜”+ˆCˆCØ�$Ô"Ô+Ô3Ð3Ð3ØÔ"Ô+Ô3°AÔ6Ô<ˆCˆCàˆCå˜#�tÑ$Ô$ð 	WÝ"Ð#U¨sÐ#UÐ#U¸¼	Ð#UÐ#UÐ#UÑVÔVÐVØˆ
rJ   c                ó   — | j         S r§   )r5  r¬   s    rH   Úget_filenamezBuildTarget.get_filenameØ  r6  rJ   c                ó   — | j         S r§   ©r6  r¬   s    rH   r„  zBuildTarget.get_outputsÛ  r²   rJ   c                ó8   — | j                              |g ¦  «        S r§   )r9  rA  ©r©   rq  s     rH   Úget_extra_argszBuildTarget.get_extra_argsÞ  s   € ØŒ×"Ò" 8¨RÑ0Ô0Ð0rJ   c                óò   — g }|€g }t          j        | j        | j        ¦  «        D ]P}||v s||v rŒ|                     |¦  «         t          |t          ¦  «        r||                     ||z   ¦  «        z  }ŒQ|S r§   )r¤  r¥  r0  r1  rŠ   r  r?   Úget_dependencies)r©   rÎ   Útransitive_depsr  s       rH   rô  zBuildTarget.get_dependenciesá  s•   € ØˆØˆ?ØˆGÝ” Ô!2°DÔ4KÑLÔLð 	Qð 	QˆAØ�OÐ#Ð# q¨G | |ØØ×"Ò" 1Ñ%Ô%Ð%Ý˜!�]Ñ+Ô+ð QØ 1×#5Ò#5°oÈÑ6OÑ#PÔ#PÑP�øØÐrJ   c                ó   — | j         S r§   rá  r¬   s    rH   Úget_source_subdirzBuildTarget.get_source_subdirí  r_  rJ   c                ó   — | j         S r§   r°   r¬   s    rH   r±   zBuildTarget.get_sourcesð  r²   rJ   rs  c                ó   — | j         S r§   )rX   r¬   s    rH   Úget_objectszBuildTarget.get_objectsó  r²   rJ   rq  c                ó   — | j         S r§   )rŽ  r¬   s    rH   Úget_generated_sourcesz!BuildTarget.get_generated_sourcesö  ó
   € ØŒ~ÐrJ   c                ó   — | j         S r§   ©r7  r¬   s    rH   r"  zBuildTarget.should_installù  r=  rJ   c                ó*   — t          | j        ¦  «        S r§   )r˜   r8  r¬   s    rH   Úhas_pchzBuildTarget.has_pchü  s   € Ý�D”H‰~Œ~ÐrJ   rq  c                ó8   — | j                              |g ¦  «        S r§   )r8  rA  rñ  s     rH   Úget_pchzBuildTarget.get_pchÿ  s   € ØŒx�|Š|˜H bÑ)Ô)Ð)rJ   úT.List['IncludeDirs']c                ó   — | j         S r§   )r/  r¬   s    rH   Úget_include_dirszBuildTarget.get_include_dirs  r=  rJ   c                ó‚  — t          |¦  «        }|D �]«}|| j        v rŒt          |t          j        ¦  «        �r%|                      |j        ¦  «         |                      |j        | 	                    ¦   «         ¦  «         |j
        D ]}|                      |¦  «         Œ|j        D ]}|                      |¦  «         Œ|                     ¦   «         s|                     ¦   «         r\t          j        dg |                     ¦   «         |                     ¦   «         g g g g i g g ¦  «        }| j                             |¦  «         |                      |j        ¦  «         �nt          |t          j        ¦  «        re|| j        vrA| j                             |¦  «         |                      |                     ¦   «         ¦  «         |                      |j        ¦  «         n�t          |t,          ¦  «        rt/          d¦  «        ‚t1          |d¦  «        r|j        }t1          |d¦  «        st1          |d¦  «        rt/          d¦  «        ‚t/          dt5          |¦  «        j        ›d�¦  «        ‚|j        }d	D ],}||v r&| j        |                              ||         ¦  «         Œ-| j                             |¦  «         �Œ­d S )
NÚ	undefinedz]Tried to use a build target as a dependency.
You probably should put it in link_with instead.Úheld_objectÚproject_args_frozenÚglobal_args_frozenz­Tried to use subproject object as a dependency.
You probably wanted to use a dependency declared in it instead.
Access it by calling get_variable() on the subproject object.z$Argument is of an unacceptable type z’.
Must be either an external dependency (returned by find_library() or dependency()) or an internal dependency (returned by declare_dependency()).)r¶  r¸  )r   r2  r  r   ÚInternalDependencyr<  rY   rÆ  rj   Úget_include_typeÚ	librariesrÁ  Úwhole_librariesr\   Úget_compile_argsÚget_link_argsr.  rŠ   rÇ  Úext_depsÚ
Dependencyr±   r@   r�   r¸  r	  rº  r�   r:  r›  r_  )r©   Údepsr–   rÛ  ÚextpartÚdep_d_featuresÚfeatures          rH   rÇ  zBuildTarget.add_deps  s  € Ý�t‰}Œ}ˆØð 4	%ñ 4	%ˆCØ�d”oÐ%Ð%Øå˜#�|Ô>Ñ?Ô?ñ (Aà×'Ò'¨¬Ñ4Ô4Ð4Ø×%Ò% cÔ&=¸s×?SÒ?SÑ?UÔ?UÑVÔVÐVØœð !ð !�AØ—I’I˜a‘L”L�L�LØÔ,ð 'ð '�AØ—O’O AÑ&Ô&Ð&Ð&Ø×'Ò'Ñ)Ô)ð 7¨S×->Ò->Ñ-@Ô-@ð 7å*Ô=¸kØ>@Ø>A×>RÒ>RÑ>TÔ>TØ>A×>OÒ>OÑ>QÔ>QØ>@À"ÀbÈ"ÈbÐRTÐVXñ	Zô Z�Gð
 Ô&×-Ò-¨gÑ6Ô6Ð6à—’˜cœlÑ+Ô+Ð+Ñ+Ý˜C¥Ô!8Ñ9Ô9ð AØ˜dÔ0Ð0Ð0ØÔ&×-Ò-¨cÑ2Ô2Ð2Ø×+Ò+¨C¯OªOÑ,=Ô,=Ñ>Ô>Ð>Ø—’˜cœlÑ+Ô+Ð+Ð+Ý˜C¥Ñ-Ô-ð AÝ&ð (4ñ 5ô 5ð 5õ ˜3 Ñ.Ô.ð *àœ/�CÝ˜3Ð 5Ñ6Ô6ð l½'À#ÐG[Ñ:\Ô:\ð lÝ*ð ,kñ lô lð lõ 'ð (@ÍdÐSVÉiÌiÔN`ð (@ð (@ð (@ñ Aô Að Að
 !œ^ˆNà6ð Mð M�Ø˜nÐ,Ð,Ø”O GÔ,×3Ò3°NÀ7Ô4KÑLÔLÐLøàŒO×Ò Ñ$Ô$Ð$Ñ$ði4	%ð 4	%rJ   úT.List[dependencies.Dependency]c                ó   — | j         S r§   )r.  r¬   s    rH   Úget_external_depszBuildTarget.get_external_deps=  s   € ØÔ!Ð!rJ   c                ó   — dS r  rE   r¬   s    rH   Úis_internalzBuildTarget.is_internal@  r  rJ   c                óâ  — t          |¦  «        D �]Ý}t          | t          ¦  «        r”| j        r�t          |t          t
          f¦  «        r2|                     ¦   «         st          j        d| j	        › d�¦  «         n?| 
                    ¦   «         r+|                     ¦   «         s|                      |¦  «        c S t          |t          t
          f¦  «        st          |›d�¦  «        ‚|                     ¦   «         st          d|›d�¦  «        ‚t          | t           ¦  «        rCt          |t          ¦  «        r.|j        s'd|j	        ›d| j	        ›d�}|d	z  }t          |¦  «        ‚| j        |j        ur\d
| j        › d|j        › d| j	        ›�}| j                             ¦   «         rt          |dz   ¦  «        ‚t          j        |dz   ¦  «         | j                             |¦  «         �Œßd S )Nz/Try to link an installed static library target zl with acustom target that is not installed, this might cause problemswhen you try to use this static libraryz is not a target.zLink target 'z' is not linkable.ú"Can't link non-PIC static library ú into shared library ú. ú9Use the 'pic' option to static_library to build with PIC.ú$Tried to mix libraries for machines ú and r\  ú' This is not possible in a cross build.ú This will fail in cross build.)r   r  r?   r7  r;   r<   r"  r   r²  r‰   r  Ú	uses_rustr\   r¯  r�   r  r>   rt   r  r
   rü   r0  rŠ   ©r©   ro  r  r]  s       rH   rÁ  zBuildTarget.linkC  s4  € Ý˜‘”ð !	(ñ !	(ˆAÝ˜$¥Ñ.Ô.ð .°4Ô3Dð .Ý˜a¥,Õ0AÐ!BÑCÔCð .Ø×+Ò+Ñ-Ô-ð PÝœð &OÐW[ÔW`ð &Oð &Oð &Oñ Pô Pð Pøð —]’]‘_”_ð .¨Q¯[ª[©]¬]ð .ð  Ÿ?š?¨1Ñ-Ô-Ð-Ð-Ð-Ý˜a¥&Õ*;Ð!<Ñ=Ô=ð BÝ&¨!Ð'@Ð'@Ð'@ÑAÔAÐAØ×'Ò'Ñ)Ô)ð PÝ&Ð'N°qÐ'NÐ'NÐ'NÑOÔOÐOÝ˜$¥Ñ.Ô.ð ,µ:¸aÅÑ3OÔ3Oð ,ÐXYÔX]ð ,Øi¸1¼6ÐiÐiÐZ^ÔZcÐiÐiÐi�ØÐRÑR�Ý& sÑ+Ô+Ð+ØÔ q¤}Ð4Ð4Ø{¸TÔ=MÐ{Ð{ÐTUÔTaÐ{Ð{ÐnrÔnwÐ{Ð{�ØÔ#×2Ò2Ñ4Ô4ð JÝ*¨3Ð1ZÑ+ZÑ[Ô[Ð[å”L Ð'HÑ!HÑIÔIÐIØÔ×$Ò$ QÑ'Ô'Ð'Ñ'ðC!	(ð !	(rJ   c                óŽ  — t          |¦  «        D �]³}t          |t          t          f¦  «        ro|                     ¦   «         st          d|›d�¦  «        ‚|                     ¦   «         rt          d¦  «        ‚t          | t          ¦  «        rt          d¦  «        ‚njt          |t          ¦  «        st          |›d�¦  «        ‚t          | t          ¦  «        r.|j	        s'd|j
        ›d| j
        ›d�}|d	z  }t          |¦  «        ‚| j        |j        ur\d
| j        › d|j        › d| j
        ›�}| j                             ¦   «         rt          |dz   ¦  «        ‚t          j        |dz   ¦  «         t          | t          ¦  «        r"| xj        |                     ¦   «         z  c_        | j                             |¦  «         �Œµd S )NzCustom target z is not linkable.z<Can only link_whole custom targets that are static archives.z7Cannot link_whole a custom target into a static libraryz is not a static library.r  r  r   r!  r"  r#  r\  r$  r%  )r   r  r;   r<   r  r�   Úlinks_dynamicallyr?   r>   rt   r‰   r  r
   rü   r   r²  rX   Úextract_all_objects_recurser1  rŠ   r'  s       rH   r\   zBuildTarget.link_wholeg  sö  € Ý˜‘”ð 	.ñ 	.ˆAÝ˜!�lÕ,=Ð>Ñ?Ô?ð ,Ø×+Ò+Ñ-Ô-ð TÝ*Ð+R¸AÐ+RÐ+RÐ+RÑSÔSÐSØ×&Ò&Ñ(Ô(ð kÝ*Ð+iÑjÔjÐjÝ˜d¥MÑ2Ô2ð få*Ð+dÑeÔeÐeðfõ   ¥=Ñ1Ô1ð ,Ý&¨!Ð'HÐ'HÐ'HÑIÔIÐIÝ˜D¥-Ñ0Ô0ð ,¸¼ð ,Øi¸1¼6ÐiÐiÐZ^ÔZcÐiÐiÐi�ØÐRÑR�Ý& sÑ+Ô+Ð+ØÔ q¤}Ð4Ð4Ø{¸TÔ=MÐ{Ð{ÐTUÔTaÐ{Ð{ÐnrÔnwÐ{Ð{�ØÔ#×2Ò2Ñ4Ô4ð JÝ*¨3Ð1ZÑ+ZÑ[Ô[Ð[å”L Ð'HÑ!HÑIÔIÐIÝ˜$¥Ñ.Ô.ð @ð �” × =Ò =Ñ ?Ô ?Ñ?�”ØÔ#×*Ò*¨1Ñ-Ô-Ð-Ñ-ð3	.ð 	.rJ   ú(T.List[T.Union[str, 'ExtractedObjects']]c                óš   — |                       ¦   «         g}| j        D ]-}|                     ¦   «         r||                     ¦   «         z  }Œ.|S r§   )r—  r0  r  r*  )r©   Úobjsr  s      rH   r*  z'BuildTarget.extract_all_objects_recurseƒ  sT   € Ø×(Ò(Ñ*Ô*Ð+ˆØÔ"ð 	8ð 	8ˆAØ�}Š}‰Œð 8Ø˜×5Ò5Ñ7Ô7Ñ7�øØˆrJ   Úpchlistc                ó‚  — |sd S t          |¦  «        dk    r5t          j        |d         ¦  «        st          d|d         › d�¦  «        ‚�n_t          |¦  «        dk    �r)t          j        |d         ¦  «        r*t          j        |d         ¦  «        st          d¦  «        ‚nmt          j        |d         ¦  «        r:t          j        |d         ¦  «        st          d¦  «        ‚|d         |d         g}nt          d|d         › d�¦  «        ‚t
          j                             |d         ¦  «        t
          j                             |d         ¦  «        k    rt          d¦  «        ‚t          j	        d	d
| j
        d¦  «         n"t          |¦  «        dk    rt          d¦  «        ‚|D ]†}t          |t          ¦  «        st          d¦  «        ‚t
          j                             t
          j                             | j        j        | j        |¦  «        ¦  «        st          d|› d�¦  «        ‚Œ‡|| j        |<   d S )Nr	   r   zPCH argument z is not a header.é   z>PCH definition must contain one header and at most one source.z is of unknown type.z,PCH files must be stored in the same folder.zPCH source filesr�  z)Only a single header file should be used.z-PCH definition may have a maximum of 2 files.zPCH arguments must be strings.zFile z does not exist.)r~   r
   Ú	is_headerr�   r�  rg  rÈ   Údirnamer+   r�  r£   r  rƒ   r   rË  r‹   r†  r¤   r8  )r©   rq  r.  r«  s       rH   rÃ  zBuildTarget.add_pchŠ  sC  € Øð 	TØˆFÝ�‰\Œ\˜QÒÐÝÔ(¨°¬Ñ4Ô4ð VÝ&Ð'T°w¸q´zÐ'TÐ'TÐ'TÑUÔUÐUñVå�‰\Œ\˜QÒÑÝÔ$ W¨Q¤ZÑ0Ô0ð YÝ"Ô,¨W°Q¬ZÑ8Ô8ð mÝ*Ð+kÑlÔlÐlðmåÔ& w¨q¤zÑ2Ô2ð YÝ"Ô,¨W°Q¬ZÑ8Ô8ð mÝ*Ð+kÑlÔlÐlØ" 1œ: w¨q¤zÐ2��å&Ð'W°w¸q´zÐ'WÐ'WÐ'WÑXÔXÐXåŒw�Š˜w qœzÑ*Ô*­b¬g¯oªo¸gÀa¼jÑ.IÔ.IÒIÐIÝ&Ð'UÑVÔVÐVåÔ(Ð);¸XÀtÄØ)TñVô Vð Vð Vå�‰\Œ\˜AÒÐÝ"Ð#RÑSÔSÐSØð 	Bð 	BˆAÝ˜a¥Ñ%Ô%ð GÝ$Ð%EÑFÔFÐFÝ”7—>’>¥"¤'§,¢,¨tÔ/?Ô/JÈDÌKÐYZÑ"[Ô"[Ñ\Ô\ð BÝ$Ð%@¨QÐ%@Ð%@Ð%@ÑAÔAÐAðBà$ˆŒ�ÑÐÐrJ   rH  úT.Sequence['IncludeDirs']Úset_is_systemrž   c                óä   ‡— g }|D ];}t          |t          ¦  «        st          d¦  «        ‚|                     |¦  «         Œ<|€d}|dk    r|dk    Šˆfd„|D ¦   «         }| xj        |z  c_        d S )NzAInclude directory to be added is not an include directory object.ÚpreserveÚsystemc           	     ó    •— g | ]J}t          |                     ¦   «         |                     ¦   «         ‰|                     ¦   «         ¦  «        ‘ŒKS rE   )rP  r^  ra  rc  )rF   ÚxrS  s     €rH   rƒ  z0BuildTarget.add_include_dirs.<locals>.<listcomp>³  sD   ø€ ÐrÐrÐrÐij•;˜qŸ|š|™~œ~¨q¯}ª}©¬À	È1×KaÒKaÑKcÔKcÑdÔdÐrÐrÐrrJ   )r  rP  r�   rŠ   r/  )r©   rH  r4  ÚidsÚarS  s        @rH   rÆ  zBuildTarget.add_include_dirs©  sž   ø€ Ø%'ˆØð 	ð 	ˆAÝ˜a¥Ñ-Ô-ð lÝ&Ð'jÑkÔkÐkØ�JŠJ�q‰MŒMˆMˆMØÐ Ø&ˆMØ˜JÒ&Ð&Ø%¨Ò1ˆIØrÐrÐrÐrÐnqÐrÑrÔrˆCØÐÔ˜SÑ ÐÔÐÐrJ   c                óØ   — t          |¦  «        }|D ]-}t          |t          t          f¦  «        st	          d¦  «        ‚Œ.|| j        v r| j        |xx         |z  cc<   d S || j        |<   d S )Nz%A non-string passed to compiler args.)r   r  rƒ   r   r�   r9  )r©   rq  rH  r;  s       rH   rÂ  zBuildTarget.add_compiler_args¶  s�   € Ý�t‰}Œ}ˆØð 	Pð 	PˆAÝ˜a¥#¥t Ñ-Ô-ð PÝ&Ð'NÑOÔOÐOðPà�t”Ð&Ð&ØŒO˜HÐ%Ð%Ô%¨Ñ-Ð%Ð%Ñ%Ð%Ð%à(,ˆDŒO˜HÑ%Ð%Ð%rJ   úT.List[T.Tuple[str, str, str]]c                ó   — g S r§   rE   r¬   s    rH   Úget_aliaseszBuildTarget.get_aliasesÀ  r   rJ   c                ó8  — g }| j         D ]-}|j        €Œ
|j        |vr|                     |j        ¦  «         Œ.t          j        | j        | j        ¦  «        D ]B}t          |t          t          f¦  «        rŒ|j
        D ]}||vr|                     |¦  «         ŒŒC|S )ar  
        Sometimes you want to link to a C++ library that exports C API, which
        means the linker must link in the C++ stdlib, and we must use a C++
        compiler for linking. The same is also applicable for objc/objc++, etc,
        so we can keep using clink_langs for the priority order.

        See: https://github.com/mesonbuild/meson/issues/1653
        )r.  rq  rŠ   r¤  r¥  r0  r1  r  r;   r<   r‰  )r©   rƒ  r–   Úlink_targetrq  s        rH   Úget_langs_used_by_depsz"BuildTarget.get_langs_used_by_depsÃ  sÄ   € ð ˆð Ô%ð 	+ð 	+ˆCØŒ|Ð#ØØŒ| 5Ð(Ð(Ø—’˜Sœ\Ñ*Ô*Ð*øõ %œ?¨4Ô+<¸dÔ>UÑVÔVð 	+ð 	+ˆKÝ˜+­Õ6GÐ'HÑIÔIð ØØ'Ô1ð +ð +�Ø 5Ð(Ð(Ø—L’L Ñ*Ô*Ð*øð+ð ˆrJ   c           	     ó  — | j         r| j        | j                  }|S t          D ]G}|| j        v r<	 | j        |         }n)# t          $ r t          d| j        ›d|› d�¦  «        ‚w xY w|c S ŒHt          d| j        ›d�¦  «        ‚)Nz2Could not get a prelinker linker for build target z$. Requires a compiler for language "ú&", but that is not a project language.z"Could not determine prelinker for r…   )rf   r-  r%   r‰  rv  r   r‰   )r©   r‘  rÛ  Ú	prelinkers       rH   Úget_prelinkerzBuildTarget.get_prelinkerß  sÕ   € ØÔð 	ØÔ% dÔ&8Ô9ˆDØˆKÝð 		!ð 		!ˆAØ�D”NÐ"Ð"ð/Ø $Ô 2°1Ô 5�I�IøÝð /ð /ð /Ý(ð.ÈTÌYð .ð .Ø=>ð.ð .ð .ñ/ô /ð /ð/øøøð
 !Ð Ð Ð ð #õ ÐPÀ$Ä)ÐPÐPÐPÑQÔQÐQs	   ¯=½&A#ú T.Tuple['Compiler', T.List[str]]c           	     óô  — | j         r.| j        | j                  }||                     | j        ¦  «        fS | j        j        j        | j                 }|                      ¦   «         }t          dg¦  «        }t          D ] }|| j        v s||v r‘	 ||         }n)# t          $ r t          d| j        ›d|› d�¦  «        ‚w xY wg }t          j        | j        |¦  «        D ];}||j        k    r.||j        f|vr#|||                              | j        ¦  «        z  }Œ<||fc S Œ¡t          D ]=}	 | j        |         }||                     | j        ¦  «        fc S # t          $ r Y Œ:w xY wt!          d| j        ›�¦  «        ‚)a»  
        We use the order of languages in `clink_langs` to determine which
        linker to use in case the target has sources compiled with multiple
        compilers. All languages other than those in this list have their own
        linker.
        Note that Vala outputs C code, so Vala sources can use any linker
        that can link compiled C. We don't actually need to add an exception
        for Vala here because of that.
        )r´  Úcudaz0Could not get a dynamic linker for build target z". Requires a linker for language "rD  )rf   r-  Úlanguage_stdlib_only_link_flagsr
   r¶  r‰  r  rB  Ú	frozensetr%   rv  r   r‰   r¤  r¥  rq  ÚAssertionError)	r©   r‘  r-  Ú	dep_langsÚ
MASK_LANGSrÛ  ÚlinkerÚstdlib_argsÚdls	            rH   Ú$get_clink_dynamic_linker_and_stdlibsz0BuildTarget.get_clink_dynamic_linker_and_stdlibsï  s	  € ð Ôð 	PØÔ% dÔ&8Ô9ˆDØ˜×=Ò=¸dÔ>NÑOÔOÐOÐOð
 Ô(Ô1Ô;¸DÔ<LÔMˆð ×/Ò/Ñ1Ô1ˆ	õ àð 
ñ ô ˆ
õ
 ð 	+ð 	+ˆAØ�D”NÐ"Ð" a¨9 n nð/Ø*¨1Ô-�F�FøÝð /ð /ð /Ý(ð.È4Ì9ð .ð .Ø;<ð.ð .ð .ñ/ô /ð /ð/øøøð
 ,.�Ý#œ/¨$¬.¸)ÑDÔDð kð k�BØ˜Vœ_Ò,Ð,°"°f´oÐ1FÈjÐ1XÐ1XØ# }°RÔ'8×'XÒ'XÐY]ÔYiÑ'jÔ'jÑj˜øð ˜{Ð*Ð*Ð*Ð*ð '5õ$ ð 	ð 	ˆAðØÔ)¨!Ô,�Ø˜T×AÒAÀ$ÔBRÑSÔSÐSÐSÐSÐSøÝð ð ð Ø�ðøøøõ Ð]ÐPTÔPYÐ]Ð]Ñ^Ô^Ð^s   ÂBÂ&B<Ä((EÅ
E ÅE c                ó   — d| j         v S )NrE  r~  r¬   s    rH   r&  zBuildTarget.uses_rust+  s   € Ø˜œÐ'Ð'rJ   c                ó   — d| j         v S )NÚfortranr~  r¬   s    rH   Úuses_fortranzBuildTarget.uses_fortran.  s   € Ø˜DœNÐ*Ð*rJ   c                ó¤   — |                       ¦   «         r| j        d         }n|                      ¦   «         \  }}|o|                     ¦   «         dv S )a&  
        Check if the dynamic linker is MSVC. Used by Executable, StaticLibrary,
        and SharedLibrary for deciding when to use MSVC-specific file naming
        and debug filenames.

        If at least some code is built with MSVC and the final library is
        linked with MSVC, we can be sure that some debug info will be
        generated. We only check the dynamic linker here because the static
        linker is guaranteed to be of the same type.

        Interesting cases:
        1. The Vala compiler outputs C code to be compiled by whatever
           C compiler we're using, so all objects will still be created by the
           MSVC compiler.
        2. If the target contains only objects, process_compilers guesses and
           picks the first compiler that smells right.
        rE  >   úlld-linkrÁ  ÚxilinkÚoptlink)r&  r-  rR  Úget_linker_id)r©   r  Ú_s      rH   Úget_using_msvczBuildTarget.get_using_msvc1  sX   € ð& �>Š>ÑÔð 	FØÔ)¨&Ô1ˆHˆHà×CÒCÑEÔE‰KˆH�aàÐa˜H×2Ò2Ñ4Ô4Ð8aÐaÐarJ   c                óè  — | j         D ]é}t          |t          ¦  «        rÒ|j        sË| j        j        | j                                      ¦   «         r t          d| j	        › d|j	        › d�¦  «        ‚| j        j        | j                  
                    ¦   «         rt          | t          ¦  «        rd|_        Œ­t          j        d| j	        › d|j	        › d|j	        › d|j	        › d�	¦  «         d|_        ŒêdS )	zR
        Warn if shared modules are linked with target: (link_with) #2865
        ztarget z links against shared module z. This is not permitted on OSXTzk, which is incorrect.
             This will be an error in the future, so please use shared_library() for z7 instead.
             If shared_module() was used for z† because it has references to undefined symbols,
             use shared_libary() with `override_options: ['b_lundef=false']` instead.N)r0  r  ÚSharedModuleÚforce_sonamer
   rÍ  r  rÎ  r   r‰   rÑ  r   Údeprecation)r©   rA  s     rH   rB  z BuildTarget.check_module_linkingK  sN  € ð  Ô,ð 	4ð 	4ˆKÝ˜+¥|Ñ4Ô4ð 4¸[Ô=Uð 4ØÔ#Ô,¨TÔ-=Ô>×HÒHÑJÔJð 4Ý(Øz $¤)ÐzÐzÈ+ÔJZÐzÐzÐzñ|ô |ð |àÔ%Ô.¨tÔ/?Ô@×KÒKÑMÔMð 4ÕR\Ð]aÕcoÑRpÔRpð 4ð 04�KÔ,Ð,åÔ$ð &r¨t¬yð &rð &rÐWbÔWgð &rð &ràp{ô  qAð&rð &rð ITÔHXð	&rð &rð &rñ sô sð sð 04�KÔ,øð%	4ð 	4rJ   )r‰   rƒ   r¤   rƒ   r£   r4   r  r   rY   r&  r'  r(  r
   rÛ   r‰  r)  r“  r­  )rY   r&  r{   r¥   )r  r>  rY   r~  r{   r˜   )rf  rÓ   rl  )rp  r�  r{   rn  )T)ru  r˜   r{   rn  )r{   r˜  ©rˆ   rƒ   r{   rŸ  ©r{   r§  r#  r$  ©r{   r°  )r  rƒ   r{   rƒ   )rå  rƒ   ræ  rƒ   rk  r§   )r{   rs  ©r{   rq  )rq  rƒ   r{   rÓ   )r{   r  )r{   r  ©r{   r+  )rq  rƒ   r.  rÓ   r{   r¥   )rH  r3  r4  rž   r{   r¥   )rq  rƒ   rH  r~  r{   r¥   ©r{   r=  )r{   rG  )Er�   r‘   r’   Úknown_build_target_kwargsrW  rš   r  rG  r\  rN  Úpropertyrw  rA  r?  rV  r=  r<  r”  re  rl  r{  rF  r‡  r‰  rŒ  r•  r—  rœ  r   r›  r£  r¡  r©  rÎ  rµ   r¹   r>  rÈ  rÐ  rí  r„  rò  rô  r÷  r±   rú  rü  r"  r  r  r  rÇ  r  r  rÁ  r\   r*  rÃ  rÆ  rÂ  r?  rB  rF  rR  r&  rV  r]  rB  Ú__classcell__©rY  s   @rH   r@   r@   ©  s"  ø€ € € € € € Ø,€Là5Ð5Ð5Ñ5ð+$ð +$ð +$ð +$ð +$ð +$ðZZð Zð Zð ZðVð Vð Vðð ð ð ð[ð [ð [ñ „Xð[ðpð pð pðAð Að Að
qð qð qðlð lð lð)ð )ð )ð )ð$ ðð ð ñ „\ðð$ð $ð $ð $ðLU!ð U!ð U!ð U!ðnYð Yð Yð
=ð =ð =ð.ð ð ðGð Gð Gð8ð 8ð 8ð 8ð2+ð +ð +ð +ð +ð/ð /ð /ð /ð €Y�tÐÑÔðð ð ñ Ôðð=ð =ð =ð =ð €Y�tÐÑÔðð ð ñ Ôðð €Y�tÐÑÔðð ð ñ Ôðð9ð 9ð 9ð 9ð ð  ð  ð  ð!ð !ð !ð !ðdOð dOð dOðLð ð ð ðð ð ð ð&ð ð ð ðð ð ð ð1ð 1ð 1ð
ð 
ð 
ð 
ðð ð ðð ð ðð ð ð ðð ð ð ð!ð !ð !ð !ðð ð ð ð*ð *ð *ð *ð!ð !ð !ð !ð6%ð 6%ð 6%ðp"ð "ð "ð "ðð ð ð ð"(ð "(ð "(ðH.ð .ð .ð8ð ð ð ð%ð %ð %ð %ð>!ð !ð !ð !ð !ð-ð -ð -ð -ðð ð ð ðð ð ð ð8Rð Rð Rð :_ð :_ð :_ð :_ðx(ð (ð (ð (ð+ð +ð +ð +ðbð bð bð bð44ð 4ð 4ð 4ð 4ð 4ð 4rJ   r@   c                  óp   — e Zd Zdddd dœd%d„Zd&d„Zd'd„Zd(d„Zd(d„Zd(d„Ze	d)d„¦   «         Z
	 	 d*d+d$„ZdS ),Ú	GeneratorNF)ÚdepfileÚcaptureÚdependsr‰   Úexeú/T.Union['Executable', programs.ExternalProgram]Ú	argumentsrÓ   Úoutputrn  rž   ro  r˜   rp  ú8T.Optional[T.List[T.Union[BuildTarget, 'CustomTarget']]]r‰   rƒ   c               ól   — || _         || _        || _        |pg | _        || _        || _        || _        d S r§   )rq  rn  ro  rp  Úarglistr6  r‰   )r©   rq  rs  rt  rn  ro  rp  r‰   s           rH   r  zGenerator.__init__d  s>   € ð ˆŒØˆŒØˆŒØELÀ]ÐPRˆŒØ ˆŒØˆŒØˆŒ	ˆ	ˆ	rJ   r{   c                óP   — d}|                      | j        j        | j        ¦  «        S )Nz
<{0}: {1}>)rX  rY  r�   rq  rK  s     rH   r\  zGenerator.__repr__u  s"   € ØˆØ�Š˜tœ~Ô6¸¼ÑAÔAÐArJ   c                ó   — | j         S r§   )rq  r¬   s    rH   Úget_exezGenerator.get_exey  r.  rJ   Úinnamec                óº   ‡‡— t           j                             |¦  «        Št           j                             ‰¦  «        d         Šˆˆfd„| j        D ¦   «         }|S )Nr   c                ód   •— g | ],}|                      d ‰¦  «                              d‰¦  «        ‘Œ-S ©ú
@BASENAME@ú@PLAINNAME@©ræ  ©rF   r9  ÚbasenameÚ	plainnames     €€rH   rƒ  z/Generator.get_base_outnames.<locals>.<listcomp>  s8   ø€ ÐkÐkÐkÐYZ�—’˜<¨Ñ2Ô2×:Ò:¸=È)ÑTÔTÐkÐkÐkrJ   )rg  rÈ   rƒ  Úsplitextr6  )r©   r{  Úbasesrƒ  r„  s      @@rH   Úget_base_outnameszGenerator.get_base_outnames|  sX   øø€ Ý”G×$Ò$ VÑ,Ô,ˆ	Ý”7×#Ò# IÑ.Ô.¨qÔ1ˆØkÐkÐkÐkÐkÐ^bÔ^jÐkÑkÔkˆØˆrJ   c                ó  — | j         €t          d¦  «        ‚t          j                             |¦  «        }t          j                             |¦  «        d         }| j                              d|¦  «                             d|¦  «        S )NzJTried to get dep name for rule that does not have dependency file defined.r   r  r€  ©rn  r�   rg  rÈ   rƒ  r…  ræ  )r©   r{  r„  rƒ  s       rH   Úget_dep_outnamezGenerator.get_dep_outname‚  sq   € ØŒ<ÐÝ"Ð#oÑpÔpÐpÝ”G×$Ò$ VÑ,Ô,ˆ	Ý”7×#Ò# IÑ.Ô.¨qÔ1ˆØŒ|×#Ò# L°(Ñ;Ô;×CÒCÀMÐS\Ñ]Ô]Ð]rJ   c                ó¶   ‡‡— t           j                             |¦  «        Št           j                             ‰¦  «        d         Šˆˆfd„| j        D ¦   «         S )Nr   c                ód   •— g | ],}|                      d ‰¦  «                              d‰¦  «        ‘Œ-S r~  r�  r‚  s     €€rH   rƒ  z)Generator.get_arglist.<locals>.<listcomp>Œ  s8   ø€ ÐjÐjÐjÐXY�—	’	˜,¨Ñ1Ô1×9Ò9¸-ÈÑSÔSÐjÐjÐjrJ   )rg  rÈ   rƒ  r…  rw  )r©   r{  rƒ  r„  s     @@rH   Úget_arglistzGenerator.get_arglist‰  sT   øø€ Ý”G×$Ò$ VÑ,Ô,ˆ	Ý”7×#Ò# IÑ.Ô.¨qÔ1ˆØjÐjÐjÐjÐjÐ]aÔ]iÐjÑjÔjÐjrJ   ÚparentrÞ  c                ór   — t          j        |¦  «                             | ¦  «        }|j        d         dk    S )Nr   z..)rr  ÚPurePathÚrelative_toÚparts)rŽ  rÞ  Úrelpaths      rH   Úis_parent_pathzGenerator.is_parent_pathŽ  s2   € åÔ" 5Ñ)Ô)×5Ò5°fÑ=Ô=ˆØŒ}˜QÔ 4Ò'Ð'rJ   rª  úTT.Iterable[T.Union[str, File, 'CustomTarget', 'CustomTargetIndex', 'GeneratedList']]Ústateú%T.Union['Interpreter', 'ModuleState']Úpreserve_path_fromr9  úT.Optional[T.List[str]]ú'GeneratedList'c                ó$  ‡— t          | ‰j        ||�|ng ¬¦  «        }|D �]n}t          |t          ¦  «        r|j                             |¦  «         t          |t          ¦  «        r|j                             |j        ¦  «         t          |t          t          t           f¦  «        r;|j                             |¦  «         ˆfd„|                     ¦   «         D ¦   «         }n?t          |t          ¦  «        r't          j        ‰j        j        ‰j        |¦  «        g}n|g}|D ]i}|rO|                     ‰j        j        ‰j        j        ¦  «        }	|                      ||	¦  «        st#          d¦  «        ‚|                     |‰¦  «         Œj�Œp|S )N©r9  c                óD   •— g | ]}t          j        ‰j        |¦  «        ‘ŒS rE   )r   Úfrom_built_filer¤   )rF   r«  r–  s     €rH   rƒ  z+Generator.process_files.<locals>.<listcomp>¡  s(   ø€ ÐUÐUÐUÀ•dÔ*¨5¬<¸Ñ;Ô;ÐUÐUÐUrJ   zmgenerator.process: When using preserve_path_from, all input files must be in a subdirectory of the given dir.)r=   r¤   r  r;   rp  r_  r<   ro  r„  rƒ   r   r…  r
   r†  Úabsolute_pathÚ	build_dirr”  r�   Úadd_file)
r©   rª  r–  r˜  r9  rt  ÚeÚfsr«  Úabs_fs
     `       rH   Úprocess_fileszGenerator.process_files“  sª  ø€ õ ˜t U¤\Ð3EÐ`jÐ`vÐR\ÐR\Ð|~ÐÑÔˆàð 	*ñ 	*ˆAÝ˜!�\Ñ*Ô*ð &Ø”×"Ò" 1Ñ%Ô%Ð%Ý˜!Õ.Ñ/Ô/ð -Ø”×"Ò" 1¤8Ñ,Ô,Ð,å˜!�lÕ,=½}ÐMÑNÔNð Ø”×"Ò" 1Ñ%Ô%Ð%ØUÐUÐUÐUÀQÇ]Â]Á_Ä_ÐUÑUÔU��Ý˜A�sÑ#Ô#ð ÝÔ+¨EÔ,=Ô,HÈ%Ì,ÐXYÑZÔZÐ[��à�S�àð *ð *�Ø%ð `ØŸOšO¨EÔ,=Ô,HÈ%ÔJ[ÔJeÑfÔf�EØ×.Ò.Ð/AÀ5ÑIÔIð `Ý.ð  0_ñ  `ô  `ð  `Ø—’  5Ñ)Ô)Ð)Ð)ñ*ð ˆrJ   )rq  rr  rs  rÓ   rt  rÓ   rn  rž   ro  r˜   rp  ru  r‰   rƒ   rk  )r{   rr  )r{  rƒ   r{   rÓ   )rŽ  rƒ   rÞ  rƒ   r{   r˜   ©NN)
rª  r•  r–  r—  r˜  rž   r9  r™  r{   rš  )r�   r‘   r’   r  r\  rz  r‡  rŠ  r�  r”  r”  r¥  rE   rJ   rH   rm  rm  c  sò   € € € € € ð -1Ø!&ØUYØ(ðð ð ð ð ð ð"Bð Bð Bð Bðð ð ð ðð ð ð ð^ð ^ð ^ð ^ðkð kð kð kð
 ð(ð (ð (ñ „\ð(ð =AØ<@ðð ð ð ð ð ð rJ   rm  c                  ó„   — e Zd ZU dZded<   ded<   ded<   ded	<   d d„Zd!d„Zd"d„Zd#d„Zd$d„Z	d%d„Z
d&d„Zd$d„Zd'd„ZdS )(r=   z The output of generator.process.rm  Ú	generatorrƒ   r¤   rž   r˜  rÓ   r9  r{   r¥   c                ó,  — | j         j        | _        t          ¦   «         | _        g | _        g | _        i | _        g | _        g | _	        | j
        €g | _
        t          | j         j        t          j        ¦  «        r˜| j         j                             ¦   «         st          d¦  «        ‚| j         j                             ¦   «         }t"          j                             |¦  «        r0| j	                             t+          j        |¦  «        ¦  «         d S d S d S )Nz4Tried to use not-found external program as generator)r¨  rq  r‰   rù   rp  Ú
infilelistÚoutfilelistÚoutmapÚextra_dependsÚdepend_filesr9  r  r   ÚExternalProgramÚfoundr�   Úget_pathrg  rÈ   ÚisabsrŠ   r   Úfrom_absolute_file)r©   rÈ   s     rH   ry  zGeneratedList.__post_init__º  s  € Ø”NÔ&ˆŒ	Ý.1©e¬eˆŒØ*,ˆŒØ(*ˆÔØ13ˆŒØˆÔØ*,ˆÔàŒ?Ð"Ø+-ˆDŒOå�d”nÔ(­(Ô*BÑCÔCð 	HØ”>Ô%×+Ò+Ñ-Ô-ð _Ý&Ð']Ñ^Ô^Ð^Ø”>Ô%×.Ò.Ñ0Ô0ˆDÝŒw�}Š}˜TÑ"Ô"ð Hð Ô!×(Ò(­Ô)@ÀÑ)FÔ)FÑGÔGÐGÐGÐGð	Hð 	HðHð HrJ   Úinfiler   Úoutfilesr–  r—  c                ó¢  — g }|                      |j        j        |j        j        ¦  «        }t          j                             | j        ¦  «        sJ ‚t          j                             || j        ¦  «        }t          j         	                    |¦  «        }|D ]5}| 
                    t          j                             ||¦  «        ¦  «         Œ6|S r§   )rŸ  r
   r†  r   rg  rÈ   r²  r˜  r“  r2  rŠ   r‹   )	r©   r´  rµ  r–  r  Úin_absÚrelÚpath_segmentÚofs	            rH   Úadd_preserved_path_segmentz(GeneratedList.add_preserved_path_segmentÏ  s©   € Ø ˆØ×%Ò% eÔ&7Ô&BÀEÔDUÔD_Ñ`Ô`ˆÝŒw�}Š}˜TÔ4Ñ5Ô5Ð5Ð5Ð5ÝŒg�oŠo˜f dÔ&=Ñ>Ô>ˆÝ”w—’ sÑ+Ô+ˆØð 	:ð 	:ˆBØ�MŠM�"œ'Ÿ,š, |°RÑ8Ô8Ñ9Ô9Ð9Ð9ØˆrJ   Únewfilec                óè   — | j                              |¦  «         | j                             |j        ¦  «        }| j        r|                      |||¦  «        }| xj        |z  c_        || j        |<   d S r§   )	rª  rŠ   r¨  r‡  rÊ  r˜  r»  r«  r¬  )r©   r¼  r–  rµ  s       rH   r¡  zGeneratedList.add_fileÙ  sx   € ØŒ×Ò˜wÑ'Ô'Ð'Ø”>×3Ò3°G´MÑBÔBˆØÔ"ð 	QØ×6Ò6°wÀÈ%ÑPÔPˆHØÐÔ˜HÑ$ÐÔØ'ˆŒ�GÑÐÐrJ   rÃ   c                ó   — | j         S r§   )rª  r¬   s    rH   Ú
get_inputszGeneratedList.get_inputsá  r'  rJ   c                ó   — | j         S r§   )r«  r¬   s    rH   r„  zGeneratedList.get_outputsä  r¯  rJ   r5  ú'File'c                ó   — | j         |         S r§   )r¬  )r©   r5  s     rH   Úget_outputs_forzGeneratedList.get_outputs_forç  s   € ØŒ{˜8Ô$Ð$rJ   ú'Generator'c                ó   — | j         S r§   )r¨  r¬   s    rH   Úget_generatorzGeneratedList.get_generatorê  rý  rJ   c                ó   — | j         S r§   rœ  r¬   s    rH   rò  zGeneratedList.get_extra_argsí  r'  rJ   c                ó   — | j         S r§   rá  r¬   s    rH   râ  zGeneratedList.get_subdirð  r_  rJ   Nr“  )r´  r   rµ  rÓ   r–  r—  r{   rÓ   )r¼  r   r–  r—  r{   r¥   rÅ   rl  )r5  rÁ  r{   rÓ   )r{   rÄ  rk  )r�   r‘   r’   rN  rš   ry  r»  r¡  r¿  r„  rÃ  rÆ  rò  râ  rE   rJ   rH   r=   r=   °  s  € € € € € € ð +Ð*àÐÐÑØ€K€K�KØ'Ð'Ð'Ñ'ØÐÐÑðHð Hð Hð Hð*ð ð ð ð(ð (ð (ð (ðð ð ð ð ð  ð  ð  ð%ð %ð %ð %ðð ð ð ðð ð ð ðð ð ð ð ð rJ   r=   c                  ól   ‡ — e Zd ZeZdZdˆ fd„Zd ˆ fd„Zd!d„Zd„ Z	d„ Z
d"d„Zd„ Zd"d„Zd„ Zd#d„Zˆ xZS )$rÄ  Ú
executabler‰   rƒ   r¤   r£   r  r   rY   úT.List[SourceOutputs]r'  úT.Optional['StructuredSources']r
   rÛ   r‰  r)  c                óŠ  •— t          d¦  «        }d|
vr(||j        j        v r|j        j        |         j        |
d<   t	          ¦   «                              |||||||||	|
¦
  «
         |
                     dd¦  «        | _        t          | j        t          ¦  «        st          d¦  «        ‚|
                     d¦  «        | _        t          | j        t          t          t          d ¦  «        f¦  «        st          d¦  «        ‚| j        rd| _        | j        r| j        du rt          d	¦  «        ‚| j        | _        d| _        d S )
Nr»  rm   ro   Fz3"export_dynamic" keyword argument must be a booleanrn   z="export_dynamic" keyword argument must be a boolean or stringTzK"implib" keyword argument must not be false for if "export_dynamic" is true)r   r¶  r·  r  r,  r  rA  ro   r  r˜   r�   rn   rƒ   rº  Úis_linkwithableÚwas_returned_by_find_program)r©   r‰   r¤   r£   r  rY   r'  rX   r
   r‰  rü  r  rY  s               €rH   r  zExecutable.__init__ù  sK  ø€ õ ˜Ñ Ô ˆØ˜ÐÐ 3¨+Ô*>Ô*FÐ#FÐ#FØ'Ô0Ô8¸Ô=ÔCˆF�5‰MÝ‰Œ×Ò˜˜v z°;ÀÐI[Ð]dØ$ i°ñ	9ô 	9ð 	9ð %ŸjšjÐ)9¸5ÑAÔAˆÔÝ˜$Ô-­tÑ4Ô4ð 	ZÝ"Ð#XÑYÔYÐYØ—j’j Ñ*Ô*ˆŒÝ˜$œ+­­cµ4¸±:´:Ð'>Ñ?Ô?ð 	dÝ"Ð#bÑcÔcÐcØŒ;ð 	'Ø"&ˆDÔØÔð 	r 4¤;°%Ð#7Ð#7Ý"Ð#pÑqÔqÐqà#Ô2ˆÔà,1ˆÔ)Ð)Ð)rJ   r{   r¥   c                ó�  •— t          ¦   «                              ¦   «          | j        j        | j                 }t          | d¦  «        sd| _        t          | d¦  «        �s|                     ¦   «         s|                     ¦   «         s	d| j	        v r	d| _
        �nã|j                             d¦  «        s|j        dk    r	d| _
        �nµd	| j	        v r2| j	        d	                              ¦   «                              d
¦  «        s;d| j	        v r;| j	        d                              ¦   «                              d
¦  «        r	d| _
        �n6d	| j	        v r2| j	        d	                              ¦   «                              d¦  «        s;d| j	        v r:| j	        d                              ¦   «                              d¦  «        rd| _
        n¸d	| j	        v r:| j	        d	                              ¦   «                              d¦  «        rd| _
        nud	| j	        v r!| j	        d	                              ¦   «         dv s*d| j	        v r)| j	        d                              ¦   «         dv rd| _
        n|                     ¦   «         | _
        | j        | _        | j
        r| xj        d| j
        z   z  c_        | j        g| _        d | _        d | _        d | _        d | _        | j        r•| j        dz   }t/          | j        t2          ¦  «        r| j        }|                     ¦   «         s|                     ¦   «         rB|› d�| _        d|› d�| _        |                      ¦   «         r| j        | _        n| j        | _        |                     ¦   «         rBd| j	        v s(|                      ¦   «         s|                      ¦   «         r| j        dz   | _        d S d S d S )Nrˆ   r‡   rÌ  r€  rq  ÚwasmÚ
emscriptenÚjsro  Úarmclangr´  ÚaxfÚccrxÚabsÚxc16Úelf>   ÚtiÚc2000Úoutr…   z.exeú.libÚlibú.aú.pdb)r,  rG  r
   rÍ  r  r¸  rˆ   rÏ  Ú	is_cygwinr‰  rÌ  r7  rÅ  r¿  Úget_exe_suffixr‰   r5  r6  Úimport_filenameÚvs_import_filenameÚgcc_import_filenameÚdebug_filenamero   r  rn   rƒ   r]  r&  )r©   r  Úimplib_basenamerY  s      €rH   rG  zExecutable.post_init  sÆ  ø€ Ý‰Œ×ÒÑÔÐØÔ"Ô+¨DÔ,<Ô=ˆõ �t˜XÑ&Ô&ð 	ØˆDŒKÝ�t˜XÑ&Ô&ñ 	7à×!Ò!Ñ#Ô#ð 7 w×'8Ò'8Ñ':Ô':ð 7¸dÀdÄnÐ>TÐ>TØ#�”‘Ø”×*Ò*¨6Ñ2Ô2ð 7°g´nÈÒ6TÐ6TØ"�”‘Ø˜œÐ'Ð'¨D¬N¸3Ô,?×,FÒ,FÑ,HÔ,H×,SÒ,SÐT^Ñ,_Ô,_Ð'Ø˜4œ>Ð)Ð)¨d¬n¸UÔ.C×.JÒ.JÑ.LÔ.L×.WÒ.WÐXbÑ.cÔ.cÐ)Ø#�”‘Ø˜œÐ'Ð'¨D¬N¸3Ô,?×,FÒ,FÑ,HÔ,H×,SÒ,SÐTZÑ,[Ô,[Ð'Ø˜4œ>Ð)Ð)¨d¬n¸UÔ.C×.JÒ.JÑ.LÔ.L×.WÒ.WÐX^Ñ._Ô._Ð)Ø#�”�Ø˜œÐ'Ð'¨D¬N¸3Ô,?×,FÒ,FÑ,HÔ,H×,SÒ,SÐTZÑ,[Ô,[Ð'Ø#�”�Ø˜œÐ'Ð'¨D¬N¸3Ô,?×,FÒ,FÑ,HÔ,HÈOÐ,[Ð,[Ø˜4œ>Ð)Ð)¨d¬n¸UÔ.C×.JÒ.JÑ.LÔ.LÐP_Ð._Ð._Ø#�”�à%×4Ò4Ñ6Ô6�”Øœ	ˆŒØŒ;ð 	/ØˆMŒM˜S 4¤;Ñ.Ñ.ˆMŒMØœ�ˆŒð  $ˆÔà"&ˆÔà#'ˆÔ à"ˆÔð Ôð 
	DØ"œi¨&Ñ0ˆOÝ˜$œ+¥sÑ+Ô+ð .Ø"&¤+�Ø×!Ò!Ñ#Ô#ð D w×'8Ò'8Ñ':Ô':ð DØ-<Ð*BÐ*BÐ*B�Ô'Ø+D°Ð+DÐ+DÐ+D�Ô(Ø×&Ò&Ñ(Ô(ð DØ+/Ô+B�DÔ(Ð(à+/Ô+C�DÔ(à×ÒÑÔð 	5 T¨T¬^Ð%;Ð%;Ø%)§^¢^Ñ%5Ô%5ð &<à%)×%8Ò%8Ñ%:Ô%:ð &<ð #'¤)¨fÑ"4ˆDÔÐÐð	5ð 	5Ð%;Ð%;rJ   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{bindir})r
   Ú
get_bindirr¬   s    rH   rÎ  z"Executable.get_default_install_dirL  r¬  rJ   c                ó   — | j         S )z,Human friendly description of the executablerÞ  r¬   s    rH   ÚdescriptionzExecutable.descriptionO  s
   € àŒyÐrJ   c                ó   — dS )Nz@exerE   r¬   s    rH   rò  zExecutable.type_suffixS  ó   € ØˆvrJ   rž   c                ó   — | j         S ©z¦
        The name of the import library that will be outputted by the compiler

        Returns None if there is no import library required for this platform
        ©rã  r¬   s    rH   Úget_import_filenamezExecutable.get_import_filenameV  ó   € ð Ô#Ð#rJ   c                ó0   — | j         r| j        | j        gS g S r§   ©rã  rä  rå  r¬   s    rH   Úget_import_filenameslistz#Executable.get_import_filenameslist^  ó$   € ØÔð 	GØÔ+¨TÔ-EÐFÐFØˆ	rJ   c                ó   — | j         S ©z”
        The name of debuginfo file that will be created by the compiler

        Returns None if the build won't create any debuginfo file
        ©ræ  r¬   s    rH   Úget_debug_filenamezExecutable.get_debug_filenamec  ó   € ð Ô"Ð"rJ   c                ó   — | j         S r§   )rÎ  r¬   s    rH   r  zExecutable.is_linkable_targetk  s   € ØÔ#Ð#rJ   ú'ImmutableListProtocol[str]'c                ó   — | j         S )z�Provides compatibility with ExternalProgram.

        Since you can override ExternalProgram instances with Executables.
        rï  r¬   s    rH   Úget_commandzExecutable.get_commandn  s   € ð
 Œ|ÐrJ   ©r‰   rƒ   r¤   rƒ   r£   rƒ   r  r   rY   rË  r'  rÌ  r
   rÛ   r‰  r)  r“  r#  r»   )r{   rý  )r�   r‘   r’   Úknown_exe_kwargsrW  r±  r  rG  rÎ  rë  rò  rñ  rõ  rú  r  rÿ  rj  rk  s   @rH   rÄ  rÄ  ô  sò   ø€ € € € € Ø#€Là€Hð2ð 2ð 2ð 2ð 2ð 2ð285ð 85ð 85ð 85ð 85ð 85ðt9ð 9ð 9ð 9ðð ð ðð ð ð$ð $ð $ð $ðð ð ð
#ð #ð #ð #ð$ð $ð $ðð ð ð ð ð ð ð rJ   rÄ  c                  ób   ‡ — e Zd ZeZdZdˆ fd„Zdˆ fd„Zd d„Zd!d„Z	d„ Z
ˆ fd„Zd„ Zd"d„Zˆ xZS )#r?   zstatic libraryr‰   rƒ   r¤   r£   r  r   rY   rË  r'  rÌ  r
   rÛ   r‰  r)  c                óä   •— |
                      dd¦  «        | _        t          | j        t          ¦  «        st	          d¦  «        ‚t          ¦   «                              |||||||||	|
¦
  «
         d S )Nru   Fz+Prelink keyword argument must be a boolean.)rA  ru   r  r˜   r�   r,  r  rC  s              €rH   r  zStaticLibrary.__init__z  s{   ø€ ð —z’z )¨UÑ3Ô3ˆŒÝ˜$œ,­Ñ-Ô-ð 	RÝ"Ð#PÑQÔQÐQÝ‰Œ×Ò˜˜v z°;ÀÐI[Ð]dØ$ i°ñ	9ô 	9ð 	9ð 	9ð 	9rJ   r{   r¥   c                ól  •— t          ¦   «                              ¦   «          d| j        v rt          d¦  «        ‚d| j        v rXt	          | d¦  «        r| j        dk    rt          j        d¦  «         d| _        n!| j        dvrt          d	| j        › d
�¦  «        ‚t	          | d¦  «        sd| _        t	          | d¦  «        sFd| j        v r6t	          | d¦  «        r| j        dk    rd| _	        n| j        dk    rd| _	        nd| _	        | j        | j
        z   dz   | j	        z   | _        | j        g| _        d S )Nr€  z&Static libraries not supported for C#.rE  rR   rÞ  z8Defaulting Rust static library target crate type to rlibÚrlib)r  Ú	staticlibúCrate type "z=" invalid for static libraries; must be "rlib" or "staticlib"rˆ   rÌ  r  r;  r…   )r,  rG  r‰  r�   r¸  rR   r   r·  rˆ   rÌ  r‰   r5  r6  ©r©   rY  s    €rH   rG  zStaticLibrary.post_init„  sl  ø€ Ý‰Œ×ÒÑÔÐØ�4”>Ð!Ð!Ý"Ð#KÑLÔLÐLØ�T”^Ð#Ð#å˜4Ð!2Ñ3Ô3ð K°tÔ7KÈuÒ7TÐ7TÝ”
ÐUÑVÔVÐVØ'-�Ô$Ð$àÔ%Ð-BÐBÐBÝ&ð  (J°dÔ6Jð  (Jð  (Jð  (Jñ  Kô  Kð  Kõ �t˜XÑ&Ô&ð 	 ØˆDŒKÝ�t˜XÑ&Ô&ð 	"Ø˜œÐ'Ð'Ý˜tÐ%6Ñ7Ô7ð &¸4Ô;OÐSYÒ;YÐ;Yà"(�D”K�KØÔ)¨[Ò8Ð8Ø"%�D”Køà!�”Øœ d¤iÑ/°#Ñ5¸¼ÑCˆŒØœ�ˆŒˆˆrJ   rˆ   rŸ  c                ó   — i S r§   rE   r¢  s     rH   r£  z#StaticLibrary.get_link_deps_mapping¥  r   rJ   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{libdir_static})r
   Úget_static_lib_dirr¬   s    rH   rÎ  z%StaticLibrary.get_default_install_dir¨  ó   € ØÔ×2Ò2Ñ4Ô4Ð6GÐGÐGrJ   c                ó   — dS )Nz@starE   r¬   s    rH   rò  zStaticLibrary.type_suffix«  rí  rJ   c                óÄ   •— t          ¦   «                              |¦  «         d|v r9|d         }t          |t          ¦  «        r	|| _        d S t          d|› d�¦  «        ‚d S )NrR   úInvalid rust_crate_type "ú": must be a string.)r,  r>  r  rƒ   rR   r�   )r©   rü  rR   rY  s      €rH   r>  zStaticLibrary.process_kwargs®  st   ø€ Ý‰Œ×Ò˜vÑ&Ô&Ð&Ø Ð&Ð&Ø$Ð%6Ô7ˆOÝ˜/­3Ñ/Ô/ð jØ'6�Ô$Ð$Ð$å&Ð'hÀ?Ð'hÐ'hÐ'hÑiÔiÐið 'Ð&rJ   c                ó   — dS ©NTrE   r¬   s    rH   r  z StaticLibrary.is_linkable_target·  ó   € ØˆtrJ   r˜   c                ó   — | j          S r§   rÿ  r¬   s    rH   r  zStaticLibrary.is_internalº  s   € ØÔ$Ð$Ð$rJ   r   r“  rb  r#  r­  )r�   r‘   r’   Úknown_stlib_kwargsrW  r±  r  rG  r£  rÎ  rò  r>  r  r  rj  rk  s   @rH   r?   r?   u  sâ   ø€ € € € € Ø%€Là€Hð9ð 9ð 9ð 9ð 9ð 9ð'ð 'ð 'ð 'ð 'ð 'ðBð ð ð ðHð Hð Hð Hðð ð ðjð jð jð jð jðð ð ð%ð %ð %ð %ð %ð %ð %ð %rJ   r?   c                  óš   ‡ — e Zd ZeZdZd%ˆ fd„Zd&ˆ fd„Zd'd„Zd(d„Z	d„ Z
ed„ ¦   «         Zˆ fd„Zd)d„Zd)d„Zd„ Zd „ Zd*d"„Zd#„ Zd$„ Zˆ xZS )+r>   zshared libraryr‰   rƒ   r¤   r£   r  r   rY   rË  r'  rÌ  r
   rÛ   r‰  r)  c                óÚ   •— d | _         d | _        g | _        d | _        d | _        d | _        d | _        d | _        d| _        t          ¦   «          
                    |||||||||	|
¦
  «
         d S r  )rq   Ú	ltversionrs   rr   rã  rä  rå  ræ  Úshared_library_onlyr,  r  rC  s              €rH   r  zSharedLibrary.__init__Â  sˆ   ø€ ð ˆŒØˆŒà!ˆÔØ"ˆÔà#ˆÔà"&ˆÔà#'ˆÔ à"ˆÔà#(ˆÔ Ý‰Œ×Ò˜˜v z°;ÀÐI[Ð]dØ$ i°ñ	9ô 	9ð 	9ð 	9ð 	9rJ   r{   r¥   c                óœ  •— t          ¦   «                              ¦   «          d| j        v rXt          | d¦  «        r| j        dk    rt          j        d¦  «         d| _        n!| j        dvrt          d| j        › d�¦  «        ‚t          | d	¦  «        sd | _        t          | d
¦  «        sd | _	        d| _
        |                      ¦   «          d S )NrE  rR   rÞ  z<Defaulting Rust dynamic library target crate type to "dylib"Údylib)r  Úcdylibú
proc-macror  zK" invalid for dynamic libraries; must be "dylib", "cdylib", or "proc-macro"rˆ   rÌ  ú{0.prefix}{0.name}.{0.suffix})r,  rG  r‰  r¸  rR   r   r·  r�   rˆ   rÌ  Úbasic_filename_tplÚdetermine_filenamesr  s    €rH   rG  zSharedLibrary.post_initØ  sö   ø€ Ý‰Œ×ÒÑÔÐØ�T”^Ð#Ð#å˜4Ð!2Ñ3Ô3ð Y°tÔ7KÈuÒ7TÐ7TÝ”
ÐYÑZÔZÐZØ'.�Ô$Ð$àÔ%Ð-NÐNÐNÝ&ð  (X°dÔ6Jð  (Xð  (Xð  (Xñ  Yô  Yð  YÝ�t˜XÑ&Ô&ð 	ØˆDŒKÝ�t˜XÑ&Ô&ð 	ØˆDŒKØ"AˆÔØ× Ò Ñ"Ô"Ð"Ð"Ð"rJ   rˆ   rŸ  c                óX  — i }|                       |¦  «        }t          | ¦  «        }||vrj|                      ¦   «         }|                      ¦   «         \  }}}t          j                             ||d         |¦  «        }|                     ||i¦  «         |                     |¦  «         |S ri  )r¡  r�   rí  rÜ  rg  rÈ   r‹   rì  )	r©   rˆ   r  ÚmappingsÚoldrÊ  rÚ  r\  Únews	            rH   r£  z#SharedLibrary.get_link_deps_mappingé  s¢   € Ø#%ˆØ×8Ò8¸Ñ@Ô@ˆÝ1°$Ñ7Ô7ˆØ�hÐÐØ×%Ò%Ñ'Ô'ˆEØ ×0Ò0Ñ2Ô2‰MˆG�Q˜Ý”'—,’,˜v w¨q¤z°5Ñ9Ô9ˆCØ�MŠM˜3 ˜*Ñ%Ô%Ð%Ø�Š˜ÑÔÐØˆrJ   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{libdir_shared})r
   Úget_shared_lib_dirr¬   s    rH   rÎ  z%SharedLibrary.get_default_install_dirõ  r  rJ   c                ó:  — d}d}d}| j         | _        d| j        v rd}d}d| _        d}�np| j        j        | j                                      ¦   «         �r&d}d                     | j        �| j        nd| j	        ¦  «        | _
        d	                     | j        �| j        nd
| j	        ¦  «        | _        |                      ¦   «         r>d}| j	        › d�| _        | j        j                             t!          d¦  «        ¦  «        }n]|                      ¦   «         r;d}| j
        | _        | j        j                             t!          d¦  «        ¦  «        }nd
}| j        | _        | j        r	d| _        �n)d| _        �n | j        j        | j                                      ¦   «         rUd}d	                     | j        �| j        nd
| j	        ¦  «        | _        d}| j        | _        | j        rd| _        nªd| _        n¢| j        j        | j                                      ¦   «         rd
}d}| j        rd| _        nfd| _        n^| j        j        | j                                      ¦   «         rd
}d}d| _        n)d
}d}| j        rd| _        n| j        rd| _        nd| _        | j        €|| _        | j        €|| _        | j                             | ¦  «        | _        | j        | j        d<   |r4t4          j                             | j        ¦  «        d         dz   | _        dS dS )añ  
        See https://github.com/mesonbuild/meson/pull/417 for details.

        First we determine the filename template (self.filename_tpl), then we
        set the output filename (self.filename).

        The template is needed while creating aliases (self.get_aliases),
        which are needed while generating .so shared libraries for Linux.

        Besides this, there's also the import library name, which is only used
        on Windows since on that platform the linker uses a separate library
        called the "import library" during linking instead of the shared
        library (DLL). The toolchain will output an import library in one of
        two formats: GCC or Visual Studio.

        When we're building with Visual Studio, the import library that will be
        generated by the toolchain is self.vs_import_filename, and with
        MinGW/GCC, it's self.gcc_import_filename. self.import_filename will
        always contain the import library name this target will generate.
        r‡   Fr€  Údllr  Tz{}{}.libNz
{}{}.dll.arÞ  z.dll.libr·  z+{0.prefix}{0.name}-{0.soversion}.{0.suffix}Úcygr  z+{0.prefix}{0.name}.{0.soversion}.{0.suffix}Úsoz+{0.prefix}{0.name}.{0.suffix}.{0.ltversion}z+{0.prefix}{0.name}.{0.suffix}.{0.soversion}r   rà  )r  Úfilename_tplr‰  r
   rÍ  r  rÏ  rX  rˆ   r‰   rä  rå  r&  rã  r¶  r  r   r]  rq   rá  rÎ  rÑ  r  rÌ  r5  r6  rg  rÈ   r…  ræ  )r©   rˆ   rÌ  Úcreate_debug_files       rH   r   z!SharedLibrary.determine_filenamesø  sj  € ð* ˆØˆØ!ÐØ Ô3ˆÔð �4”>Ð!Ð!ØˆFØˆFØ ?ˆDÔØ $ÐÑð ÔÔ& tÔ'7Ô8×CÒCÑEÔEñ C	DØˆFØ&0×&7Ò&7ÀtÄ{ÐG^¸¼¸ÐdfÐhlÔhqÑ&rÔ&rˆDÔ#Ø'3×':Ò':È$Ì+ÐJa¸4¼;¸;ÐglÐnrÔnwÑ'xÔ'xˆDÔ$Ø�~Š~ÑÔð @à�à*.¬)Ð'=Ð'=Ð'=�Ô$à$(Ô$4Ô$=×$HÒ$HÍÐSZÑI[ÔI[Ñ$\Ô$\Ð!Ð!Ø×$Ò$Ñ&Ô&ð @à�à'+Ô'>�Ô$à$(Ô$4Ô$=×$HÒ$HÍÐSZÑI[ÔI[Ñ$\Ô$\Ð!Ð!ð �à'+Ô'?�Ô$àŒ~ð DØ$Q�Ô!Ñ!à$C�Ô!Ñ!ØÔÔ& tÔ'7Ô8×BÒBÑDÔDð &	DØˆFØ'3×':Ò':È$Ì+ÐJa¸4¼;¸;ÐglÐnrÔnwÑ'xÔ'xˆDÔ$ð ˆFà#'Ô#;ˆDÔ ØŒ~ð DØ$Q�Ô!Ð!à$C�Ô!Ð!ØÔÔ& tÔ'7Ô8×BÒBÑDÔDð 	DØˆFØˆFàŒ~ð Dà$Q�Ô!Ð!ð %D�Ô!Ð!ØÔÔ& tÔ'7Ô8×CÒCÑEÔEð 	DØˆFØˆFà ?ˆDÔÐàˆFØˆFØŒ~ð Dà$Q�Ô!Ð!Ø”ð Dà$Q�Ô!Ð!ð %D�Ô!ØŒ;ÐØ ˆDŒKØŒ;ÐØ ˆDŒKØÔ)×0Ò0°Ñ6Ô6ˆŒð œ-ˆŒ�Q‰Øð 	NÝ"$¤'×"2Ò"2°4´=Ñ"AÔ"AÀ!Ô"DÀvÑ"MˆDÔÐÐð	Nð 	NrJ   c                ó.  — 	 t          | t          ¦  «        rt          | ¦  «        } t          | t          ¦  «        rd| gz  } t          | t          ¦  «        st	          d| ›�¦  «        ‚t          | ¦  «        dk    rt	          d¦  «        ‚t          | ¦  «        dk    rd| z  } t          | d d …         ¦  «        D �]<\  }}t          |t          ¦  «        rt          |¦  «        }t          |t          ¦  «        st	          d|›�¦  «        ‚t          j        d|¦  «        st	          d¦  «        ‚| 	                    d¦  «        }t          |¦  «        d	v r(t          |d
         ¦  «        dk    rt	          d¦  «        ‚t          |¦  «        dv r(t          |d         ¦  «        dk    rt	          d¦  «        ‚t          |¦  «        dk    r(t          |d         ¦  «        dk    rt	          d¦  «        ‚|| |<   �Œ>n# t          $ r t	          d¦  «        ‚w xY w| S )Nr0  zIShared library darwin_versions: must be a string, integer,or a list, not zEShared library darwin_versions: list must contain 2 or fewer elementsr	   zOShared library darwin_versions: list elements must be strings or integers, not ú[0-9]+(\.[0-9]+){0,2}zaShared library darwin_versions: must be X.Y.Z where X, Y, Z are numbers, and Y and Z are optionalr…   >   r	   r0  é   r   iÿÿ  zYShared library darwin_versions: must be X.Y.Z where X is [0, 65535] and Y, Z are optional>   r0  r/  éÿ   zWShared library darwin_versions: must be X.Y.Z where Y is [0, 255] and Y, Z are optionalr/  zWShared library darwin_versions: must be X.Y.Z where Z is [0, 255] and Y, Z are optionalz0Shared library darwin_versions: value is invalid)r  rz   rƒ   r  r�   r~   Ú	enumeraterâ  rã  r  Ú
ValueError)rs   r×  r  r’  s       rH   Ú_validate_darwin_versionsz'SharedLibrary._validate_darwin_versionsj  s†  € ð!	WÝ˜/­3Ñ/Ô/ð 7Ý"% oÑ"6Ô"6�Ý˜/­3Ñ/Ô/ð 8Ø"# Ð&7Ñ"7�Ý˜o­tÑ4Ô4ð NÝ&ð (MØ9Hð(Mð (Mñ Nô Nð Nå�?Ñ#Ô# aÒ'Ð'Ý&Ð'nÑoÔoÐoÝ�?Ñ#Ô# qÒ(Ð(Ø"# oÑ"5�Ý! /°!°!°!Ô"4Ñ5Ô5ð 'ñ '‘��1Ý˜a¥Ñ%Ô%ð Ý˜A™œ�AÝ! !¥SÑ)Ô)ð VÝ*ð ,UØOPð,Uð ,Uñ Vô Vð Vå”|Ð$<¸aÑ@Ô@ð \Ý*ð ,[ñ \ô \ð \àŸš ™œ�Ý�u‘:”: Ð*Ð*­s°5¸´8©}¬}¸uÒ/DÐ/DÝ*ð ,Yñ Zô Zð Zå�u‘:”: Ð'Ð'­C°°a´©M¬M¸CÒ,?Ð,?Ý*ð ,Wñ Xô Xð Xå�u‘:”: ’?�?¥s¨5°¬8¡}¤}°sÒ':Ð':Ý*ð ,Wñ Xô Xð Xà%&� Ñ"Ñ"ð''øõ( ð 	Wð 	Wð 	WÝ"Ð#UÑVÔVÐVð	WøøøàÐs   ‚G5G8 Ç8Hc                ó*  •— t          ¦   «                              |¦  «         | j        j        | j                                      ¦   «         �s\d|v r‚|d         | _        t          | j        t          ¦  «        s)t          dt          | j        ¦  «        j        z   ¦  «        ‚t          j        d| j        ¦  «        st          d| j        › d�¦  «        ‚d|v rj|d         | _        t          | j        t          ¦  «        rt          | j        ¦  «        | _        t          | j        t          ¦  «        st          d¦  «        ‚n,| j        r%| j                             d¦  «        d	         | _        d
|v r!|                      |d
         ¦  «        | _        n| j        rd| j        gz  | _        d|v �r|d         }t          |t          ¦  «        rdt&          j                             |¦  «        rt-          j        |¦  «        | _        n™t-          j        | j        j        | j        |¦  «        | _        nnt          |t,          ¦  «        r|| _        nQt9          |d¦  «        r2t-          j        |j        |                     ¦   «         ¦  «        | _        nt          d¦  «        ‚|                      |¦  «         d|v r[|d         }t          |t          ¦  «        r|| _         nt          d|› d�¦  «        ‚|dk    rtC          j"        dd| j#        ¦  «         d S d S d S )Nrp   z1Shared library version needs to be a string, not r.  z Invalid Shared library version "zO". Must be of the form X.Y.Z where all three are numbers. Y and Z are optional.rq   z4Shared library soversion is not a string or integer.r…   r   rs   r0  rr   rí  zWShared library vs_module_defs must be either a string, a file object or a Custom TargetrR   r  r  r  zRust crate type "proc-macro"z0.62.0)$r,  r>  r
   rÍ  r  rÑ  r  r  rƒ   r�   rº  r�   râ  rã  rq   rz   r  r3  rs   rg  rÈ   r²  r   r³  rr   r…  r†  r¤   r¸  rž  rí  r‡  rR   r*   r�  r£   )r©   rü  rÈ   rR   rY  s       €rH   r>  zSharedLibrary.process_kwargs�  s1  ø€ Ý‰Œ×Ò˜vÑ&Ô&Ð&àÔÔ(¨Ô)9Ô:×EÒEÑGÔGñ 	<à˜FÐ"Ð"Ø!'¨	Ô!2�”Ý! $¤.µ#Ñ6Ô6ð @Ý*Ð+^ÕaeÐfjÔftÑauÔauÔa~Ñ+~ÑÔÐÝ”|Ð$<¸d¼nÑMÔMð oÝ*ð  ,nÈdÌnð  ,nð  ,nð  ,nñ  oô  oð  oà˜fÐ$Ð$Ø!'¨Ô!4�”Ý˜dœn­cÑ2Ô2ð 9Ý%(¨¬Ñ%8Ô%8�D”NÝ! $¤.µ#Ñ6Ô6ð cÝ*Ð+aÑbÔbÐbðcà”ð >ð "&¤×!5Ò!5°cÑ!:Ô!:¸1Ô!=�”à  FÐ*Ð*Ø'+×'EÒ'EÀfÐM^ÔF_Ñ'`Ô'`�Ô$Ð$Ø”ð <à'(¨D¬NÐ+;Ñ';�Ô$ð ˜vÐ%Ñ%ØÐ*Ô+ˆDÝ˜$¥Ñ$Ô$ð 8Ý”7—=’= Ñ&Ô&ð pÝ*.Ô*AÀ$Ñ*GÔ*G�DÔ'Ð'å*.Ô*?ÀÔ@PÔ@[Ð]aÔ]hÐjnÑ*oÔ*o�DÔ'Ð'Ý˜D¥$Ñ'Ô'ð 	8à&*�Ô#Ð#Ý˜˜~Ñ.Ô.ð 8å&*Ô&:¸4¼;È×HYÒHYÑH[ÔH[Ñ&\Ô&\�Ô#Ð#å&ð7ñ8ô 8ð 8ð ×%Ò% dÑ+Ô+Ð+à Ð&Ð&Ø$Ð%6Ô7ˆOÝ˜/­3Ñ/Ô/ð jØ'6�Ô$Ð$å&Ð'hÀ?Ð'hÐ'hÐ'hÑiÔiÐiØ ,Ò.Ð.ÝÔ%Ð&DÀhÐPTÔP_Ñ`Ô`Ð`Ð`Ð`ð 'Ð&ð /Ð.rJ   rž   c                ó   — | j         S rï  rð  r¬   s    rH   rñ  z!SharedLibrary.get_import_filenameË  rò  rJ   c                ó   — | j         S rø  rù  r¬   s    rH   rú  z SharedLibrary.get_debug_filenameÓ  rû  rJ   c                ó0   — | j         r| j        | j        gS g S r§   rô  r¬   s    rH   rõ  z&SharedLibrary.get_import_filenameslistÛ  rö  rJ   c                ó2   — | g|                       ¦   «         z   S r§   rš  r¬   s    rH   rœ  zSharedLibrary.get_all_link_depsà  s   € Øˆv˜×5Ò5Ñ7Ô7Ñ7Ð7rJ   r=  c                ó¸  — g }| j         dvs| j        s|S | j         dk    rt| j        rm| j        | j        k    r]| j                             dd¦  «        }|                     | ¦  «        }| j        d         pd}|                     || j        |f¦  «         n| j        }| j        d         pd}|                     | j	                             | ¦  «        ||f¦  «         |S )a#  
        If the versioned library name is libfoo.so.0.100.0, aliases are:
        * libfoo.so.0 (soversion) -> libfoo.so.0.100.0
        * libfoo.so (unversioned; for linking) -> libfoo.so.0
        Same for dylib:
        * libfoo.dylib (unversioned; for linking) -> libfoo.0.dylib
        )r*  r  r*  r  rq   r   ÚruntimeÚdevel)
rÌ  rq   r  r+  ræ  rX  r`   rŠ   r5  r  )r©   ÚaliasesÚ	alias_tplÚltversion_filenameÚtags        rH   r?  zSharedLibrary.get_aliasesã  sô   € ð 35ˆð Œ;˜oÐ-Ð-°T´^Ð-ØˆNð
 Œ;˜$ÒÐ 4¤>Ð°d´nÈÌÒ6VÐ6VØÔ)×1Ò1°+¸{ÑKÔKˆIØ!*×!1Ò!1°$Ñ!7Ô!7ÐØÔ" 1Ô%Ð2¨ˆCØ�NŠNÐ.°´¸sÐCÑDÔDÐDÐDð "&¤Ðð Ô˜qÔ!Ð, WˆØ�Š˜Ô/×6Ò6°tÑ<Ô<Ð>PÐRUÐVÑWÔWÐWØˆrJ   c                ó   — dS )Nz@sharE   r¬   s    rH   rò  zSharedLibrary.type_suffix	  rí  rJ   c                ó   — dS r  rE   r¬   s    rH   r  z SharedLibrary.is_linkable_target	  r  rJ   r   r“  rb  r#  r»   rg  )r�   r‘   r’   Úknown_shlib_kwargsrW  r±  r  rG  r£  rÎ  r   r”  r3  r>  rñ  rú  rõ  rœ  r?  rò  r  rj  rk  s   @rH   r>   r>   ½  s[  ø€ € € € € Ø%€Là€Hð9ð 9ð 9ð 9ð 9ð 9ð,#ð #ð #ð #ð #ð #ð"
ð 
ð 
ð 
ðHð Hð Hð HðpNð pNð pNðd ð#ð #ñ „\ð#ðJ9að 9að 9að 9að 9aðv$ð $ð $ð $ð#ð #ð #ð #ðð ð ð
8ð 8ð 8ðð ð ð ð@ð ð ðð ð ð ð ð ð rJ   r>   c                  ó0   ‡ — e Zd ZeZdZdˆ fd„Zdd„Zˆ xZS )r_  zshared moduler‰   rƒ   r¤   r£   r  r   rY   rË  r'  rÌ  r
   rÛ   r‰  r)  c                ó¶   •— d|
v rt          d¦  «        ‚d|
v rt          d¦  «        ‚t          ¦   «                              |||||||||	|
¦
  «
         d| _        d S )Nrp   z2Shared modules must not specify the version kwarg.rq   z4Shared modules must not specify the soversion kwarg.F)r   r,  r  r`  rC  s              €rH   r  zSharedModule.__init__	  s}   ø€ ð ˜ÐÐÝ Ð!UÑVÔVÐVØ˜&Ð Ð Ý Ð!WÑXÔXÐXÝ‰Œ×Ò˜˜v z°;ÀØ+¨W°kÀ9Èfñ	Vô 	Vð 	Vð "ˆÔÐÐrJ   r{   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{moduledir_shared})r
   Úget_shared_module_dirr¬   s    rH   rÎ  z$SharedModule.get_default_install_dir	  s   € ØÔ×5Ò5Ñ7Ô7Ð9MÐMÐMrJ   r   r#  )	r�   r‘   r’   Úknown_shmod_kwargsrW  r±  r  rÎ  rj  rk  s   @rH   r_  r_  	  sc   ø€ € € € € Ø%€Là€Hð"ð "ð "ð "ð "ð "ðNð Nð Nð Nð Nð Nð Nð NrJ   r_  c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )ÚBothLibrariesÚsharedr>   Ústaticr?   r{   r¥   c                óR   — d| _         || _        || _        | j        j        | _        d S )NrJ  )Ú_preferred_libraryrJ  rK  r£   )r©   rJ  rK  s      rH   r  zBothLibraries.__init__"	  s(   € Ø"*ˆÔØˆŒØˆŒØœ+Ô0ˆŒˆˆrJ   rƒ   c                ó\   — dt          | j        ¦  «        › dt          | j        ¦  «        › d�S )Nz<BothLibraries: static=z	; shared=ú>)ÚreprrK  rJ  r¬   s    rH   r\  zBothLibraries.__repr__(	  s/   € ØY­¨d¬kÑ):Ô):ÐYÐYÅTÈ$Ì+ÑEVÔEVÐYÐYÐYÐYrJ   r@   c                óz   — | j         dk    r| j        S | j         dk    r| j        S t          d| j         › d�¦  «        ‚)NrJ  rK  zself._preferred_library == "z#" is neither "shared" nor "static".)rM  rJ  rK  r!   r¬   s    rH   Úget_default_objectz BothLibraries.get_default_object+	  sK   € ØÔ" hÒ.Ð.Ø”;ÐØÔ$¨Ò0Ð0Ø”;ÐÝÐ {¸tÔ?VÐ {Ð {Ð {Ñ|Ô|Ð|rJ   N)rJ  r>   rK  r?   r{   r¥   rk  )r{   r@   )r�   r‘   r’   r  r\  rR  rE   rJ   rH   rI  rI  !	  sZ   € € € € € ð1ð 1ð 1ð 1ðZð Zð Zð Zð}ð }ð }ð }ð }ð }rJ   rI  c                  ó6   — e Zd ZU ded<   ded<   ded<   dd„ZdS )ÚCommandBaser�   r®  ú,T.List[T.Union[BuildTarget, 'CustomTarget']]r   rƒ   r£   ÚcmdúJT.Sequence[T.Union[str, File, programs.ExternalProgram, BuildTargetTypes]]r{   ú7T.List[T.Union[str, File, BuildTarget, 'CustomTarget']]c           	     óÚ  — t          |¦  «        }g }|D �]U}t          |t          ¦  «        r|                     |¦  «         Œ.t          |t          ¦  «        r0| j                             |¦  «         |                     |¦  «         Œst          |t          j        ¦  «        r›|                     ¦   «         st          d¦  «        ‚| 
                    ¦   «         }t          j                             |¦  «        r,| j                             t	          j        |¦  «        ¦  «         ||                     ¦   «         z  }�Œ(t          |t           t"          f¦  «        r1| j                             |¦  «         |                     |¦  «         �Œut          |t&          ¦  «        r‹t)          j        dd| j        ¦  «         | j                             |j        ¦  «         ||                      t	          j        |                     ¦   «         |                     ¦   «         ¦  «        ¦  «        z  }�Œt          |t8          ¦  «        r||                      |¦  «        z  }�ŒDt          d|›d�¦  «        ‚|S )Nz4Tried to use not-found external program in "command"z&CustomTargetIndex for command argumentz0.60rè  z in "command" is invalid)r   r  rƒ   rŠ   r   r®  r   r¯  r°  r�   r±  rg  rÈ   r²  r³  rÿ  r@   r;   r   r<   r*   r�  r£   ro  Úflatten_commandrž  râ  rí  r  )r©   rV  Ú	final_cmdro  rÈ   s        rH   rZ  zCommandBase.flatten_command8	  s7  € å�c‰lŒlˆØMOˆ	Øð 	Rñ 	RˆAÝ˜!�SÑ!Ô!ð RØ× Ò  Ñ#Ô#Ð#Ð#Ý˜A�tÑ$Ô$ð RØÔ!×(Ò(¨Ñ+Ô+Ð+Ø× Ò  Ñ#Ô#Ð#Ð#Ý˜A�xÔ7Ñ8Ô8ð RØ—w’w‘y”yð cÝ*Ð+aÑbÔbÐbØ—z’z‘|”|�Ý”7—=’= Ñ&Ô&ð Lð Ô%×,Ò,­TÔ-DÀTÑ-JÔ-JÑKÔKÐKØ˜QŸ]š]™_œ_Ñ,�	‘	Ý˜A¥­\Ð:Ñ;Ô;ð 
RØÔ!×(Ò(¨Ñ+Ô+Ð+Ø× Ò  Ñ#Ô#Ð#Ñ#Ý˜AÕ0Ñ1Ô1ð RÝÔ%Ð&NÐPVÐX\ÔXgÑhÔhÐhØÔ!×(Ò(¨¬Ñ2Ô2Ð2Ø˜T×1Ò1µ$Ô2FÀqÇ|Â|Á~Ä~ÐWX×WeÒWeÑWgÔWgÑ2hÔ2hÑiÔiÑi�	‘	Ý˜A�tÑ$Ô$ð RØ˜T×1Ò1°!Ñ4Ô4Ñ4�	‘	å&Ð'P°1Ð'PÐ'PÐ'PÑQÔQÐQØÐrJ   N)rV  rW  r{   rX  )r�   r‘   r’   rš   rZ  rE   rJ   rH   rT  rT  2	  sK   € € € € € € àÐÐÑØ>Ð>Ð>Ñ>Ø€O€O�Oðð ð ð ð ð rJ   rT  c                  ó  ‡ — e Zd ZdZddddddddddddddddœdUˆ fd*„ZdVd-„Zd.„ ZdWd0„ZdXd2„Zd3„ Z	dYd4„Z
dZd6„Zd[d8„Zd\d9„Zd]d:„Zd^d<„Zd_d>„Zd_d?„Zd@„ ZdYdA„ZdYdB„Zd`dE„ZdadG„ZdH„ ZdYdI„ZdbdK„ZdL„ ZdcdP„ZdQ„ ZdR„ ZdS„ ZdddT„Zˆ xZ S )er;   ÚcustomFN)rµ  rh   ro  r¹  r®  r­  rn  ÚenvÚfeedrW   r_   rc   r`   Úabsolute_pathsÚbackendr‰   rž   r¤   rƒ   r£   r
   rÛ   ÚcommandúYT.Sequence[T.Union[str, BuildTargetTypes, GeneratedList, programs.ExternalProgram, File]]rY   úkT.Sequence[T.Union[str, File, BuildTargetTypes, ExtractedObjects, GeneratedList, programs.ExternalProgram]]r6  rÓ   rµ  r˜   rh   úT.Optional[bool]ro  r¹  r®  ú$T.Optional[T.Sequence[FileOrString]]r­  ú3T.Optional[T.Sequence[T.Union[str, SourceOutputs]]]rn  r^  ú T.Optional[EnvironmentVariables]r_  rW   r_   ú0T.Optional[T.List[T.Union[str, Literal[False]]]]rc   úT.Optional[FileMode]r`   rx   r`  ra  úT.Optional['Backend']c          	     óâ  •— t          ¦   «                              |||dt          j        |¦  «         t	          |¦  «        | _        t          |t          t          ||¦  «        g ¦  «        ¦  «        | _	        |	�|	n|| _
        || _        |
| _        || _        t	          |pg ¦  «        | _        g | _        |                      |¦  «        | _        || _        |pt'          ¦   «         | _        t	          |pg ¦  «        | _        || _        || _        t	          |pg ¦  «        | _        || _        t5          |t7          | j	        ¦  «        ¦  «        | _        |r|n| j	        d         | _        || _        d S )NFr   )r,  r  r   ÚHOSTr  rY   r   r   Úget_sources_string_namesr6  rh   rµ  ro  r¹  r®  r   rZ  rb  rn  r"   r^  r­  r_  rW   r_   rc   r€   r~   r`   r‰   r`  )r©   r‰   r¤   r£   r
   rb  rY   r6  rµ  rh   ro  r¹  r®  r­  rn  r^  r_  rW   r_   rc   r`   r`  ra  rY  s                          €rH   r  zCustomTarget.__init__\	  sc  ø€ õ< 	‰Œ×Ò˜˜v z°5½-Ô:LÈkÑZÔZÐZÝ˜G‘}”}ˆŒÝ(ØÕ1Ý(¨°'Ñ:Ô:Øñô ñô ˆŒð 5EÐ4PÐ 0Ð 0ÐV]ˆÔØ"4ˆÔØˆŒØˆŒÝ  Ð!3°Ñ4Ô4ˆÔØHJˆÔà×+Ò+¨GÑ4Ô4ˆŒØˆŒØÐ0Õ.Ñ0Ô0ˆŒÝ! -Ð"5°2Ñ6Ô6ˆÔØˆŒ	ØˆŒÝ Ð 1¨rÑ2Ô2ˆÔØ(ˆÔÝ/°½SÀÄÑ=NÔ=NÑOÔOˆÔØ Ð5�D�D d¤l°1¤oˆŒ	ð -ˆÔÐÐrJ   r{   rÊ  c                ó   — dS )Nr¦  rE   r¬   s    rH   rÎ  z$CustomTarget.get_default_install_dir•	  ó   € ØˆzrJ   c                óv   — d}|                      | j        j        |                      ¦   «         | j        ¦  «        S rI  ©rX  rY  r�   r¿  rb  rK  s     rH   r\  zCustomTarget.__repr__˜	  s,   € Ø#ˆØ�Š˜tœ~Ô6¸¿º¹¼ÀtÄ|ÑTÔTÐTrJ   ú#T.List[T.Union[SourceOutputs, str]]c                óD  — g }|                      | j        ¦  «         |                      | j        ¦  «         | j        D ]a}t	          |t
          ¦  «        r|                     |j        ¦  «         Œ2t	          |t          j	        ¦  «        s|                     |¦  «         Œb|S r§   )
r›  r   r­  rY   r  r<   rŠ   ro  r   r¯  )r©   r  ro  s      rH   Úget_target_dependenciesz$CustomTarget.get_target_dependenciesœ	  s–   € Ø46ˆØ�Š�DÔ%Ñ&Ô&Ð&Ø�Š�DÔ&Ñ'Ô'Ð'Ø”ð 	ð 	ˆAÝ˜!Õ.Ñ/Ô/ð Ø—’˜AœHÑ%Ô%Ð%Ð%Ý ¥8Ô#;Ñ<Ô<ð Ø—’˜A‘”�øØˆrJ   ú+T.Set[T.Union[BuildTarget, 'CustomTarget']]c                ó"  — t          ¦   «         }|                      ¦   «         }|D ]i}t          |t          ¦  «        r|                     |¦  «         Œ-t          |t
          ¦  «        r'|                     |                     ¦   «         ¦  «         Œj|S )a’  
        Recursively fetch the build targets that this custom target depends on,
        whether through `command:`, `depends:`, or `sources:` The recursion is
        only performed on custom targets.
        This is useful for setting PATH on Windows for finding required DLLs.
        F.ex, if you have a python script that loads a C module that links to
        other DLLs in your project.
        )rù   ru  r  r@   r_  r;   rì  Ú get_transitive_build_target_deps)r©   Úbdepsr  rD  s       rH   rx  z-CustomTarget.get_transitive_build_target_deps§	  s‹   € õ >A¹U¼UˆØ×+Ò+Ñ-Ô-ˆØð 	Cð 	CˆAÝ˜!�[Ñ)Ô)ð CØ—	’	˜!‘”��Ý˜A�|Ñ,Ô,ð CØ—’˜Q×?Ò?ÑAÔAÑBÔBÐBøØˆrJ   c                ó   — | j         S r§   r   r¬   s    rH   rô  zCustomTarget.get_dependencies¹	  r=  rJ   c                ó   — | j         S r§   )rW   r¬   s    rH   r"  zCustomTarget.should_install¼	  r²   rJ   rÐ  c                ó   — | j         S r§   r®  r¬   s    rH   rµ   z#CustomTarget.get_custom_install_dir¿	  r¯  rJ   r°  c                ó   — | j         S r§   r²  r¬   s    rH   r¹   z$CustomTarget.get_custom_install_modeÂ	  r=  rJ   c                ó   — | j         S r§   rï  r¬   s    rH   r„  zCustomTarget.get_outputsÅ	  r²   rJ   c                ó   — | j         d         S ri  rï  r¬   s    rH   rí  zCustomTarget.get_filenameÈ	  s   € ØŒ|˜AŒÐrJ   úcT.List[T.Union[str, File, BuildTarget, GeneratedTypes, ExtractedObjects, programs.ExternalProgram]]c                ó   — | j         S r§   r°   r¬   s    rH   r±   zCustomTarget.get_sourcesË	  r²   rJ   úT.List[GeneratedList]c                ór   — g }| j         D ],}t          |t          ¦  «        r|                     |¦  «         Œ-|S r§   )rY   r  r=   rŠ   )r©   Úgenlistsro  s      rH   Úget_generated_listsz CustomTarget.get_generated_listsÎ	  sB   € Ø*,ˆØ”ð 	#ð 	#ˆAÝ˜!�]Ñ+Ô+ð #Ø—’ Ñ"Ô"Ð"øØˆrJ   c                ó*   — |                       ¦   «         S r§   )r…  r¬   s    rH   rü  z"CustomTarget.get_generated_sourcesÕ	  s   € Ø×'Ò'Ñ)Ô)Ð)rJ   c                ót  — | j         €t          d¦  «        ‚|ryt          j                             |d         ¦  «        }t          j                             |¦  «        d         }| j                              d|¦  «                             d|¦  «        S d| j         v s	d| j         v rt          d¦  «        ‚| j         S )NzOTried to get depfile name for custom_target that does not have depfile defined.r   r  r€  zKSubstitution in depfile for custom_target that does not have an input file.r‰  )r©   Úinfilenamesr„  rƒ  s       rH   rŠ  zCustomTarget.get_dep_outnameØ	  s­   € ØŒ<ÐÝ"Ð#tÑuÔuÐuØð 	 Ýœ×(Ò(¨°Q¬Ñ8Ô8ˆIÝ”w×'Ò'¨	Ñ2Ô2°1Ô5ˆHØ”<×'Ò'¨°hÑ?Ô?×GÒGÈÐW`ÑaÔaÐaà˜tœ|Ð+Ð+¨}ÀÄÐ/LÐ/LÝ&Ð'tÑuÔuÐuØ”<ÐrJ   c                óž   — t          | j        ¦  «        dk    rdS t          j                             | j        d         ¦  «        d         }|dv S )Nr	   Fr   éÿÿÿÿ¾   ú.soú.dllrß  rÝ  r†   )r~   r6  rg  rÈ   r…  ©r©   Úsufs     rH   r  zCustomTarget.is_linkable_targetä	  sH   € ÝˆtŒ|ÑÔ Ò!Ð!Ø�5ÝŒg×Ò˜tœ|¨AœÑ/Ô/°Ô3ˆØÐ=Ð=Ð=rJ   c                ój   — t           j                             | j        d         ¦  «        d         }|dvS )úÉWhether this target links dynamically or statically

        Does not assert the target is linkable, just that it is not shared

        :return: True if is dynamically linked, otherwise False
        r   rŠ  ¾   rß  rÝ  )rg  rÈ   r…  r6  rŽ  s     rH   r)  zCustomTarget.links_dynamicallyê	  s/   € õ Œg×Ò˜tœ|¨AœÑ/Ô/°Ô3ˆØ˜.Ð(Ð(rJ   rˆ   rŸ  c                ó   — i S r§   rE   r¢  s     rH   r£  z"CustomTarget.get_link_deps_mappingô	  r   rJ   r§  c                ó   — t          ¦   «         S r§   )r   r¬   s    rH   r©  z!CustomTarget.get_link_dep_subdirs÷	  s   € Ý‰|Œ|ÐrJ   c                ó   — g S r§   rE   r¬   s    rH   rœ  zCustomTarget.get_all_link_depsú	  r   rJ   c                ó�   — t          | j        ¦  «        dk    rdS t          | | j        d         ¦  «                             ¦   «         S )zI
        Returns True if this is a not installed static library.
        r	   Fr   )r~   r6  r<   r  r¬   s    rH   r  zCustomTarget.is_internalý	  s@   € õ ˆtŒ|ÑÔ Ò!Ð!Ø�5Ý   t¤|°A¤Ñ7Ô7×CÒCÑEÔEÐErJ   r+  c                ó*   — |                       ¦   «         S r§   )r„  r¬   s    rH   r*  z(CustomTarget.extract_all_objects_recurse
  s   € Ø×ÒÑ!Ô!Ð!rJ   c                ó   — dS )Nz@cusrE   r¬   s    rH   rò  zCustomTarget.type_suffix
  rí  rJ   Úindexrz   ú'CustomTargetIndex'c                ó8   — t          | | j        |         ¦  «        S r§   )r<   r6  ©r©   r™  s     rH   Ú__getitem__zCustomTarget.__getitem__
  s   € Ý   t¤|°EÔ':Ñ;Ô;Ð;rJ   c                ó   — t           ‚r§   rÌ  )r©   r™  r  s      rH   Ú__setitem__zCustomTarget.__setitem__
  rÏ  rJ   c                ó   — t           ‚r§   rÌ  rœ  s     rH   Ú__delitem__zCustomTarget.__delitem__
  rÏ  rJ   c              #  óB   K  — | j         D ]}t          | |¦  «        V — Œd S r§   )r6  r<   )r©   r×  s     rH   Ú__iter__zCustomTarget.__iter__
  s:   è è € Ø”ð 	-ð 	-ˆAÝ# D¨!Ñ,Ô,Ð,Ð,Ð,Ð,ð	-ð 	-rJ   c                ó*   — t          | j        ¦  «        S r§   )r~   r6  r¬   s    rH   Ú__len__zCustomTarget.__len__
  s   € Ý�4”<Ñ Ô Ð rJ   ),r‰   rž   r¤   rƒ   r£   rƒ   r
   rÛ   rb  rc  rY   rd  r6  rÓ   rµ  r˜   rh   re  ro  r˜   r¹  r˜   r®  rf  r­  rg  rn  rž   r^  rh  r_  r˜   rW   r˜   r_   ri  rc   rj  r`   rx   r`  r˜   ra  rk  r#  )r{   rs  )r{   rv  r­  r$  rd  rl  rk  )r{   r€  )r{   r‚  rb  rc  rf  )r™  rz   r{   rš  )r{   rz   )!r�   r‘   r’   r±  r  rÎ  r\  ru  rx  rô  r"  rµ   r¹   r„  rí  r±   r…  rü  rŠ  r  r)  r£  r©  rœ  r  r*  rò  r�  rŸ  r¡  r£  r¥  rj  rk  s   @rH   r;   r;   X	  sw  ø€ € € € € à€Hð -2Ø6:Ø!&Ø!&ØFJØVZØ,0Ø9=Ø#Ø!&ØQUØ6:ØDHØ(-Ø26ð77-ð 7-ð 7-ð 7-ð 7-ð 7-ð 7-ð 7-ðrð ð ð ðUð Uð Uð	ð 	ð 	ð 	ðð ð ð ð$!ð !ð !ðð ð ð ð ð  ð  ð  ð!ð !ð !ð !ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð*ð *ð *ð *ð
 ð 
 ð 
 ð>ð >ð >ð >ð)ð )ð )ð )ðð ð ð ðð ð ð ðð ð ðFð Fð Fð Fð"ð "ð "ð "ðð ð ð<ð <ð <ð <ð"ð "ð "ð"ð "ð "ð-ð -ð -ð!ð !ð !ð !ð !ð !ð !ð !rJ   r;   c                  óH   ‡ — e Zd ZdZdZdˆ fd„Zdd„Zedd„¦   «         Zˆ xZ	S )ÚCompileTargetz|
    Target that only compile sources without linking them together.
    It can be used as preprocessor, or transpiler.
    Úcompiler‰   rƒ   r¤   r£   r
   rÛ   rY   r�   Úoutput_templr  r0   c	                ó8  •— |                      ¦   «         |i}	t          ¦   «                              ||||j        |d g ||	|¦
  «
         || _        || _        || _        g | _        |D ]�}
t          j	         
                    |
j        ¦  «        }t          j	                             |¦  «        d         }| j                             |                     d|¦  «                             d|¦  «        ¦  «         ŒŽt          t!          || j        ¦  «        ¦  «        | _        d S )Nr   r  r€  )rB  r,  r  r  r5  r  r©  r6  rg  rÈ   rƒ  rÊ  r…  rŠ   ræ  r  ÚzipÚsources_map)r©   r‰   r¤   r£   r
   rY   r©  r  rü  r‰  r«  r„  rƒ  rY  s                €rH   r  zCompileTarget.__init__#
  s  ø€ ð ×*Ò*Ñ,Ô,¨hÐ7ˆ	Ý‰Œ×Ò˜˜v z°8Ô3GØ  $¨¨K¸ÀFñ	Lô 	Lð 	LàˆŒØ ˆŒØ(ˆÔØˆŒØð 	pð 	pˆAÝœ×(Ò(¨¬Ñ1Ô1ˆIÝ”w×'Ò'¨	Ñ2Ô2°1Ô5ˆHØŒL×Ò × 4Ò 4°\À8Ñ LÔ L× TÒ TÐUbÐdmÑ nÔ nÑoÔoÐoÐoÝ¥ G¨T¬\Ñ :Ô :Ñ;Ô;ˆÔÐÐrJ   r{   c                ó   — dS )Nz@compilerE   r¬   s    rH   rò  zCompileTarget.type_suffix9
  rp  rJ   r˜   c                ó   — dS r  rE   r¬   s    rH   rw  zCompileTarget.is_unity<
  s   € àˆurJ   )r‰   rƒ   r¤   rƒ   r£   rƒ   r
   rÛ   rY   r�   r©  rƒ   r  r0   rk  r­  )
r�   r‘   r’   rN  r±  r  rò  ri  rw  rj  rk  s   @rH   r§  r§  
  s‚   ø€ € € € € ðð ð
 €Hð<ð <ð <ð <ð <ð <ð,ð ð ð ð ðð ð ñ „Xðð ð ð ð rJ   r§  c                  ój   ‡ — e Zd ZdZ	 	 d d!ˆ fd„Zd"d„Zd#d„Zd$d„Zd%d„Zd&d„Z	d"d„Z
d'd„Zd"d„Zˆ xZS )(Ú	RunTargetÚrunNTr‰   rƒ   rb  úJT.Sequence[T.Union[str, File, BuildTargetTypes, programs.ExternalProgram]]r   úT.Sequence[Target]r¤   r£   r
   rÛ   r^  ú"T.Optional['EnvironmentVariables']Údefault_envr˜   c	                óâ   •— t          ¦   «                              |||dt          j        |¦  «         || _        g | _        |                      |¦  «        | _        d| _        || _	        || _
        d S r  )r,  r  r   rT  r   r®  rZ  rb  r`  r^  rµ  )
r©   r‰   rb  r   r¤   r£   r
   r^  rµ  rY  s
            €rH   r  zRunTarget.__init__E
  sl   ø€ õ 	‰Œ×Ò˜˜v z°5½-Ô:MÈ{Ñ[Ô[Ð[Ø(ˆÔØˆÔØ×+Ò+¨GÑ4Ô4ˆŒØ#ˆÔØˆŒØ&ˆÔÐÐrJ   r{   c                ó‚   — d}|                      | j        j        |                      ¦   «         | j        d         ¦  «        S )NrJ  r   rr  rK  s     rH   r\  zRunTarget.__repr__V
  s1   € Ø#ˆØ�Š˜tœ~Ô6¸¿º¹¼ÀtÄ|ÐTUÄÑWÔWÐWrJ   rU  c                ó   — | j         S r§   r   r¬   s    rH   rô  zRunTarget.get_dependenciesZ
  r=  rJ   rq  c                ó   — g S r§   rE   r¬   s    rH   rü  zRunTarget.get_generated_sources]
  r   rJ   r�   c                ó   — g S r§   rE   r¬   s    rH   r±   zRunTarget.get_sources`
  r   rJ   c                ó   — dS r  rE   r¬   s    rH   r"  zRunTarget.should_installc
  r  rJ   c                ó   — | j         S r§   rÞ  r¬   s    rH   rí  zRunTarget.get_filenamef
  r2  rJ   rÓ   c                ó¦   — t          | j        t          ¦  «        r| j        gS t          | j        t          ¦  «        r| j        S t	          d¦  «        ‚)NzBRunTarget: self.name is neither a list nor a string. This is a bug)r  r‰   rƒ   r  r¹  r¬   s    rH   r„  zRunTarget.get_outputsi
  sM   € Ý�d”i¥Ñ%Ô%ð 	eØ”I�;ÐÝ˜œ	¥4Ñ(Ô(ð 	eØ”9ÐåÐcÑdÔdÐdrJ   c                ó   — dS )Nz@runrE   r¬   s    rH   rò  zRunTarget.type_suffixq
  rí  rJ   r  )r‰   rƒ   rb  r²  r   r³  r¤   rƒ   r£   rƒ   r
   rÛ   r^  r´  rµ  r˜   rk  )r{   rU  re  r¼   r­  rl  )r�   r‘   r’   r±  r  r\  rô  rü  r±   r"  rí  r„  rò  rj  rk  s   @rH   r°  r°  A
  sø   ø€ € € € € à€Hð <@Ø%)ð'ð 'ð 'ð 'ð 'ð 'ð 'ð"Xð Xð Xð Xð!ð !ð !ð !ðð ð ð ðð ð ð ðð ð ð ðð ð ð ðeð eð eð eðð ð ð ð ð ð ð rJ   r°  c                  ó&   ‡ — e Zd Zdˆ fd	„Zd
„ Zˆ xZS )ÚAliasTargetr‰   rƒ   r   úT.Sequence['Target']r¤   r£   r
   rÛ   c                óT   •— t          ¦   «                              |g ||||¦  «         d S r§   )r,  r  )r©   r‰   r   r¤   r£   r
   rY  s         €rH   r  zAliasTarget.__init__u
  s+   ø€ å‰Œ×Ò˜˜r <°¸À[ÑQÔQÐQÐQÐQrJ   c                ój   — d}|                      | j        j        |                      ¦   «         ¦  «        S )Nz	<{0} {1}>)rX  rY  r�   r¿  rK  s     rH   r\  zAliasTarget.__repr__y
  s(   € ØˆØ�Š˜tœ~Ô6¸¿º¹¼ÑFÔFÐFrJ   )
r‰   rƒ   r   rÁ  r¤   rƒ   r£   rƒ   r
   rÛ   )r�   r‘   r’   r  r\  rj  rk  s   @rH   rÀ  rÀ  t
  sY   ø€ € € € € ðRð Rð Rð Rð Rð RðGð Gð Gð Gð Gð Gð GrJ   rÀ  c                  ó\   ‡ — e Zd ZeZdZdˆ fd„Zd„ Zd„ Zd„ Z	dd„Z
d„ Zd„ Zd„ Zdd„Zˆ xZS )ÚJarÚjarr‰   rƒ   r¤   r£   r  r   rY   rË  r'  rÌ  r
   rÛ   r‰  r)  c                óô  •— t          ¦   «                              |||||||||	|
¦
  «
         | j        D ]*}|                     d¦  «        st	          d|› d�¦  «        ‚Œ+| j        D ]*}t          |t          ¦  «        st	          d|› d�¦  «        ‚Œ+| j        rt	          d¦  «        ‚| j	        dz   | _
        | j
        g| _        |
                     dg ¦  «        | _        |
                     d	d ¦  «        | _        d S )
Nz.javazJar source z is not a java file.zLink target z is not a jar target.z5structured sources are not supported in Java targets.z.jarÚ	java_argsrw   )r,  r  rY   Úendswithr�   r0  r  rÅ  r'  r‰   r5  r6  rA  rÈ  rw   )r©   r‰   r¤   r£   r  rY   r'  rX   r
   r‰  rü  r‚  r  rY  s                €rH   r  zJar.__init__‚
  s.  ø€ õ 	‰Œ×Ò˜˜v z°;ÀÐI[Ð]dØ$ i°ñ	9ô 	9ð 	9à”ð 	Nð 	NˆAØ—:’:˜gÑ&Ô&ð NÝ&Ð'L°QÐ'LÐ'LÐ'LÑMÔMÐMðNàÔ"ð 	Pð 	PˆAÝ˜a¥Ñ%Ô%ð PÝ&Ð'N°aÐ'NÐ'NÐ'NÑOÔOÐOðPàÔ"ð 	\Ý"Ð#ZÑ[Ô[Ð[Øœ	 FÑ*ˆŒØœ�ˆŒØŸš K°Ñ4Ô4ˆŒØ=C¿ZºZÐHXÐZ^Ñ=_Ô=_ˆÔÐÐrJ   c                ó   — | j         S r§   )rv   r¬   s    rH   Úget_main_classzJar.get_main_class•
  r'  rJ   c                ó   — dS )Nz@jarrE   r¬   s    rH   rò  zJar.type_suffix˜
  rí  rJ   c                ó   — | j         S r§   )rÈ  r¬   s    rH   Úget_java_argszJar.get_java_args›
  rý  rJ   r{   r(  c                ó   — | j         S r§   )rw   r¬   s    rH   Úget_java_resourceszJar.get_java_resourcesž
  r®   rJ   c                ó   — d S r§   rE   r¬   s    rH   rA  zJar.validate_install¡
  s   € àˆrJ   c                ó   — dS r  rE   r¬   s    rH   r  zJar.is_linkable_target¥
  r  rJ   c                ó¬   — d„ | j         D ¦   «         }t          j                             |¦  «        }|r!dt          j                             |¦  «        gS g S )Nc                ó–   — g | ]F}t           j                             |                     ¦   «         |                     ¦   «         ¦  «        ‘ŒGS rE   )rg  rÈ   r‹   râ  rí  )rF   rÛ  s     rH   rƒ  z*Jar.get_classpath_args.<locals>.<listcomp>©
  s:   € Ð^Ð^Ð^Àq•B”G—L’L §¢¡¤°·²Ñ1AÔ1AÑBÔBÐ^Ð^Ð^rJ   z-cp)r0  rg  Úpathsepr‹   )r©   Úcp_pathsÚ	cp_strings      rH   Úget_classpath_argszJar.get_classpath_args¨
  sQ   € Ø^Ð^ÈDÔL]Ð^Ñ^Ô^ˆÝ”J—O’O HÑ-Ô-ˆ	Øð 	6Ø�2œ:Ÿ?š?¨8Ñ4Ô4Ð5Ð5Øˆ	rJ   rÊ  c                ó8   — | j                              ¦   «         dfS )Nz{jardir})r
   Úget_jar_dirr¬   s    rH   rÎ  zJar.get_default_install_dir¯
  s   € ØÔ×+Ò+Ñ-Ô-¨zÐ9Ð9rJ   r   )r{   r(  r#  )r�   r‘   r’   Úknown_jar_kwargsrW  r±  r  rË  rò  rÎ  rÐ  rA  r  rØ  rÎ  rj  rk  s   @rH   rÅ  rÅ  }
  sÏ   ø€ € € € € Ø#€Là€Hð`ð `ð `ð `ð `ð `ð&ð ð ðð ð ðð ð ð#ð #ð #ð #ðð ð ðð ð ðð ð ð:ð :ð :ð :ð :ð :ð :ð :rJ   rÅ  c                  óÂ   — e Zd ZU dZdZded<   ded<   ded<   d#d„Zed$d„¦   «         Zd„ Z	d%d„Z
d$d„Zd$d„Zd$d„Zd„ Zd&d„Zd'd„Zd(d„Zd(d„Zd(d„Zd(d„Zd)d„Zd*d!„Zd"S )+r<   züA special opaque object returned by indexing a CustomTarget. This object
    exists in Meson, but acts as a proxy in the backends, making targets depend
    on the CustomTarget it's derived from, but only adding one source file to
    the sources.
    r]  zT.ClassVar[str]r±  z$T.Union[CustomTarget, CompileTarget]ro  rƒ   rt  r{   r¥   c                ó(   — | j         j        | _        d S r§   )ro  r  r¬   s    rH   ry  zCustomTargetIndex.__post_init__À
  s   € Øœ;Ô2ˆÔÐÐrJ   c                ó0   — | j         j        › d| j        › d�S )Nú[ú])ro  r‰   rt  r¬   s    rH   r‰   zCustomTargetIndex.nameÃ
  s    € à”+Ô"Ð3Ð3 T¤[Ð3Ð3Ð3Ð3rJ   c                óB   — d                      | j        | j        ¦  «        S )Nz<CustomTargetIndex: {!r}[{}]>)rX  ro  rt  r¬   s    rH   r\  zCustomTargetIndex.__repr__Ç
  s   € Ø.×5Ò5°d´kÀ4Ä;ÑOÔOÐOrJ   rÓ   c                ó   — | j         gS r§   ©rt  r¬   s    rH   r„  zCustomTargetIndex.get_outputsÊ
  s   € Ø”ˆ}ÐrJ   c                ó4   — | j                              ¦   «         S r§   )ro  râ  r¬   s    rH   râ  zCustomTargetIndex.get_subdirÍ
  s   € ØŒ{×%Ò%Ñ'Ô'Ð'rJ   c                ó   — | j         S r§   rã  r¬   s    rH   rí  zCustomTargetIndex.get_filenameÐ
  r_  rJ   c                ó4   — | j                              ¦   «         S r§   )ro  r¿  r¬   s    rH   r¿  zCustomTargetIndex.get_idÓ
  s   € ØŒ{×!Ò!Ñ#Ô#Ð#rJ   c                ó4   — | j                              ¦   «         S r§   )ro  rœ  r¬   s    rH   rœ  z#CustomTargetIndex.get_all_link_depsÖ
  s   € ØŒ{×,Ò,Ñ.Ô.Ð.rJ   rˆ   rŸ  c                ó6   — | j                              |¦  «        S r§   )ro  r£  r¢  s     rH   r£  z'CustomTargetIndex.get_link_deps_mappingÙ
  s   € ØŒ{×0Ò0°Ñ8Ô8Ð8rJ   r§  c                ó4   — | j                              ¦   «         S r§   )ro  r©  r¬   s    rH   r©  z&CustomTargetIndex.get_link_dep_subdirsÜ
  s   € ØŒ{×/Ò/Ñ1Ô1Ð1rJ   r˜   c                ó^   — t           j                             | j        ¦  «        d         }|dv S )NrŠ  r‹  ©rg  rÈ   r…  rt  rŽ  s     rH   r  z$CustomTargetIndex.is_linkable_targetß
  s*   € ÝŒg×Ò˜tœ{Ñ+Ô+¨BÔ/ˆØÐ=Ð=Ð=rJ   c                ó^   — t           j                             | j        ¦  «        d         }|dvS )r‘  rŠ  r’  rë  rŽ  s     rH   r)  z#CustomTargetIndex.links_dynamicallyã
  s+   € õ Œg×Ò˜tœ{Ñ+Ô+¨BÔ/ˆØ˜.Ð(Ð(rJ   c                ó4   — | j                              ¦   «         S r§   )ro  r"  r¬   s    rH   r"  z CustomTargetIndex.should_installí
  s   € ØŒ{×)Ò)Ñ+Ô+Ð+rJ   c                óˆ   — t           j                             | j        ¦  «        d         }|dv o|                      ¦   «          S )zH
        Returns True if this is a not installed static library
        rŠ  r’  )rg  rÈ   r…  rt  r"  rŽ  s     rH   r  zCustomTargetIndex.is_internalð
  s?   € õ Œg×Ò˜tœ{Ñ+Ô+¨BÔ/ˆØ�nÐ$ÐB¨T×-@Ò-@Ñ-BÔ-BÐ)BÐBrJ   r+  c                ó4   — | j                              ¦   «         S r§   )ro  r*  r¬   s    rH   r*  z-CustomTargetIndex.extract_all_objects_recurse÷
  s   € ØŒ{×6Ò6Ñ8Ô8Ð8rJ   rÐ  c                ó4   — | j                              ¦   «         S r§   )ro  rµ   r¬   s    rH   rµ   z(CustomTargetIndex.get_custom_install_dirú
  s   € ØŒ{×1Ò1Ñ3Ô3Ð3rJ   Nr“  rk  rl  rb  rc  r­  rf  r$  )r�   r‘   r’   rN  r±  rš   ry  ri  r‰   r\  r„  râ  rí  r¿  rœ  r£  r©  r  r)  r"  r  r*  rµ   rE   rJ   rH   r<   r<   ²
  s‘  € € € € € € ðð ð !)€HÐ(Ð(Ð(Ñ(à0Ð0Ð0Ñ0Ø€K€K�Kð3ð 3ð 3ð 3ð ð4ð 4ð 4ñ „Xð4ðPð Pð Pðð ð ð ð(ð (ð (ð (ðð ð ð ð$ð $ð $ð $ð/ð /ð /ð9ð 9ð 9ð 9ð2ð 2ð 2ð 2ð>ð >ð >ð >ð)ð )ð )ð )ð,ð ,ð ,ð ,ðCð Cð Cð Cð9ð 9ð 9ð 9ð4ð 4ð 4ð 4ð 4ð 4rJ   r<   c                  óL   ‡ — e Zd Z	 ddˆ fd„Zdd„Zdd
„Zdd„Zdd„Zdd„Zˆ xZ	S )ÚConfigurationDataNÚinitial_valuesúyT.Optional[T.Union[T.Dict[str, T.Tuple[T.Union[str, int, bool], T.Optional[str]]], T.Dict[str, T.Union[str, int, bool]]]]c                ó¤   •— t          ¦   «                              ¦   «          |rd„ |                     ¦   «         D ¦   «         ni | _        d| _        d S )Nc                óL   — i | ]!\  }}|t          |t          ¦  «        r|n|d f“Œ"S r§   )r  Útuple)rF   r  r  s      rH   ú
<dictcomp>z.ConfigurationData.__init__.<locals>.<dictcomp>  s5   € Ð\Ð\Ð\¹T¸QÀˆQ•Z ¥5Ñ)Ô)Ð8��°°4¨yÐ\Ð\Ð\rJ   F)r,  r  r  rŠ  Úused)r©   ró  rY  s     €rH   r  zConfigurationData.__init__þ
  sV   ø€ õ 	‰Œ×ÒÑÔÐà`nÐvÐ\Ð\À^×EYÒEYÑE[ÔE[Ð\Ñ\Ô\Ð\Ðtvð 	ŒàˆŒ	ˆ	ˆ	rJ   r{   rƒ   c                ó*   — t          | j        ¦  «        S r§   )rP  rŠ  r¬   s    rH   r\  zConfigurationData.__repr__  ó   € Ý�D”KÑ Ô Ð rJ   r  r˜   c                ó   — || j         v S r§   ©rŠ  rä  s     rH   Ú__contains__zConfigurationData.__contains__
  s   € Ø˜œÐ#Ð#rJ   c                ó*   — t          | j        ¦  «        S r§   )r˜   rŠ  r¬   s    rH   rž  zConfigurationData.__bool__  rû  rJ   r‰   ú1T.Tuple[T.Union[str, int, bool], T.Optional[str]]c                ó   — | j         |         S r§   rý  )r©   r‰   s     rH   rA  zConfigurationData.get  s   € ØŒ{˜4Ô Ð rJ   úT.Iterator[str]c                ó4   — | j                              ¦   «         S r§   )rŠ  r‚  r¬   s    rH   r‚  zConfigurationData.keys  s   € ØŒ{×ÒÑ!Ô!Ð!rJ   r§   )ró  rô  rk  )r  rƒ   r{   r˜   r­  )r‰   rƒ   r{   r   )r{   r  )
r�   r‘   r’   r  r\  rþ  rž  rA  r‚  rj  rk  s   @rH   rò  rò  ý
  s«   ø€ € € € € ð ð ð  ð  ð  ð  ð  ð  ð!ð !ð !ð !ð$ð $ð $ð $ð!ð !ð !ð !ð!ð !ð !ð !ð"ð "ð "ð "ð "ð "ð "ð "rJ   rò  c                  ót   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	Zd
ed<   d	Zded<   d	Zded<   dd„Zd	S )ÚDatar�   rY   rƒ   r_   rÍ   r¡   rc   r£   NrÓ   Úrenamerž   r`   Ú	data_typer{   r¥   c                óD   — | j         €d„ | j        D ¦   «         | _         d S d S )Nc                óV   — g | ]&}t           j                             |j        ¦  «        ‘Œ'S rE   )rg  rÈ   rƒ  rÊ  )rF   r«  s     rH   rƒ  z&Data.__post_init__.<locals>.<listcomp>%  s*   € ÐKÐKÐK¸�2œ7×+Ò+¨A¬GÑ4Ô4ÐKÐKÐKrJ   )r  rY   r¬   s    rH   ry  zData.__post_init__#  s-   € ØŒ;ÐØKÐK¸d¼lÐKÑKÔKˆDŒKˆKˆKð ÐrJ   r“  )r�   r‘   r’   rš   r  r`   r  ry  rE   rJ   rH   r  r    sœ   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑØ€O€O�OØ€FÐÐÐÑØ#'€KÐ'Ð'Ð'Ñ'Ø€IÐÐÐÑðLð Lð Lð Lð Lð LrJ   r  c                  óN   — e Zd ZU ded<   ded<   ded<   ded<   dZded<   dd„ZdS )ÚSymlinkDatarƒ   ro  r‰   r_   r£   Nrž   r`   r{   r¥   c                ó�   — | j         t          j                             | j         ¦  «        k    rt	          d| j         › d�¦  «        ‚d S )NzLink name is "zX", but link names cannot contain path separators. The dir part should be in install_dir.)r‰   rg  rÈ   rƒ  r�   r¬   s    rH   ry  zSymlinkData.__post_init__/  sZ   € ØŒ9�œ×(Ò(¨¬Ñ3Ô3Ò3Ð3Ý"ð $L°D´Ið $Lð $Lð $Lñ Mô Mð Mð 4Ð3rJ   r“  )r�   r‘   r’   rš   r`   ry  rE   rJ   rH   r  r  '  sh   € € € € € € à€K€K�KØ€I€I�IØÐÐÑØ€O€O�OØ#'€KÐ'Ð'Ð'Ñ'ðMð Mð Mð Mð Mð MrJ   r  c                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
S )Ú	TestSetuprÓ   Úexe_wrapperr˜   Úgdbrz   Útimeout_multiplierr"   r^  Úexclude_suitesN)r�   r‘   r’   rš   rE   rJ   rH   r  r  4  sK   € € € € € € àÐÐÑØ€I€I�IØÐÐÑØÐÐÑØÐÐÑÐÐrJ   r  c                óÈ  — g }| D ]Ü}t          |t          ¦  «        r|                     |¦  «         Œ-t          |t          t          t
          t          f¦  «        r||                     ¦   «         z  }Œmt          |t          ¦  «        r|| 	                    |¦  «        z  }Œ›t          |t          ¦  «        r|                     |j        ¦  «         ŒËt          d|›�¦  «        ‚|S )zw
    For the specified list of @sources which can be strings, Files, or targets,
    get all the output basenames.
    zUnknown source type: )r  rƒ   rŠ   r@   r;   r<   r=   r„  rn  Údetermine_ext_objsr   rÊ  rL  )rY   ra  Únamesr‚  s       rH   rn  rn  <  sã   € ð
 €EØð 
@ð 
@ˆÝ�a�ÑÔð 		@Ø�LŠL˜‰OŒOˆOˆOÝ˜�K­Õ7HÍ-ÐXÑYÔYð 	@Ø�Q—]’]‘_”_Ñ$ˆEˆEÝ˜Õ+Ñ,Ô,ð 	@Ø�W×/Ò/°Ñ2Ô2Ñ2ˆEˆEÝ˜�4Ñ Ô ð 	@Ø�LŠL˜œÑ!Ô!Ð!Ð!å Ð!>¸Ð!>Ð!>Ñ?Ô?Ð?Ø€LrJ   r   c                ó´   — t           j                             | dd¦  «        }	 t          |dt          ¦  «        S # t
          $ r t          d|›d�¦  «        ‚w xY w)Nzmeson-privatez	build.datz
Build datazNo such build data file as r…   )rg  rÈ   r‹   r#   rÚ   ÚFileNotFoundErrorr   )r   r5  s     rH   Úloadr  O  sj   € ÝŒw�|Š|˜I ¸ÑDÔD€HðJÝ˜8 \µ5Ñ9Ô9Ð9øÝð Jð Jð JÝÐH¸8ÐHÐHÐHÑIÔIÐIðJøøøs	   £9 ¹AÚobjr5  r¥   c                ó‚   — t          |d¦  «        5 }t          j        | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚwb)ÚopenÚpickleÚdump)r  r5  r«  s      rH   Úsaver  W  s…   € Ý	ˆh˜Ñ	Ô	ð  ÝŒ�C˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ‘4´8»8)r`   rx   ry   rz   r{   r|   rk  )r   rƒ   r{   rÚ   )r  rÚ   r5  rƒ   r{   r¥   )…Ú
__future__r   Úcollectionsr   r   Údataclassesr   r   Ú	functoolsr   r  rê  r¤  rr  rg  r  râ  r³  Útypingr  r‡   r
   r   r   r   Úmesonlibr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r‰  r$   r%   r&   r'   r(   r)   Úinterpreterbaser*   r+   ÚTYPE_CHECKINGÚtyping_extensionsr,   Ú_typingr-   Úbackend.backendsr.   r/   r0   Úinterpreter.interpreterr1   r2   r3   r4   Úlinkersr5   r6   r7   rÿ   r8   Úmparserr9   Úwrapr:   ÚUnionÚGeneratedTypesÚLibTypesÚBuildTargetTypesÚ
pch_kwargsÚlang_arg_kwargsÚvala_kwargsÚrust_kwargsÚ	cs_kwargsÚbuildtarget_kwargsrh  r  rB  rG  r  rÛ  r€   r�   r�   r•   rœ   r¿   rÇ   rÊ   rÒ   rÚ   rP  rn  r—  r¯  r@   rm  r=   rÄ  r?   r>   r_  rI  rT  r;   r§  r°  rÀ  rÅ  r<   rò  r  r  r  rn  r  r  rE   rJ   rH   ú<module>r9     s  ðð #Ð "Ð "Ð "Ð "Ð "Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€Ø 	€	€	€	Ø €€€Ø Ð Ð Ð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :Ð :Ð :à„?ð SØ)Ð)Ð)Ð)Ð)Ð)Ø.Ð.Ð.Ð.Ð.Ð.ØBÐBÐBÐBÐBÐBÐBÐBØ#Ð#Ð#Ð#Ð#Ð#ØIÐIÐIÐIÐIÐIÐIÐIÐIÐIØ+Ð+Ð+Ð+Ð+Ð+Ø%Ð%Ð%Ð%Ð%Ð%Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø$Ð$Ð$Ð$Ð$Ð$Ø!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐà”WÐQÔR€NØŒwÐ\Ô]€HØ”wÐQÔRÐà�yÐ!€
à<Ð<¨mÐ<Ñ<Ô<€Ø ð ð ð ñ €ð 7Ð6Ð6€Ø Ð!€Ø˜)Ð$€	ðð ð Ð ð: Øñàñð ñð ñ	ð
 ñð ð -Ð/RÐ/RÐ/RÑRÐ Ø.Ð1nÐ1nÐ1nÑnÐ Ø.Ð2BÐ1CÑCÐ Ø.°%¸Ð1CÑCÐ Ø# |Ð5EÐ&FÑFÐ ð	ð 	ð 	ð 	ð €�4ÐÑÔðð ð ñ Ôðð	ð 	ð 	ð 	ð 	�~ñ 	ô 	ð 	ð €ˆeÐÑÔðð ð ð ð ˜ñ ô ñ Ôðð
 €ˆeÐÑÔð(ð (ð (ð (ð (ˆnñ (ô (ñ Ôð(ð4 €ˆeÐÑÔðð ð ð ð ˆ.ñ ô ñ Ôðð" €ˆeÐÑÔð(ð (ð (ð (ð (ˆ~ñ (ô (ñ Ôð(ð €ˆeÐÑÔð
(ð 
(ð 
(ð 
(ð 
(�ñ 
(ô 
(ñ Ôð
(ð €ˆeÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ðC:ð C:ð C:ð C:ð C:ñ C:ô C:ð C:ðJ €ˆeÐÑÔð%ð %ð %ð %ð %�.ñ %ô %ñ Ôð%ðN €ˆeÐÑÔð2Tð 2Tð 2Tð 2Tð 2T�~ñ 2Tô 2Tñ Ôð2Tðj €ˆe˜5Ð!Ñ!Ô!ð-ð -ð -ð -ð -˜ñ -ô -ñ "Ô!ð-ð` €ˆeÐÑÔðnð nð nð nð nˆ^ñ nô nñ Ôðnð`x4ð x4ð x4ð x4ð x4�&ñ x4ô x4ð x4ðtJð Jð Jð Jð J�ñ Jô Jð JðZ €ˆeÐÑÔð@ð @ð @ð @ð @�Nñ @ô @ñ Ôð@ðFð ð ð ð �ñ ô ð ðBF%ð F%ð F%ð F%ð F%�Kñ F%ô F%ð F%ðPJð Jð Jð Jð J�Kñ Jô Jð Jð\
Nð Nð Nð Nð N�=ñ Nô Nð Nð,}ð }ð }ð }ð }Ð%ñ }ô }ð }ð"$ð $ð $ð $ð $ñ $ô $ð $ðLA!ð A!ð A!ð A!ð A!�6˜;ñ A!ô A!ð A!ðF#ð #ð #ð #ð #�Kñ #ô #ð #ðL1ð 1ð 1ð 1ð 1�˜ñ 1ô 1ð 1ðfGð Gð Gð Gð G�)ñ Gô Gð Gð3:ð 3:ð 3:ð 3:ð 3:ˆ+ñ 3:ô 3:ð 3:ðj €ˆeÐÑÔðH4ð H4ð H4ð H4ð H4˜ñ H4ô H4ñ ÔðH4ðT"ð "ð "ð "ð "˜ñ "ô "ð "ð6 €ˆeÐÑÔðLð Lð Lð Lð Lˆ>ñ Lô Lñ ÔðLð €ˆeÐÑÔð
Mð 
Mð 
Mð 
Mð 
M�.ñ 
Mô 
Mñ Ôð
Mð €ˆeÐÑÔð ð  ð  ð  ð  ñ  ô  ñ Ôð ðð ð ð&Jð Jð Jð Jðð ð ð ð ð rJ   