
    ej-                       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mZm	Z	m
Z
mZmZ ddlmZ d dlZ ej"                         Zej'                  dd	       ej'                  d
d	       ej'                  dd	       ej'                  dd	       ej'                  dd	       ej'                  dd	       ej'                  dd	       ej'                  ddd       ej'                  ddd       ej'                  ddd       ej'                  ddd       ej'                  d d!d       ej'                  d"d#d       ej'                  d$d%d       ej'                  d&d'd       ej'                  d(d)d       ej'                  d*d+d       ej'                  d,d-d       ej'                  d.d/d       ej'                  d0d1d       ej'                  d2d3d       ej'                  d4d5d       ej'                  d6d7d       ej'                  d8d9	       ej'                  d:d;d       d<D ]-  Zd=ez   Zej'                  d>ez   ej-                  d?d@      	       / dFdGdAZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dHdBZdIdCZdJdDZedEk(  r& ej8                   eej:                  dd              yy)K    )annotationsN   )MesonException
Popen_safe
is_windows	is_cygwin
split_args   )destdir_joinz--sourcedir	sourcedir)destz
--builddirbuilddirz--subdirsubdirz--headerdirs
headerdirsz
--mainfilemainfilez--modulename
modulenamez--moduleversionmoduleversionz
--htmlargshtmlargs )r   defaultz
--scanargsscanargsz--scanobjsargsscanobjsargsz--gobjects-types-filegobject_typesfilez--fixxrefargsfixxrefargsz
--mkdbargsmkdbargsz--ldldz--ccccz	--ldflagsldflagsz--cflagscflagsz--content-filescontent_filesz--expand-content-filesexpand_content_filesz--html-assetshtml_assetsz--ignore-headersignore_headersz--namespace	namespacez--modemodez--installdirinstall_dirz--runrun)scanscangobjmkdbmkhtmlfixxrefzgtkdoc-z---_c                8   |g }t        t        j                        }t               s
t	               rXd|v r1|j                  |d   j                  t        j                               t        j                  j                  |      |d<   nWd|v r1|j                  |d   j                  t        j                               t        j                  j                  |      |d<   t               r | j                  dt        j                         t        | ||t        j                        dd \  }}|j                  dk7  r@| d|j                  dg}|r|j!                  |       t#        dj                  |            |r	 t%        |       y y # t&        $ r Y y w xY w)	NPATHLD_LIBRARY_PATHr   )cwdenvstderrr   z failed with status d
)dictosenvironr   r   extendsplitpathsepjoininsertsys
executabler   
subprocessSTDOUT
returncodeappendr   printUnicodeEncodeError)cmdr2   library_pathsr3   pouterr_msgs          A/usr/lib/python3/dist-packages/mesonbuild/scripts/gtkdochelper.pygtkdoc_run_checkrM   7   sQ   
rzz
C|y{S=  V!2!22::!>?jjoom4F#  %6!7!=!=bjj!IJ!#!?|

1cnn% #j6G6GH1MFAs||qW0a0@ABNN3TYYw/00	
	#J 
 " 		s    F 	FFc           
     $   t        d|z         g }|D ]{  }t        j                  j                  |      sAt        j                  j	                  | |      t        j                  j	                  ||      g}n|g}||D cg c]  }d|z   	 c}z  }} t        j                  j	                  | |      }t        j                  j	                  ||      }t        j                  j	                  |d      }||gz  }t        j                  j	                  ||dz         } t        j                  j                  |       r|j                  |        t        j                  j	                  ||dz         }!t        j                  j                  |!      r|j                  |!       |D ]  }"t        j                  j                  |"      s!t        j                  j	                  ||"      }"n%t        j                  j                  |"|g      |k(  rht        j                  |"t        j                  j	                  |t        j                  j                  |"                    t        j                  |d       	 t        j                  |       |D ]s  }"t        j                  j	                  ||"      }#t        j                  |#t        j                  j	                  |t        j                  j                  |#                   u |j                  d|z   g|z   }$|r#|$j                  d	d
