§
    ƒnócB4  ã                  ó   — d dl m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 ej        r2dd
lmZ ddlmZ ej        ej        e         ej        e         ef         Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚPathé   )Úmesonlib)Úmlog)Údetect_cpu_familyé   )ÚDependencyExceptionÚSystemDependency)ÚEnvironment)ÚCompilerc                  ó¨  ‡ — e Zd Zg d¢Zd8ˆ fd„Zed9d„¦   «         Zd:d„Zd;d„Zd<d„Z	d=d„Z
d=d„Zd=d„Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Zd>d „Zd?d"„Zd@d#„ZedAd%„¦   «         ZdBd&„ZdCd(„ZdCd)„Zej        dDd+„¦   «         Zej        dEd-„¦   «         ZdFdGd0„ZdBd1„ZdBd2„ZdHd3„ZdIdJd7„Z ˆ xZ!S )KÚCudaDependency)ÚcudaÚcppÚcÚenvironmentú'Environment'ÚkwargsúT.Dict[str, T.Any]ÚreturnÚNonec                óH  •— |j         j        |                      |¦  «                 }|                      |¦  «        }|| j        vrt          d|› d| j        › d�¦  «        ‚t          ¦   «                              d|||¬¦  «         i | _        |  	                    |¦  «        | _
        d| j
        vrdg| j
        z   | _
        |                      ¦   «         \  | _        | _        | _        | j        sd S t          j                             | j        ¦  «        st          d| j        › d�¦  «        ‚| j        dk    st'          |¦  «        d	k    rCt          j                             | j        d
