o
    nc	                     @  s   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dZdddZdS )    )annotationsN   )detect_ninjadetect_scanbuild)get_cmd_line_fileCmdLineFileParser)windows_proof_rmtree)Path)literal_evalexelistT.List[str]srcdirr	   blddirprivdirlogdirargsreturnintc           
      C  sv   t jt|d}| | }| dt|g t  d|g }t|t||g }	|	dkr,|	S t|}	|	dkr9t| |	S )N)dirz-oz-Cr   )tempfilemkdtempstrr   
subprocesscallr   )
r   r   r   r   r   r   scandir	meson_cmd	build_cmdrc r   {home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/site-packages/mesonbuild/scripts/scanbuild.py	scanbuild   s   
r    c           
      C  s   t | d }t | d }| d }| dd  }|d }|d d }tjt|dd t|}t }|| d	|d
 v rK|dd t|d
 d	 D  d|d
 v ra|dd t|d
 d D  t	 }	|	sqt
dd|	  dS t|	|||||S )Nr      r   zmeson-privatez
meson-logsr    T)ignore_errorsZ
cross_fileZ
propertiesc                 S     g | ]}d t j| qS )z--cross-file=ospathabspath.0fr   r   r   
<listcomp>8       zrun.<locals>.<listcomp>Znative_filec                 S  r#   )z--native-file=r$   r(   r   r   r   r+   ;   r,   z!Could not execute scan-build "%s" )r	   shutilrmtreer   r   r   readextendr
   r   printjoinr    )
r   r   Zbldpathr   r   r   r   cmddatar   r   r   r   run)   s&   
  r6   )r   r   r   r	   r   r	   r   r	   r   r	   r   r   r   r   )r   r   r   r   )
__future__r   r   r.   r   environmentr   r   Zcoredatar   r   Zmesonlibr   pathlibr	   typingTastr
   r%   r    r6   r   r   r   r   <module>   s   
