Ë `Eé€1 MãóH—dZddlZddlZddlZddlZddlZd„Zd„Z d„Z d„Z y)aÅXcode-ninja wrapper project file generator. This updates the data structures passed to the Xcode gyp generator to build with ninja instead. The Xcode project itself is transformed into a list of executable targets, each with a build step to build with ninja, and a target with every source and resource file. This appears to sidestep some of the major performance headaches experienced using complex projects and large number of targets within Xcode. éNcó°—tjj|«\}}|dz}|d}|jr*tjj |j|«} tj |«d}||fD]x} tjjtjj| ««ddz} tjjjd| z«} |d| zz }Œz|d z }tjj |d «} t| d «5} | j«} | |k(r ddd«y ddd«t| d «5}|j#|«ddd«y#t $r)}|jtjk7r‚Yd}~�Œ0d}~wwxYw#1swYŒexYw#t $rYŒswxYw#1swYyxYw) z8 Create a workspace to wrap main and sources gyp paths. z .xcworkspaceÚoptionsNzC rz .xcodeprojzgroup:z$ z zcontents.xcworkspacedataÚrÚw)ÚosÚpathÚsplitextÚgenerator_outputÚjoinÚmakedirsÚOSErrorÚerrnoÚEEXISTÚbasenameÚxmlÚsaxÚsaxutilsÚ quoteattrÚopenÚreadÚIOErrorÚwrite)Úmain_gypÚ sources_gypÚparamsÚbuild_file_rootÚbuild_file_extÚworkspace_pathrÚeÚ output_stringÚgyp_nameÚnameÚworkspace_fileÚ input_fileÚ input_stringÚ output_files ú4/usr/lib/python3.12/site-packages/gyp/xcode_ninja.pyÚ_WriteWorkspacer(s¡€ä&(§g¡g×&6Ñ&6°xÓ&@Ñ#€?�NØ" ^Ñ3€.Ø �9Ñ €'Ø ×ÒÜ—W‘W—\‘\ '×":Ñ":¸NÓK€Nð ܇K�K�Ôð2€-à˜[Ó)€hÜ �7‰7× Ñ œBŸG™G×,Ñ,¨XÓ6Ó 7¸Ñ :¸\Ñ I€DÜ �7‰7× Ñ × %Ñ % h°¡oÓ 6€DØÐ<¸tÑCÑC�Mð*ðÐ#Ñ#€-ä—7‘7—<‘< Ð0JÓK€.ð Ü ˆn˜cÔ " jØ—_‘_Ó&€lØ ˜Ò &Ø÷ #Ð "à &÷ #ô ˆN˜CÔ  KØ×Ñ�mÔ$÷!Ð øô- ò ؇w�w”%—,‘,ÒØ õûð ú÷ #Ð "ûô ò áð ú÷!Ð úsTÁ$E<Ä F=Ä,F1ÅF=Å F=Å!G Å< F.ÆF)Æ)F.Æ1F:Æ6F=Æ= G ÇG Ç Gc ó`—d}d}|rx|d}tjj|jtj j j|««}|jdi«jdd«}|jd«}|jd|«}|jd«}i}||d<||d<|r||d<|jd «|d <|jd «|d <i|d <i} |rd |z| d <d |vrh|d j«D]R} |d | jdi«} d| vr d| d<| d| d<dD]} | | vsŒ| | | | <Œi|d | <| |d | d<ŒT|jdd«|d<|jdd«|d<|jdd«|d<|jdd«|d<|jdd«|d<|d|d<|rPd|zggddtjdzdd| d |gd|zdœg|d <|dkDr|d dd!jd"|f«|S)#z- Create fake target for xcode-ninja wrapper. NrrÚgenerator_flagsÚxcode_ninja_jobsÚ target_nameÚ product_nameÚproduct_extensionÚtoolsetÚdefault_configurationÚconfigurationsz-%s/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)ÚCONFIGURATION_BUILD_DIRÚxcode_settingsÚIPHONEOS_DEPLOYMENT_TARGETÚNOÚCODE_SIGNING_REQUIRED)Ú BUNDLE_LOADERÚ TEST_HOSTÚ mac_bundleÚmac_xctest_bundleÚios_app_extensionÚios_watchkit_extensionÚios_watchkit_appÚtypezCompile and copy %s via ninjaÚenvzPATH=%sÚPATHÚninjaz-C)Ú action_nameÚinputsÚoutputsÚactionÚmessageÚactionsrEz-j) rrr Ú toplevel_dirÚgypÚ generatorrAÚComputeOutputDirÚgetÚkeysÚenvironÚextend) Úold_specrÚninja_toplevelÚjobsrr,r-r.Ú ninja_targetÚnew_xcode_settingsÚconfigÚold_xcode_settingsÚkeys r'Ú_TargetFromSpecrX8sá€ð€.Ø €$Ù Ø�YÑ€Gä �‰� ‰ �W×)Ñ)Ü—]‘]×(Ñ(×9Ñ9¸&ÓAó Cðð �:‰:Ð'¨Ó ,× 0Ñ 0Ð1CÀQÓ G€Dà— ‘ ˜]Ó+€+Ø—‘˜n¨kÓ:€,Ø—l‘lÐ#6Ó7Ðà€,Ø +€,ˆ}ÑØ!-€,ˆ~ÑÙØ(9€LÐ$Ñ%Ø$ŸL™L¨Ó3€,ˆyÑØ*2¯,©,Ð7NÓ*O€,Ð&Ñ'Ø#%€,ÐÑ ðÐÙà7¸.ÑHðÐ0Ñ1ð˜Ñ!ØÐ+Ñ,×1Ñ1Ö3ˆàÐ!Ñ" 6Ñ*×.Ñ.Ð/?ÀÓDðà %Ð);Ñ ;Ø6:ÐÐ2Ñ3à Ð;Ñ <ð Ð7Ñ8ã/ˆ#Ø Ð$Ò $Ø$6°sÑ$;Ð ˜SÒ !ð0ð02€lÐ#Ñ$ VÑ,à ðÐ#Ñ$ VÑ,Ð-=Ò>ð4ð (Ÿ|™|¨L¸!Ó<€,ˆ|ÑØ&.§l¡lÐ3FÈÓ&J€,Ð"Ñ#Ø&.§l¡lÐ3FÈÓ&J€,Ð"Ñ#à‡l�lÐ+¨QÓ/ðÐ'Ñ(à%-§\¡\Ð2DÀaÓ%H€,Ð!Ñ"Ø! &Ñ)€,ˆvÑÙð7¸ÑDØØà Ø ”b—j‘j Ñ(Ñ (Ø Ø Ø Ð6Ñ 7Ø ð  ð3°[Ñ@ñ ð€L�Ñð  ˆa‚xØ�9јaÑ  Ñ*×1Ñ1°4¸°,Ô?Ø Ðócó—|jd«}|�tj||«ryt|jdd««dk7s*|jdd«dk(r/|jdd«d k7r|�tj||«sy yy ) apLimit targets for Xcode wrapper. Xcode sometimes performs poorly with too many targets, so only include proper executable targets, with filters to customize. Arguments: target_extras: Regular expression to always add, matching any target. executable_target_pattern: Regular expression limiting executable targets. spec: Specifications for target. r,Tr:rr>ÚÚ executabler.ÚbundleF)rLÚreÚsearchÚint)Ú target_extrasÚexecutable_target_patternÚspecr,s r'ÚIsValidTargetForWrapperrdƒsŠ€ð—‘˜Ó'€+àФ2§9¡9¨]¸KÔ#HØ ô ˆ$�(‰(Ð&¨Ó *Ó+¨qÒ0Ø ‡x�x�˜Ó˜|Ò+Ø ‡x�xÐ# RÓ(¨HÒ4ð!Ð,Ü �Y‰YÐ0°+Ô >ØØ Ø rYc ó0—|dd}|j«D]\}}||k(sŒ |d}Œ|jdi«}|jdd«} | €*tjj |«\} } | dz| z} g} i} i}i|| <g|| d<g|| d <||jd i«|| d <|jd d«}|jd d«}|D]Ÿ}||}t |||«sŒ|jd «}| ›d|›d�}| j |«t||«| |<||jd«dd D]4}|d |k(sŒ i}|d |d <|d|d<|| d j |«Œ6Œ¡d}t|dddddœd«}ddgii|d<|jdd« }g}|j«D�]k\}}tjj|«}|jdg«|jdg«z}|s4|j|jdg«|jdg«z«|jdg«D]G}|j|jd g««|rŒ'|j|jd!g««ŒI|D� cgc]} | jd"«rŒ| ‘Œ}} tjj| «}!||D� cgc]@} tjjtjj|| «|!«‘ŒBc} z }�Œntt|««|d<tjjtjj| «|d#z«}"|"›d|›d�}#| j |#«|| |#<i}|d |d <||d<d|d<i||"<g||"d <g||"d<||jd i«||"d <||"d j |«t!| |"|«| | |fScc} wcc} w)$ašInitialize targets for the ninja wrapper. This sets up the necessary variables in the targets to generate Xcode projects that use ninja as an external builder. Arguments: target_list: List of target pairs: 'base/base.gyp:base'. target_dicts: Dict of target properties keyed on target pair. data: Dict of flattened build files keyed on gyp path. params: Dict of global options for gyp. Ú build_filesrÚ_DEPTHr*Úxcode_ninja_main_gypNz.ninjaÚincluded_filesÚtargetsr3Ú%xcode_ninja_executable_target_patternÚxcode_ninja_target_patternr,Ú:z#targetr/Úsources_for_indexingÚtargetÚDefaultÚ0r\)r,r/r0r9r>Ú include_dirsr1Úxcode_ninja_list_excluded_filesTÚsourcesÚmac_bundle_resourcesÚsources_excludedÚmac_bundle_resources_excludedrGrCÚinputs_excludedÚ$z.gyp)ÚitemsrLrrr rdÚappendrXÚsplitÚdirnamerOÚ startswithÚrelpathr ÚsortedÚsetr()$Ú target_listÚ target_dictsÚdatarÚorig_gypr!Úgyp_dictÚdepthr*rrrÚnew_target_listÚnew_target_dictsÚnew_datarbraÚold_qualified_targetrcr,Únew_target_nameÚ old_targetÚnew_data_targetÚsources_target_nameÚsources_targetÚskip_excluded_filesrtroÚ target_dictÚbaseÚfilesrEÚfileÚ relative_pathrÚfully_qualified_target_names$ r'Ú CreateWrapperr˜žs·€ð�MÑ " 1Ñ %€(Ø ŸJ™JžLÑ€h�Ø�8ÓØ�xÑ �eð)ð —J‘JÐ0°"Ó5€/Ø × Ñ Ð!7¸Ó >€(Ø ÐÜ(*¯©×(8Ñ(8¸Ó(BÑ%€_�nØ Ñ)¨NÑ:€Hð€/ØÐØ €(ð€(ˆ8ÑØ)+€(ˆ8ÑÐ%Ñ&Ø"$€(ˆ8Ñ�YÑà ˆ8�n×ÑÐ)¨2Ó.ð ˆ8ÑÐ%Ñ&ð×ÑÐAÀ4ÓHðð "×%Ñ%Ð&BÀDÓI€-ã)ÐØ Ð,Ñ -€Dܘ}Ð.GÈÕNà—H‘H˜]Ó+€kÚ*2²KÐ@€oØ×ј_Ô-ô+:¸$ÀÓ*GÐ�Ñ'ðÐ1×7Ñ7¸Ó<¸QÑ?Ñ@ÀÔKˆ*Ø �mÑ $¨ Ó 3؈/Ø+5°mÑ+Dˆ/˜-Ñ (Ø'1°)Ñ'<ˆ/˜)Ñ $Ø �8Ñ ˜YÑ '× .Ñ .¨Õ ?ñ Lð*ð(/ÐÜ"Ø)ØØ(ØØñ ð  ó  €.ð'0°>ÀUÀ9Ð1NÐ%P€.Ð!Ñ"ð × Ñ Ð?ÀÓ FÐFðð €'Ø)×/Ñ/×1Ñ€fˆkÜ �7‰7�?‰?˜6Ó "€DØ �O‰O˜I rÓ *Ø �O‰OÐ2°BÓ 7ñ 8€Eñ Ø ‡l�l�;—?‘?Ð#5°rÓ:Ø—?‘?Ð#BÀBÓGñHôIð—/‘/ )¨RÖ0ˆØ ‡l�l�6—:‘:˜h¨Ó+Ô,â Ø � ‰ �V—Z‘ZÐ 1°2Ó6Õ7ð 1ñ %Ó A™u�t¨D¯O©O¸CÕ,@Šd˜u€EÐ Aô—G‘G—O‘O HÓ-€MØ Ù %ó(Ù %˜ô—‘—‘¤§¡§¡¨d°DÓ!9¸=ÕIØ %ñ(ñ(‚Gð+2ô0%¤S¨£\Ó2€.�Ñô ‡g�g‡l�l”2—7‘7—?‘? 8Ó,Ð.AÀFÑ.JÓKðò$Ò%8Ð9ðð×ÑÐ4Ô5Ø2@ÐÐ.Ñ/Ø€/Ø#1°-Ñ#@€/�-Ñ Ø#€/�(ÑØ'€/�)ÑØ€(ˆ;ÑØ%'€(ˆ;ј Ñ"Ø,.€(ˆ;ÑÐ(Ñ)à ˆ8�n×ÑÐ)¨2Ó.ð ˆ;ÑÐ(Ñ)à ˆ;ј Ñ"×)Ñ)¨/Ô:ô�(˜K¨Ô0Ø Ð+¨XÐ 6Ð6ùò? Bùò(sÊPÊ5PËAP) Ú__doc__rÚgyp.generator.ninjarIrr^Úxml.sax.saxutilsrr(rXrdr˜©rYr'Úr�s3ðñ ó ÛÛ Û Ûò %òDIòVó6C7rY