¦  «        | _        | xj        d| j        › �gz  c_        | j        dk    rk|                      ¦   «         }t          j                             | j        |¦  «        | _        t3          j        dt3          j        | j        ¦  «        ¦  «         nd | _        |                      ¦   «         | _        d S )Nz
Language 'z@' is not supported by the CUDA Toolkit. Supported languages are ú.r   )ÚlanguageÚcudartz)CUDA Toolkit path must be absolute, got 'z'.r	   Úincludez-IzCUDA library directory is)ÚcoredataÚ	compilersÚget_for_machine_from_kwargsÚ_detect_languageÚsupported_languagesr
   ÚsuperÚ__init__Úlib_modulesÚget_requestedÚrequested_modulesÚ_detect_cuda_path_and_versionÚ	cuda_pathÚversionÚis_foundÚosÚpathÚisabsr   ÚlenÚjoinÚincdirÚcompile_argsÚ_detect_arch_libdirÚlibdirr   ÚdebugÚboldÚ_find_requested_libraries)Úselfr   r   r   r   Úarch_libdirÚ	__class__s         €ú>/usr/lib/python3/dist-packages/mesonbuild/dependencies/cuda.pyr$   zCudaDependency.__init__&   s   ø€ ØÔ(Ô2°4×3SÒ3SÐTZÑ3[Ô3[Ô\ˆ	Ø×(Ò(¨Ñ3Ô3ˆØ˜4Ô3Ð3Ð3Ý%ð  '[°Hð  '[ð  '[ð  @Dô  @Xð  '[ð  '[ð  '[ñ  \ô  \ð  \å‰Œ×Ò˜ ¨f¸xÐÑHÔHÐHØ57ˆÔØ!%×!3Ò!3°FÑ!;Ô!;ˆÔØ˜4Ô1Ð1Ð1Ø&. Z°$Ô2HÑ%HˆDÔ"à8<×8ZÒ8ZÑ8\Ô8\Ñ5ˆŒ˜œ t¤}ØŒ}ð 	ØˆFåŒw�}Š}˜Tœ^Ñ,Ô,ð 	hÝ%Ð&fÐSWÔSaÐ&fÐ&fÐ&fÑgÔgÐgð Œ=˜FÒ"Ð"¥c¨)¡n¤n°qÒ&8Ð&8Ýœ'Ÿ,š, t¤~°yÑAÔAˆDŒKØÐÔÐ"4 t¤{Ð"4Ð"4Ð!5Ñ5ÐÔàŒ=˜FÒ"Ð"Ø×2Ò2Ñ4Ô4ˆKÝœ'Ÿ,š, t¤~°{ÑCÔCˆDŒKÝŒJÐ2µD´I¸d¼kÑ4JÔ4JÑKÔKÐKÐKàˆDŒKà×6Ò6Ñ8Ô8ˆŒˆˆó    r   úT.Dict[str, 'Compiler']Ústrc                ót   — | j         D ]
}||v r|c S Œt          |                     ¦   «         ¦  «        d         S )Nr   )r"   ÚlistÚkeys)Úclsr   Úlangs      r;   r!   zCudaDependency._detect_languageH   sJ   € àÔ+ð 	ð 	ˆDØ�yÐ Ð Ø���ð !å�I—N’NÑ$Ô$Ñ%Ô% aÔ(Ð(r<   ÚTV_ResultTuplec                ó  ‡ — ‰                       ¦   «         ‰ _        t          j        dt          j        ‰ j        ¦  «        ¦  «         ‰ j        }‰ j        dk    r–‰                      ‰                      ¦   «         j	        ¦  «        }t          j        dt          j        |¦  «        ¦  «         |r:t          j        ||¦  «        \  }}}|rd|› d|› d�}‰                      |d¦  «        S d|› �g}nd }ˆ fd	„‰                      ¦   «         D ¦   «         }|r‰                      |||¦  «        S d
„ |D ¦   «         }|r|d         d         |d         d         dfS ‰                      ¦   «         rdnd}	d|	› d�}‰                      |d¦  «        S )NzDefault path env var:r   znvcc version:zThe current nvcc version zB does not satisfy the specified CUDA Toolkit version requirements r   ©NNFú=c                óF   •— g | ]\  }}|‰                      |¦  «        |f‘ŒS © )Ú_cuda_toolkit_version)Ú.0r-   Údefaultr8   s      €r;   ú
<listcomp>z@CudaDependency._detect_cuda_path_and_version.<locals>.<listcomp>c   s2   ø€ ÐmÐmÐmÁÈÈg�$˜×2Ò2°4Ñ8Ô8¸'ÐBÐmÐmÐmr<   c                ó"   — g | ]\  }}}|¯||f‘ŒS rI   rI   )rK   r-   r*   rL   s       r;   rM   z@CudaDependency._detect_cuda_path_and_version.<locals>.<listcomp>g   s(   € ÐUÐUÐUÑ(@¨¨w¸ÈWÐU�T˜7�OÐUÐUÐUr<   r   r	   Tz&set the CUDA_PATH environment variablezQset the CUDA_PATH environment variable/create the '/usr/local/cuda' symbolic linkzaPlease specify the desired CUDA Toolkit version (e.g. dependency('cuda', version : '>=10.1')) or z2 to point to the location of your desired version.)Ú_default_path_env_varÚenv_varr   r5   r6   Úversion_reqsr   Ú_strip_patch_versionÚget_compilerr*   r   Úversion_compare_manyÚ_report_dependency_errorÚ_cuda_pathsÚ_find_matching_toolkitÚ_is_windows)
r8   rQ   Únvcc_versionÚ
found_someÚ	not_foundÚfoundÚmsgÚpathsÚdefaultsÚplatform_msgs
   `         r;   r(   z,CudaDependency._detect_cuda_path_and_versionO   sí  ø€ Ø×1Ò1Ñ3Ô3ˆŒÝŒ
Ð*­D¬I°d´lÑ,CÔ,CÑDÔDÐDàÔ(ˆØŒ=˜FÒ"Ð"Ø×4Ò4°T×5FÒ5FÑ5HÔ5HÔ5PÑQÔQˆLÝŒJ�­¬	°,Ñ(?Ô(?Ñ@Ô@Ð@Øð Så19Ô1NÈ|Ð]iÑ1jÔ1jÑ.�˜Y¨Øð Sð V°lð  Vð  Vð  GSð  Vð  Vð  V�CØ×8Ò8¸Ð>QÑRÔRÐRð / Ð.Ð.Ð/ˆLˆLàˆLàmÐmÐmÐmÐZ^×ZjÒZjÑZlÔZlÐmÑmÔmˆØð 	RØ×.Ò.¨u°lÀLÑQÔQÐQàUÐUÀEÐUÑUÔUˆØð 	:Ø˜Q”K ”N H¨Q¤K°¤N°DÐ9Ð9àCG×CSÒCSÑCUÔCUð gÐ?Ð?Øfð 	ð wð  wCð  wð  wð  wˆØ×,Ò,¨SÐ2EÑFÔFÐFr<   r^   úT.List[TV_ResultTuple]rQ   úT.List[str]rY   úT.Optional[str]c                ó  — d„ }t          j        ||¦  «        \  }}t          |¦  «        }|t          |d„ d¬¦  «        z   }t	          j        d|› �¦  «         |rW|rU| j        rd| j        › d�nd}d	                     |t          j	         
                    |d
         d
         ¦  «        |¦  «        }	nd }	|D ]@\  }
}}t          j        ||¦  «        \  }}}|s|s|	rt	          j        |	¦  «         |
|dfc S ŒA|	rt	          j        |	¦  «         dS )Nc                ó   — | d          S )Nr   rI   ©Úts    r;   ú<lambda>z7CudaDependency._find_matching_toolkit.<locals>.<lambda>s   s   € ÀaÈÄdÀ(€ r<   c                ó6   — t          j        | d         ¦  «        S )Nr	   )r   ÚVersionrf   s    r;   rh   z7CudaDependency._find_matching_toolkit.<locals>.<lambda>v   s   € ½Ô9IÈ!ÈAÌ$Ñ9OÔ9O€ r<   T)ÚkeyÚreversezSearch paths: zthe z environment variablez#the '/usr/local/cuda' symbolic linkzpThe default CUDA Toolkit as designated by {} ({}) doesn't match the current nvcc version {} and will be ignored.r   rF   )r   Ú	partitionr@   Úsortedr   r5   rP   Úformatr,   r-   ÚrealpathrT   Úwarning)r8   r^   rQ   rY   Ú	part_funcÚdefaults_itÚrest_itr_   Údefault_srcÚnvcc_warningr-   r*   rL   rZ   r[   r\   s                   r;   rW   z%CudaDependency._find_matching_toolkitp   s¯  € ð 9KÐ8Jˆ	Ý'Ô1°)¸UÑCÔCÑˆ�WÝ˜Ñ$Ô$ˆØ�6 'Ð/OÐ/OÐY]Ð^Ñ^Ô^Ñ^ˆÝŒ
Ð+ EÐ+Ð+Ñ,Ô,Ð,àð 	 ˜Hð 	 ØHLÌð  BÐD ¤ÐDÐDÐDÐDð  [BˆKð O÷  Vò  Vð  Wbõ  dfô  dk÷  dtò  dtð  u}ð  ~ô  u@ð  ABô  uCñ  dDô  dDð  FRñ  Sô  SˆLˆLàˆLà(-ð 	-ð 	-Ñ$ˆT�7˜GÝ-5Ô-JÈ7ÐT`Ñ-aÔ-aÑ*ˆZ˜ EØð -Øð / <ð /Ý”L Ñ.Ô.Ð.Ø˜g tÐ,Ð,Ð,Ð,ð-ð
 ð 	'ÝŒL˜Ñ&Ô&Ð&Ø"Ð"r<   c                óB  — |                       ¦   «         rdgng d¢}d„ |D ¦   «         }d„ |D ¦   «         }t          |¦  «        dk    rNt          j        d                     d                     |¦  «        d                     |¦  «        ¦  «        ¦  «         |r|d         nd S )	NÚ	CUDA_PATH)rx   Ú	CUDA_HOMEÚ	CUDA_ROOTc                ó.   — g | ]}|t           j        v ¯|‘ŒS rI   ©r,   Úenviron©rK   Úvars     r;   rM   z8CudaDependency._default_path_env_var.<locals>.<listcomp>Œ   s$   € ÐAÐAÐA˜C¨sµb´jÐ/@Ð/@�CÐ/@Ð/@Ð/@r<   c                ó2   — h | ]}t           j        |         ’ŒS rI   r|   r~   s     r;   ú	<setcomp>z7CudaDependency._default_path_env_var.<locals>.<setcomp>�   s   € Ð=Ð=Ð=¨S�œ CœÐ=Ð=Ð=r<   r	   zyEnvironment variables {} point to conflicting toolkit locations ({}). Toolkit selection might produce unexpected results.ú, r   )rX   r/   r   rq   ro   r0   )r8   Úenv_varsÚuser_defaultss      r;   rO   z$CudaDependency._default_path_env_varŠ   sú   € Ø$(×$4Ò$4Ñ$6Ô$6Ðc�K�=�=Ð<cÐ<cÐ<cˆØAÐA 8ÐAÑAÔAˆØ=Ð=°HÐ=Ñ=Ô=ˆÝˆ}ÑÔ Ò!Ð!ÝŒLð  U÷  \ò  \ð  ]a÷  ]fò  ]fð  goñ  ]pô  ]pð  rv÷  r{ò  r{ð  |Iñ  rJô  rJñ  Kô  Kñ  Lô  Lð  LØ&Ð0ˆx˜Œ{ˆ{¨DÐ0r<   úT.List[T.Tuple[str, bool]]c                óÂ   — | j         rt          j        | j                  dfgng |                      ¦   «         r|                      ¦   «         n|                      ¦   «         z   S )NT)rP   r,   r}   rX   Ú_cuda_paths_winÚ_cuda_paths_nix©r8   s    r;   rV   zCudaDependency._cuda_paths’   s_   € Ø6:´lÐJ•"”*˜Tœ\Ô*¨DÐ1Ð2Ð2ÈØ)-×)9Ò)9Ñ);Ô);ÐWˆt×#Ò#Ñ%Ô%Ð%À×AUÒAUÑAWÔAWñYð 	Yr<   c                óV   — t           j                             ¦   «         }d„ |D ¦   «         S )Nc                ó`   — g | ]+}|                      d ¦  «        ¯t          j        |         df‘Œ,S )Ú
