
    -PhF*                        d dl mZ d dlmZ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ZddZedk    r( ej         eej        dd                              dS dS )    )annotations)environmentmesonlibNoutputsT.List[str]source_rootstrsubproject_root
build_rootlog_diruse_llvm_covbool	gcovr_exellvm_cov_exereturnintc                   g }d}	|dk    rd }nt          j        |          \  }}
|dk    st          j        |          d }t          j                    \  }}}t
          j                            |d          }t
          j                            |          rd|g}ng }|rt          j
        |d          rddg}nddg}d	t          j        |          g}|r[t          j
        |
d
          rF|d||g}t
          j                            t
          j                            |d                    rg }n|d|g}|rd|dz   g}ng }| rd| v r|r~t          j
        |
d          rit          j        ||z   ddt
          j                            |d          gz   |z              |                    dt!          j        |d          f           n| rt%          d           d}	| rd| v r|r~t          j
        |
d
          rit          j        ||z   ddt
          j                            |d          gz   |z              |                    dt!          j        |d          f           n| rt%          d           d}	| rd| v r|r}t          j
        |
d          rht          j        ||z   dt
          j                            |d          gz   |z              |                    dt!          j        |d          f           n| rt%          d           d}	| rd | v r|r|rt
          j                            |d!          }t
          j                            |d"          }|d#z   }|d$z   }|d%z   }g }t
          j                            |          r3|                    t
          j                            |d&                     |rt          j                    rdt
          j                            |d'          }t)          |d(d)*          5 }|                    d+| d,           d d d            n# 1 swxY w Y   nt
          j                            |d-          }t)          |d(d)*          5 }|                    d.| d/           d d d            n# 1 swxY w Y   t          j        |t          j        |          j        t.          j        z             d0|g}ng }t          j        |d1|d2d3d4|g|z   |z              t          j        |d1|d2d4|d5g||z   |z              t          j        |d6|d6|g|d||z              t          j        |d7|t
          j                            |d&          g|d4||z              t          j        |d8|g||d9d:d4||z              t          j        |d;|d;|d<|d=d>d?d@dA|g|z              |                    dBt!          j        |dC          f           n|rt          j
        |
d          rt
          j                            |d!          }t
          j                            |          st          j        |           dD}t          j
        |
dE          rdF}t          j        ||z   dG|dHdt
          j                            |dC          gz   |z              |                    dBt!          j        |dC          f           n| rt%          dI           d}	| s|st%          dJ           d}	|r<t%          d           |D ]*\  }} t%          |dKz   |                                            +|	S )LNr    z.lcovrcz--config-filez>=2.0z--rczbranch_coverage=1zlcov_branch_coverage=1z-ez>=4.2z-rz	gcovr.cfgz--gcov-executablez gcovxmlz>=3.3z-xz-ozcoverage.xmlXmlz3gcovr >= 3.3 needed to generate Xml coverage report   	sonarqube--sonarqubezsonarqube.xml	Sonarqubez3gcovr >= 4.2 needed to generate Xml coverage reporttextzcoverage.txtTextz4gcovr >= 3.3 needed to generate text coverage reporthtmlcoveragereportzcoverage.infoz.initialz.runz.raw*zllvm-cov.batwzutf-8)encodingz@"z	" gcov %*zllvm-cov.shz#!/usr/bin/env sh
exec "z	" gcov $@z--gcov-toolz--directoryz	--capturez	--initialz--output-filez--no-checksumz-az	--extractz--removez--ignore-errorsunusedz--prefixz--output-directoryz--titlezCode coveragez--legendz--show-detailsz--branch-coverageHtmlz
index.htmlz--html-detailsz>=6.0z--html-nested--htmlz--print-summaryzDlcov/genhtml or gcovr >= 3.3 needed to generate Html coverage reportz;Need gcovr or lcov/genhtml to generate any coverage reportsz  coverage report can be found at)r   detect_gcovrshutilwhichdetect_lcov_genhtmlospathjoinexistsr   version_comparereescape
subprocess
check_callappendpathlibPathprint
is_windowsopenwritechmodstatst_modeS_IEXECisdirmkdiras_uri)!r   r   r
   r   r   r   r   r   outfilesexitcodegcovr_versionlcov_exelcov_versiongenhtml_exelcovrclcov_configlcov_exe_rc_branch_coveragegcovr_configgcovr_base_cmdgcov_exe_args
