-í û²êEcsƒdkZdkZdkZdklZd„Z\d„ZŽd„Z’d„Z±d„ZÌd„Z dS(N(sfnmatchcsÆh}  dk}!|id|dtƒ}"|id7_#|iiddƒ|_$d|_&|i } '|i ƒ}(|})d} *t} +t},t}.d„} 4xW4|oL5|dgjo$6| dgjo 7t} nnº8|dgjo9n :| o;|}<t} n€>|d jo,?| i|ƒ o@tƒ| |scs‚|o tˆ|ƒS(N(sxsfnmatchsfilenamesy(sxsy(sfilename(sbuild/doxygen.pys‚ss/csŠˆi|ƒS(N(senvsFilespath(spath(senv(sbuild/doxygen.pysŠsN( sdefault_file_patternssdefault_exclude_patternsssourcess DoxyfileParsesnodes get_contentssdatasgetsTrues recursivesFalses file_patternssexclude_patternssosspathsisfilesappendsisdirswalksrootsdirssfilessfsjoinsfilenamesreduces pattern_checks exclude_checkspatternsextendsglobsmap(snodesenvspathsdirsssourcess pattern_checksdefault_file_patternssdatasfiless recursives exclude_checksfsdefault_exclude_patternssexclude_patternssfilenamespatternsroots file_patterns((senvsfilenamesbuild/doxygen.pysDoxySourceScan\s<T         4cs Žtii|iƒSdS(s!Check if we should scan this fileN(sosspathsisfilesnode(snodesenv((sbuild/doxygen.pysDoxySourceScanCheckŽsc sz’“•hddfd<ddfd<ddfd<dd fd <dd fd <}t|d iƒƒ}Ÿg}  |iddƒ}£x|iƒD£]p\}}¤|id||d ƒdjo@¥| i |i tii||i|d|dƒƒƒƒnq¡W¨x!| D¨]}©|i|ƒq"W¬x$| D¬]}­|i||ƒqIW¯| |fSdS(sDoxygen Doxyfile emittersYESshtmlsHTMLslatexsLATEXsNOsrtfsRTFsmansMANsxmlsXMLisOUTPUT_DIRECTORYs.s GENERATE_s_OUTPUTiN(soutput_formatss DoxyfileParsessources get_contentssdatastargetssgetsout_dirsitemssksvsappendsenvsDirsosspathsjoinsnodesPrecioussClean( ssourcestargetsenvsnodesout_dirsoutput_formatssdatasksvstargets((sbuild/doxygen.pys DoxyEmitter’s T $D  c s™±µ¶|it¸d¹dtƒ}¼|idd¾dt¿d|iiÀdt Ád|ƒ}Ä|i d h|d <ƒÈ|i d d ƒd S(sn Add builders and construction variables for the Doxygen tool. This is currently for Doxygen 1.4.6. sDoxySourceScans scan_checksactions/cd ${SOURCE.dir} && ${DOXYGEN} ${SOURCE.file}semitterstarget_factorys single_sourcessource_scannersBUILDERSsDoxygensDOXYGENsdoxygenN( senvsScannersDoxySourceScansDoxySourceScanChecksdoxyfile_scannersBuilders DoxyEmittersfssEntrysTruesdoxyfile_buildersAppends AppendUnique(senvsdoxyfile_buildersdoxyfile_scanner((sbuild/doxygen.pysgenerate±s   csÌÏÐ|idƒSdS(s! Make sure doxygen exists. sdoxygenN(senvsDetect(senv((sbuild/doxygen.pysexistsÌs( sossos.pathsglobsfnmatchs DoxyfileParsesDoxySourceScansDoxySourceScanChecks DoxyEmittersgeneratesexists( s DoxyfileParsesDoxySourceScansDoxySourceScanChecksexistssfnmatchsglobsossgenerates DoxyEmitter((sbuild/doxygen.pys?s   C 2