
    e
                        d dl mZ d dlZd dlZd dlZddlmZmZ ddlm	Z	m
Z
 ddlmZ d dlmZ d dlZd dlmZ d dlZdd	Zdd
Zy)    )annotationsN   )detect_ninjadetect_scanbuild)get_cmd_line_fileCmdLineFileParser)windows_proof_rmtree)Path)literal_evalc                B   t        j                  t        |            }| |z   }| dt        |      dt        |      gz   t               z   d|gz   }	t	        j
                  |t        |      |gz         }
|
dk7  r|
S t	        j
                  |	      }
|
dk(  rt        |       |
S )N)dirz	--excludez-oz-Cr   )tempfilemkdtempstrr   
subprocesscallr	   )exelistsrcdirblddirprivdirlogdir
subprojdirargsscandir	meson_cmd	build_cmdrcs              >/usr/lib/python3/dist-packages/mesonbuild/scripts/scanbuild.py	scanbuildr      s     3w<0G$I;Js6{KKln\`dfm_nnI	c&k7%;;	<B	Qw			#B	QwW%I    c           	        t        | d         }t        | d         }|t        | d         z  }| d   }| dd  }|dz  }|dz  dz  }t        j                  t        |      d	       t	        |      }t               }	|	j                  |       d
|	d   v rN|j                  t        |	d   d
         D 
cg c]$  }
dt        j                  j                  |
       & c}
       d|	d   v rN|j                  t        |	d   d         D 
cg c]$  }
dt        j                  j                  |
       & c}
       t               }|st        ddj                  |      z         yt        |||||||      S c c}
w c c}
w )Nr      r      zmeson-privatez
meson-logsr   T)ignore_errors
cross_file
propertiesz--cross-file=native_filez--native-file=z!Could not execute scan-build "%s" )r
   shutilrmtreer   r   r   readextendr   ospathabspathr   printjoinr   )r   r   bldpathr   r   r   r   r   cmddatafr   s               r   runr6   )   sn   $q']F47mG$tAw-'J!WFQRI'G|#k1F
MM#f+T2 F
#CDIIcNtL))UYZfUghtUuHvw1M"''//!*<)=>wx\**VZ[gVhivVwIxyAN277??1+=*>?yz G1CHHW4EEFWfgw
IVV x zs   0)E0)E5)r   T.List[str]r   r
   r   r
   r   r
   r   r
   r   r
   r   r7   returnint)r   r7   r8   r9   )
__future__r   r   r)   r   environmentr   r   coredatar   r   mesonlibr	   pathlibr
   typingTastr   r-   r   r6    r    r   <module>rC      s3    #    8 ; +    	Wr    