j	                  |      z          |$|z  }$t        |$|       d|v r#t        j                  j	                  ||dz         }|rz|j                   g|z   }%|%d|z   d|z   d|z   d|z   d|z   d|z   d|z   d|z   gz  }%g }&t#        |      D ](  }'|'j%                  d      s|&j                  |'dd         * t        |%||&       |dk(  r|j'                  d      rd}(nd}(n|dk(  rd}(n
|dk(  rd}(nd }(|j(                  d|z   ddd
j	                  |      z   g|z   })|r|)j                  d|z          |(r|)j                  |(       |r|)j                  d|z          |)|
z  })t        |)|       |j*                  dt        j,                  j	                  ||f      z   |g|z   }*|r|*j                  d |z          n|*j                  d!|z         t        |*|       |j.                  d|z   d"g|	z   }+t        |+|       |r\t        j0                  t        j                  j	                  || d#      t        j                  j	                  || d$| d#             y y c c}w # t        $ r Y w xY w)%NzBuilding documentation for %sz--source-dir=htmlz-sections.txtz-overrides.txtTignore_errorsz	--module=z--ignore-headers= z--rebuild-typesz.typesz--types=z--run=z	--cflags=z
--ldflags=z--cc=z--ld=z--output-dir=z-Wl,-rpath,   autosgmlz--sgml-modez
--xml-modexmlz--output-format=xmlz--expand-content-files=z--name-space=z--main-sgml-file=z--path=z../z%s-docs.xmlz--module-dir=htmlz	.devhelp2r-   )rE   r8   pathisabsr=   existsrD   
commonpathshutilcopyfilebasenamermtreemkdir	Exceptiongtkdoc_scanrM   gtkdoc_scangobjr	   
startswithendswithgtkdoc_mkdbgtkdoc_mkhtmlr<   gtkdoc_fixxrefmove),source_root
build_root
doc_subdirsrc_subdirs	main_filemodulemodule_version	html_args	scan_argsfixxref_args	mkdb_argsr   scanobjs_argsr'   r   r   r   r   r"   r    r#   r$   r!   r%   optionssrc_dir_argssrc_dirdirsr5   doc_srcabs_outhtmldirsections	overridesff_absscan_cmdscanobjs_cmdrH   ldflagmodeflagmkdb_cmd
mkhtml_cmd
fixref_cmds,                                               rL   build_gtkdocr   Z   s    

)F
23L <ww}}W%GGLLg6GGLLW57D 9Dd;1,;;< ggll;
3Gggll:z2Gggll7F+Gi[ Mww||GVo%=>H	ww~~hX&Wf/?&?@I	ww~~i Y'  Gww}}QWa(AWWJ0J>277<<1A1A!1DEFG MM'.
  OWa(rww||GRWW5E5Ee5LMNO ##[6%9:\IH+chh~.FFG	HXw' I%GGLL&82CD//0=@&77$v-!C$v-%/ 2 2(724 	4  ) 	2F  /$$VBC[1	2 	z=A v~ f%$H#H		 ##f$%)CHH5I,JJ !	!H
 )34!+i78	HXw' ''bjjoow.@AA   J %)+,-&01Z) ((&%')56J Z)BGGLLVHI*>?GGLLVHAn5EY*OP	R c <6  s   >U=2V 	VVc                    t         j                  j                  | |d      }t         j                  j                  |||      }t        j                  |d       t        j
                  ||       y )NrO   TrP   )r8   rW   r=   r[   r^   copytree)rj   rk   install_prefixdatadirrn   sourcefinal_destinations          rL   install_gtkdocr      sM    WW\\*j&9F^WfE
MM#48
OOF-.    c                Z   t         j                  |       }|j                  r|j                  j                  d      }ng }|j                  r|j                  j                  d      }ng }|j
                  r|j
                  j                  d      }ng }|j                  r|j                  j                  d      }ng }|j                  r|j                  j                  d      }ng }t        |j                  |j                  |j                  |j                  j                  d      |j                  |j                  |j                  |||||j                   ||j"                  |j$                  |j&                  |j(                  |j*                  |j,                  r|j,                  j                  d      ng |j.                  r|j.                  j                  d      ng |j0                  r|j0                  j                  d      ng |j2                  |j4                  r|j4                  j                  d      ng |j6                  |       dt8        j:                  v rt8        j:                  j=                  dd      }t?        |t8        j:                  d         }|j@                  r|j@                  }	n*|j                  }	|j                  r|	d|j                  z   z  }	t8        jB                  jE                  |	      rt?        ||	      }	tG        |j                  |j                  |d|	       y)Nz@@MESON_INSTALL_PREFIXDESTDIRr   r-   zshare/gtk-doc/htmlr   )$parser
parse_argsr   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%   r8   r9   getr   r&   rW   rX   r   )
argsru   r   r   r   r   r   destdirr   r&   s
             rL   r'   r'      s   %G##))$/##))$/++11$7))//5##))$/  &!!



+2+>+>!!$'B-4-B-B##D).5.D.D$$T*"4;4P4P$$**40VX36 +**..B/%grzz:P/QR!--K!,,K$$sW%:%:::77==%&w<Kw''~~%+"		$
 r   __main__)N)rG   T.List[str]r2   strrH   zT.Optional[T.List[str]]returnNone)4ri   r   rj   r   rk   r   rl   r   rm   r   rn   r   ro   r   rp   r   rq   r   rr   r   rs   r   r   r   rt   r   r'   r   r   r   r   r   r   r   r   r   r"   r   r    r   r#   r   r$   r   r!   r   r%   r   ru   zargparse.Namespacer   r   )rj   r   rk   r   r   r   r   r   rn   r   r   r   )r   r   r   int)
__future__r   r?   r8   rA   r[   argparsemesonlibr   r   r   r   r	   r   r   typingTArgumentParserr   add_argumenttoolprogram_namereplacerM   r   r   r'   __name__exitargv r   rL   <module>r      s   #     T T  	 	 	 	"   M  4   Lz  2   JX  .   N  6   Lz  2   N  6   %O  <   Lz2  >   Lz2  >   $>2  F   +2Er  R   O-  D   Lz2  >   Fr  2   Fr  2   Ki  <   JXr  :   %OR  H   ,3ISU  V   O-  D   &-=r  J   MR  @   H62  6   N  7   G%  4= RDt#L
|+,2F2FsC2PQR!FBRBR),BR>ABR'BR4?BROZBRgrBR %(BR 9DBR KNBR TWBR ]`BR knBR x{BR *	BR ;F	BR Xc	BR ps	BR
 (3BR
 ;>BR
 I[BR
 `dBRH/AF zCHHS!" r   