htmloutdircovinfoinitial_tracefilerun_tracefileraw_tracefilelcov_subpoject_excludellvm_cov_shim_pathllvm_cov_batllvm_cov_shgcov_tool_argshtml_argfiletyper*   s!                                    [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/scripts/coverage.pycoveragerY      s	   HHB		#.#;I#F#F 	=rV\,77?*5*I*K*K'HlK W\\+y11F	w~~f &/ IH,\7CC I'-/B&C##'-/G&H#")O445L  7X-mWEE 7#T;
C7>>"',,{K@@AA 	L#T:6 ,lW.DE 	ew&& 	1-II 	!.<"?#'#'g~)N)N#%#% (5#5 6 6 6 OOUGL.$I$IJKKKK 	GHHHH 	kW,, 	1-II 	!.<"?#0#'g)O)O#%#% (5#5 6 6 6 OO[',w*P*PQRRRR 	GHHHH f'' 	1-II 	!.<"?#'g~)N)N"O#P"/#0 1 1 1 OOVW\'>%J%JKLLLL 	HIIIH Wf'' V	 V	g/?@@Jgll7O<<G '* 4#f,M#f,M%'"w~~o.. R&--bgll?C.P.PQQQ $&(( e)+g~)N)N&0#HHH IL$**+G+G+G+GHHHI I I I I I I I I I I I I I I *,g})M)M&0#HHH _K#))*]l*]*]*]^^^_ _ _ _ _ _ _ _ _ _ _ _ _ _ _H/9K1L1L1TW[Wc1cddd"/1C!D!#!8#0*#.#.#2#4#6 #.#. #1#1 2 2 2 !8#0*#.#2M#2	#A
 %@#A #.#. #1#1 2 2 2 !8#'):#'#8 %@#8 $(	#8 *7	#8 ;F	#F G G G !8#.#%7<<S#A#A#= %@#= $3	#= 5<	#= @K	#K L L L !8#-w#=$:#= %@#= $5	#= 7?	#=
 $3#=
 5<#=
 @K#K L L L !;#-z#-{#7#,o#-#3#6#*#, /:#: ; ; ; OOVW\*l%K%KLMMMM 	83M7KK 	g/?@@J7==,, %$$$ (H'w?? +*!.<"?#+#+#4#'j,)O)O#%#%
 (5#5 6 6 6 OOVW\*l%K%KLMMMM 	XYYYH 8 KLLL Pb			 ( 	P 	PXt(??OOOOOs$   P**P.1P.(RRRargsc           
     >   t           j                            d          st          d           dS t	          j        d          }|                    dddd	d
           |                    ddddd           |                    ddddd           |                    ddddd           |                    ddd           |                    dddd           |                    dddd           |                    d            |                    d!           |                    d"           |                    d#           |                    |           }t          |j	        |j
        |j        |j        |j        |j        |j        |j                  S )$Nzbuild.ninjaz5Coverage currently only works with the Ninja backend.r   zGenerate coverage reports)descriptionz--textr   append_constr   zgenerate Text report)destactionconsthelpz--xmlr   zgenerate Xml reportr   r   zgenerate Sonarqube Xml reportr$   r   zgenerate Html reportz--use-llvm-cov
store_truezuse llvm-cov)r_   ra   z--gcovrstorer   z(The gcovr executable to use if specified)r_   defaultra   z
--llvm-covz+The llvm-cov executable to use if specifiedr   r
   r   r   )r)   r*   isfiler5   argparseArgumentParseradd_argument
parse_argsrY   r   r   r
   r   r   r   gcovrllvm_cov)rZ   parseroptionss      rX   runrn      s   7>>-(( EFFFq$1LMMMF
y$+A  C C C
i#*?  A A A
In)0O  Q Q Q
y$+A  C C C
(+  - - -
	'2G  I I I
WbJ  L L L
&&&
)***
%%%
	"""%%GGOW%8+W-?OW%9M7#35 5 5    __main__r   )r   r   r   r	   r
   r	   r   r	   r   r	   r   r   r   r	   r   r	   r   r   )rZ   r   r   r   )
__future__r   
mesonbuildr   r   rf   r.   sysr)   r0   r3   r:   r&   typingTrY   rn   __name__exitargv ro   rX   <module>rz      s   # " " " " " , , , , , , , , ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?    p p p pd5 5 5 5: zCHSS!"" ro   