CUDA_PATH_F)Ú
startswithr,   r}   r~   s     r;   rM   z2CudaDependency._cuda_paths_win.<locals>.<listcomp>˜   s4   € Ð]Ð]Ð]¨SÀÇÂÈ|Ñ@\Ô@\Ð]•”˜C” %Ð(Ð]Ð]Ð]r<   )r,   r}   rA   )r8   rƒ   s     r;   r‡   zCudaDependency._cuda_paths_win–   s'   € Ý”:—?’?Ñ$Ô$ˆØ]Ð]°HÐ]Ñ]Ô]Ð]r<   c                óT   — | j         rdnd}d„ t          j        |¦  «        D ¦   «         S )Nz/usr/local/cuda-*z/usr/local/cuda*c                óX   — g | ]'}|t           j                             |¦  «        d k    f‘Œ(S )r   )r,   r-   Úbasename)rK   r-   s     r;   rM   z2CudaDependency._cuda_paths_nix.<locals>.<listcomp>�   s2   € ÐYÐYÐY¸T�•r”w×'Ò'¨Ñ-Ô-°Ò7Ð8ÐYÐYÐYr<   )rP   ÚglobÚiglob)r8   Úpatterns     r;   rˆ   zCudaDependency._cuda_paths_nixš   s4   € à)-¬ÐMÐ%Ð%Ð;MˆØYÐYÅTÄZÐPWÑEXÔEXÐYÑYÔYÐYr<   z^CUDA Version\s+(.*)$z^v(.*)$z^cuda-(.*)$z##define\s+CUDART_VERSION\s+([0-9]+)r-   c                óü  — |                       |¦  «        }|r|S |                      |¦  «        }|r|S t          j        d¦  «         |                      ¦   «         r| j        n| j        }	 |                     t          j	         
                    |¦  «        ¦  «        }|r|                     d¦  «        S t          j        d|› �¦  «         n1# t          $ r$}t          j        d|› d|›�¦  «         Y d }~nd }~ww xY wdS )Nz,Falling back to extracting version from pathr	   z*Could not detect CUDA Toolkit version for ú: z0.0)Ú_read_toolkit_version_txtÚ_read_cuda_runtime_api_versionr   r5   rX   Úpath_version_win_regexÚpath_version_nix_regexÚmatchr,   r-   r�   Úgrouprq   Ú	Exception)r8   r-   r*   Úpath_version_regexÚmÚes         r;   rJ   z$CudaDependency._cuda_toolkit_version¤   s.  € Ø×0Ò0°Ñ6Ô6ˆØð 	ØˆNØ×5Ò5°dÑ;Ô;ˆØð 	ØˆNåŒ
ÐAÑBÔBÐBØ<@×<LÒ<LÑ<NÔ<NÐo˜TÔ8Ð8ÐTXÔToÐð	UØ"×(Ò(­¬×)9Ò)9¸$Ñ)?Ô)?Ñ@Ô@ˆAØð RØ—w’w˜q‘z”zÐ!å”ÐPÈ$ÐPÐPÑQÔQÐQÐQøÝð 	Uð 	Uð 	UÝŒLÐSÀdÐSÐSÈaÐSÐSÑTÔTÐTÐTÐTÐTÐTÐTøøøøð	Uøøøð ˆus   Á*AC Â3C Ã
C9ÃC4Ã4C9Úpath_strc                óR  — t          |¦  «        }|                     d¦  «        D ]�}|                     d¬¦  «        }| j                             |¦  «        }|sŒ5	 t          |                     d¦  «        ¦  «        }n# t          $ r Y Œew xY w|dz  }||dz  z
  dz  }|› d|› �c S d S )Nzcuda_runtime_api.húutf-8©Úencodingr	   iè  é
   r   )r   ÚrglobÚ	read_textÚcudart_version_regexÚsearchÚintr›   Ú
ValueError)	r8   r    r-   ÚiÚrawrž   Úvers_intÚmajorÚminors	            r;   r—   z-CudaDependency._read_cuda_runtime_api_version¹   s×   € Ý�H‰~Œ~ˆØ—’Ð0Ñ1Ô1ð 	&ð 	&ˆAØ—+’+ w�+Ñ/Ô/ˆCØÔ)×0Ò0°Ñ5Ô5ˆAØð ØðÝ˜qŸwšw q™zœz™?œ?��øÝð ð ð Ø�ðøøøð  Ñ$ˆEØ ¨¡Ñ,°Ñ3ˆEØÐ%Ð%˜eÐ%Ð%Ð%Ð%Ð%Øˆts   Á"A>Á>
BÂ
Bc                óÈ  — t           j                             |d¦  «        }	 t          |d¬¦  «        5 }|                     ¦   «         }| j                             |¦  «        }|r4|                      |                     d¦  «        ¦  «        cd d d ¦  «         S 	 d d d ¦  «         n# 1 swxY w Y   n1# t          $ r$}t          j        d|› d|›�¦  «         Y d }~nd }~ww xY wd S )Nzversion.txtr¢   r£   r	   z+Could not read CUDA Toolkit's version file r•   )r,   r-   r0   ÚopenÚreadlineÚtoolkit_version_regexrš   rR   r›   rœ   r   r5   )r8   r-   Úversion_file_pathÚversion_fileÚversion_strrž   rŸ   s          r;   r–   z(CudaDependency._read_toolkit_version_txtÊ   st  € åœGŸLšL¨¨}Ñ=Ô=Ðð	bÝÐ'°'Ð:Ñ:Ô:ð A¸lØ*×3Ò3Ñ5Ô5�ØÔ.×4Ò4°[ÑAÔA�Øð AØ×4Ò4°Q·W²W¸Q±Z´ZÑ@Ô@ð	Að Að Að Añ Aô Að Að AðAðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aøøõ
 ð 	bð 	bð 	bÝŒJÐ`ÐFWÐ`Ð`Ð[\Ð`Ð`ÑaÔaÐaÐaÐaÐaÐaÐaøøøøð	bøøøð ˆtsA   ¢B1 ³AB%ÂB1 ÂB1 Â%B)Â)B1 Â,B)Â-B1 Â1
CÂ;CÃCr*   c                ób   — d                      |                     d¦  «        d d…         ¦  «        S )Nr   r   )r0   Úsplit)rB   r*   s     r;   rR   z#CudaDependency._strip_patch_versionØ   s)   € à�xŠx˜Ÿš cÑ*Ô*¨2¨A¨2Ô.Ñ/Ô/Ð/r<   c                ó†  — t          | j        j        j        j        ¦  «        }| j        j        | j                 }d}|                     ¦   «         rRdddœ}||vr#t          | 	                    |d¦  «        ¦  «        ‚t          j                             d||         ¦  «        S |                     ¦   «         r6dddddœ}||vr#t          | 	                    |d	¦  «        ¦  «        ‚||         S |                     ¦   «         r3d
di}||vr#t          | 	                    |d¦  «        ¦  «        ‚||         S t          d¦  «        ‚)NzC{} architecture is not supported in {} version of the CUDA Toolkit.ÚWin32Úx64)Úx86Úx86_64ÚWindowsÚlibÚlib64)r¾   Úppc64Úaarch64Úloongarch64ÚLinuxr¾   ÚmacOSz#CUDA Toolkit: unsupported platform.)r   Úenvr   r   ÚhostÚmachinesÚfor_machineÚ
is_windowsr
   ro   r,   r-   r0   Úis_linuxÚ	is_darwin)r8   ÚarchÚmachiner]   Úlibdirss        r;   r3   z"CudaDependency._detect_arch_libdirÜ   sK  € Ý  ¤Ô!2Ô!<Ô!AÑBÔBˆØ”(Ô# DÔ$4Ô5ˆØSˆØ×ÒÑÔð 	MØ%°Ð7Ð7ˆGØ˜7Ð"Ð"Ý)¨#¯*ª*°T¸9Ñ*EÔ*EÑFÔFÐFÝ”7—<’<  w¨t¤}Ñ5Ô5Ð5Ø×ÒÑÔð 	MØ!(°5ÀWÐ]dÐeÐeˆGØ˜7Ð"Ð"Ý)¨#¯*ª*°T¸7Ñ*CÔ*CÑDÔDÐDØ˜4”=Ð Ø×ÒÑ Ô ð 	MØ Ð)ˆGØ˜7Ð"Ð"Ý)¨#¯*ª*°T¸7Ñ*CÔ*CÑDÔDÐDØ˜4”=Ð å%Ð&KÑLÔLÐLr<   Úboolc                ó  — d}| j         D ]t}| j                             || j        | j        r| j        gng ¦  «        }|€|                      d|› d�¦  «         d}ŒPt          j        d|› d|› �¦  «         || j        |<   Œu|S )NTz%Couldn't find requested CUDA module 'ú'FzLink args for CUDA module 'z' are )	r'   Úclib_compilerÚfind_libraryrÇ   r4   rU   r   r5   r%   )r8   Ú	all_foundÚmoduleÚargss       r;   r7   z(CudaDependency._find_requested_librariesò   s«   € Øˆ	àÔ,ð 	0ð 	0ˆFØÔ%×2Ò2°6¸4¼8ÐVZÔVaÐEiÀdÄkÀ]À]ÐgiÑjÔjˆDØˆ|Ø×-Ò-Ð.bÐX^Ð.bÐ.bÐ.bÑcÔcÐcØ!�	�	å”
ÐO¸&ÐOÐOÈÐOÐOÑPÔPÐPØ+/�Ô  Ñ(Ð(àÐr<   c                óT   — | j         j        | j                                      ¦   «         S ©N)rÇ   rÉ   rÊ   rË   r‰   s    r;   rX   zCudaDependency._is_windows   s!   € ØŒxÔ  Ô!1Ô2×=Ò=Ñ?Ô?Ð?r<   r]   c                ó   — d S rÚ   rI   )r8   r]   s     r;   rU   z'CudaDependency._report_dependency_error  s   € Ø:=¸#r<   Úret_valc                ó   — d S rÚ   rI   ©r8   r]   rÜ   s      r;   rU   z'CudaDependency._report_dependency_error  s   € Ø]`Ð]`r<   NúT.Optional[TV_ResultTuple]c                óZ   — | j         rt          |¦  «        ‚t          j        |¦  «         |S rÚ   )Úrequiredr
   r   r5   rÞ   s      r;   rU   z'CudaDependency._report_dependency_error	  s,   € ØŒ=ð 	+Ý% cÑ*Ô*Ð*åŒ
�3‰ŒˆØˆr<   c                ó@   — d                      | j        ¦  «        }d|z   S )Nr‚   z	modules: )r0   r'   )r8   Ú
module_strs     r;   Úlog_detailszCudaDependency.log_details  s!   € Ø—Y’Y˜tÔ5Ñ6Ô6ˆ
Ø˜ZÑ'Ð'r<   c                ó"   — | j         r| j         ndS )NÚ )r)   r‰   s    r;   Úlog_infozCudaDependency.log_info  s   € Ø!%¤Ð7ˆtŒ~ˆ~°RÐ7r<   c                ó‚   — t          j        |d¦  «        }|D ]&}t          |t          ¦  «        st	          d¦  «        ‚Œ'|S )NÚmodulesz%CUDA module argument is not a string.)r   Úextract_as_listÚ
isinstancer>   r
   )r8   r   Ú
candidatesr   s       r;   r&   zCudaDependency.get_requested  sS   € ÝÔ-¨f°iÑ@Ô@ˆ
Øð 	Sð 	SˆAÝ˜a¥Ñ%Ô%ð SÝ)Ð*QÑRÔRÐRðSàÐr<   Fr   r­   c                ó�   — g }| j         r"|| j                             | j         ¦  «        z  }| j        D ]}|| j        |         z  }Œ|S rÚ   )r4   rÔ   Úget_linker_search_argsr'   r%   )r8   r   r­   rØ   rÀ   s        r;   Úget_link_argszCudaDependency.get_link_args  sZ   € ØˆØŒ;ð 	KØ�DÔ&×=Ò=¸d¼kÑJÔJÑJˆDØÔ)ð 	*ð 	*ˆCØ�DÔ$ SÔ)Ñ)ˆDˆDØˆr<   )r   r   r   r   r   r   )r   r=   r   r>   )r   rD   )r^   ra   rQ   rb   rY   rc   r   rD   )r   rc   )r   r…   )r-   r>   r   r>   )r    r>   r   rc   )r-   r>   r   rc   )r*   r>   r   r>   )r   r>   )r   rÑ   )r]   r>   r   r   )r]   r>   rÜ   rD   r   rD   rÚ   )r]   r>   rÜ   rß   r   rß   )r   r   r   rb   )NF)r   rc   r­   rÑ   r   rb   )"Ú__name__Ú
__module__Ú__qualname__r"   r$   Úclassmethodr!   r(   rW   rO   rV   r‡   rˆ   ÚreÚcompiler´   r˜   r™   r¨   rJ   r—   r–   rR   r3   r7   rX   ÚTÚoverloadrU   rä   rç   r&   rï   Ú__classcell__)r:   s   @r;   r   r   "   s  ø€ € € € € à.Ð.Ð.Ðð 9ð  9ð  9ð  9ð  9ð  9ðD ð)ð )ð )ñ „[ð)ðGð Gð Gð GðB#ð #ð #ð #ð41ð 1ð 1ð 1ðYð Yð Yð Yð^ð ^ð ^ð ^ðZð Zð Zð Zð
 '˜BœJÐ'?Ñ@Ô@ÐØ'˜RœZ¨
Ñ3Ô3ÐØ'˜RœZ¨Ñ7Ô7ÐØ%˜2œ:Ð&LÑMÔMÐðð ð ð ð*ð ð ð ð"ð ð ð ð ð0ð 0ð 0ñ „[ð0ðMð Mð Mð Mð,ð ð ð ð@ð @ð @ð @ð „ZØ=Ð=Ð=ñ „ZØ=à„ZØ`Ð`Ð`ñ „ZØ`ðð ð ð ð ð(ð (ð (ð (ð8ð 8ð 8ð 8ðð ð ð ðð ð ð ð ð ð ð ð r<   r   )Ú
__future__r   r‘   rô   r,   Útypingrö   Úpathlibr   ræ   r   r   r   r   Úbaser
   r   ÚTYPE_CHECKINGr   r   r   ÚTupleÚOptionalr>   rÑ   rD   r   rI   r<   r;   ú<module>r      s/  ðð #Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ð „?ð EØ)Ð)Ð)Ð)Ð)Ð)Ø$Ð$Ð$Ð$Ð$Ð$à”W˜QœZ¨œ_¨a¬j¸¬o¸tÐCÔD€NðBð Bð Bð Bð BÐ%ñ Bô Bð Bð Bð Br<   