Ë ïPÔ[”òã óH—dZddlmZddlZddlZddlZddlZddlZddlZ ddl Z ejZ idd“dd“dd“d d “d d“d d “dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“Zd$Zd%Zd%Zd&d'd'd'd(d(d)œZd*„Zd+„Zd,„Zd-„Zd.„Zd/„Zd0„Zd1„Zd2„ZdSd3„Zd4„Zd5„Zd6„Z dTd7„Z!Gd8„d9e"«Z#e#d:dd;«e#d«e#dzCompilable..^søèø€Ð AÑ+@ aˆX× Ñ ˜q× !Ñ+@ùsƒ)ÚanyÚCOMPILABLE_EXTENSIONS©r9s`r&Ú Compilabler>\sø€ä Ó AÕ+@Ó AÓ AÐAr(có$—|jd«S)zAReturn true if the file is linkable (should be on the link line).z.or5r=s r&ÚLinkabler@as€à × Ñ ˜4Ó Ð r(c ó`—tjj|«r|SttD�cgc]}|j |«‘Œc}«r|Stjj dtjjtjj ||«««Scc}w)aResolves rel_path against base_path and returns the result. If rel_path is an absolute path it is returned unchanged. Otherwise it is resolved against base_path and normalized. If the result is a relative path, it is forced to be relative to the CMakeLists.txt. r)ÚosÚpathÚisabsr;ÚFULL_PATH_VARSr"ÚjoinÚnormpath)Ú base_pathÚrel_pathÚvars r&ÚNormjoinPathForceCMakeSourcerKfs€€ô‡W�W‡]�]�8ÔØ €OÜ­nÓ =©n sˆ(× Ñ ˜cÕ "¨nÑ =Ô>Ø €Oä �‰�‰Ð1Ü—g‘g×&Ñ&¤r§w¡w§|¡|°I¸xÓ'HÓIó KðKùò >s¯B+cóÄ—|jd«r|jd«s|Stjjtjj ||««S)zçResolves rel_path against base_path and returns the result. TODO: what is this really used for? If rel_path begins with '$' it is returned unchanged. Otherwise it is resolved against base_path if relative, then normalized. Ú$r)r"rBrCrGrF)rHrIs r&Ú NormjoinPathrNwsI€ð ×јԠh×&9Ñ&9Ð:LÔ&MØ €OÜ �‰× Ñ œ"Ÿ'™'Ÿ,™, y°(Ó;Ó <Ð, )] to append with generated source files. extra_deps: [] to append with generated targets. path_to_gyp: relative path from CMakeLists.txt being generated to the Gyp file in which the target being generated is defined. Ú action_nameÚ__ÚinputsÚ__inputÚoutputsÚ__outputc3ó&K—|] }|sŒ|–—Œ y­wr4r…©r7Údirs r&r:zWriteActions..sèø€ÐKÑC�sÂsŒsÑCùó‚Šc3óZK—|]#}tjj|«–—Œ%y­wr4©rBrCÚdirname©r7Úos r&r:zWriteActions..sèø€ÐC¹7°aœrŸw™wŸ™¨q×1¹7ùó‚)+Úprocess_outputs_as_sourcesFzadd_custom_command(OUTPUT Ú rú- COMMAND ${CMAKE_COMMAND} -E make_directory ú COMMAND Úactionú DEPENDS ú. WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/ú COMMENT Úmessageú VERBATIM rrúadd_custom_target(z DEPENDS z SOURCES ú ) N)r™rprKÚsetÚintÚgetÚextendÚzipr\rer#r,r-ÚEncodePOSIXShellListÚappend)riÚactionsÚ extra_sourcesÚ extra_depsÚ path_to_gypr]r¯r›Úaction_target_namer�Ú inputs_nameÚdeprŸÚoutÚ cmake_outputsÚ outputs_nameÚdirsÚ directorys r&Ú WriteActionsrÊüs’€ô€fÜ)¨&°Ñ*?Ó@€KÚ%0±+Ð>Ðà �HÑ €FØ$ yÑ0€KÜ�F˜KÙCIÓJÁ6¸CÔ % k°3Õ 7À6ÑJôLð�YÑ€Gá 'ó)Ù '˜ô2°+¸sÕCØ 'ðð)à%¨ Ñ2€LÜ�F˜L¨-Ô8ô ÑKÑC¹7ÔCÓKÓ K€Dä ˆ6�:‰:Ð2°EÓ :Ô;Ø×Ñœ3˜}¨gÓ6Ô7ð ‡L�LÐ-Ô.Ü�&˜,Ô'Ø ‡L�L�Ôä ˆ4ƒy�1‚}Ûˆ)Ø� ‰ ÐDÔEØ� ‰ �YÔØ� ‰ �TÕðð  ‡L�L�ÔØ ‡L�L”—‘×0Ñ0°¸Ñ1AÓBÔCØ ‡L�L�Ôà ‡L�L�ÔÜ�&˜+Ô&Ø ‡L�L�Ôà ‡L�LÐAÔBØ ‡L�L�ÔØ ‡L�L�Ôà ‡L�L�ÔØ�FÑØ ‡l�l�6˜)Ñ$Õ%à ‡l�lÐ%Ô&Ø ‡L�L�Ôà ‡L�L�Ô Ø ‡L�L�Ôð ‡L�LÐ%Ô&Ø ‡L�LÐ#Ô$Ø ‡L�L�Ô Ü�&˜,Ô'Ø ‡L�L�Ô Ü�&˜+Ô&Ø ‡L�L�Ôà×ÑÐ(Ö)ñAùò Kùò)s ±K$ÁK)có¢—|jd«r.ttD�cgc]}|j|«‘Œc}«r|St||«Scc}w)N)rr)r"r;rErK)rHrIÚ rule_sourcerJs r&Ú NormjoinRulePathForceCMakeSourcerÍKsK€Ø ×ÑÐGÔHÜ µ>Ó B±>¨CˆK× "Ñ " 3Õ '°>Ñ BÔCØ €oÜ % i°Ó :Ð:ùò CsŸA c óö —|D�]î}t|dz|dz«}|jdg«}|dz} t|| |D� cgc]} t|| «‘Œc} «|d} g} t |jdg««D�]d\} }|dzt | «z}t jj|«\}}t jj|«\}}t|d|«t|d |«t|d |«t|d |«t|d |«td „d„| D«D««}g}t | «D]�\}}|dzt |«z}t||t|||««t|jdd««r|jd|zdz|f«|jd|zdz«| jd|zdz«Œ’|jd«|D]5}|jd«|j|«|jd«Œ7|D]5}|jd«|j|«|jd«Œ7|jd«|jt j"j%|d««|jd«|jd«t'|| «|jd«|jt)||««|jd«|jd«|j|«|jd«|jd«d|vr|j|d«n|j|«|jd«|jd«|jd«t+|d«t+|d «t+|d «t+|d «t+|d «�Œg|jd «|j|«|jd!«| D]5}|jd«|j|«|jd«Œ7|jd"«t'|| «|jd«|jdg«D]?}|jd«|jt)||««|jd«ŒA|jd«|j|«�Œñy#cc} w)$aÈWrite CMake for the 'rules' in the target. Args: target_name: the name of the CMake target being generated. actions: the Gyp 'actions' dict for this target. extra_sources: [(, )] to append with generated source files. extra_deps: [] to append with generated targets. path_to_gyp: relative path from CMakeLists.txt being generated to the Gyp file in which the target being generated is defined. rœÚ rule_namer�ržrŸÚ rule_sourcesÚ_rrrrrc3ó&K—|] }|sŒ|–—Œ y­wr4r…r¢s r&r:zWriteRules..vsèø€ÐMÑ E˜Ê”Ñ Eùr¤c3óZK—|]#}tjj|«–—Œ%y­wr4r¦r¨s r&r:zWriteRules..vsèø€Ð E¹W¸¤§¡§¡°×!3¹Wùrªr«Frvrwzadd_custom_command(OUTPUT ú r¬r­r®r¯r°Ú r±r²r³r´rrrµz DEPENDS zSOURCES N)r™r¹rprKÚ enumerateÚstrrBrCÚsplitÚsplitextrmr·rÍr¸r½r\r,r-r¼rerNrt)riÚrulesr¿rÀrÁr]ÚrulerÏr�rÃrÄrŸÚ var_outputsÚcountrÌr›Úrule_source_dirnameÚrule_source_basenameÚrule_source_rootÚrule_source_extrÈÚ these_outputsÚ output_indexrÅÚ output_namerÉs r&Ú WriteRulesråRs_€ô€dÜ'¨ °dÑ(:¸TÀ+Ñ=NÑ(NÓO€Ià �X‰X�h Ó #€FؘiÑ'€KÜ�F˜KÙCIÓJÁ6¸CÔ % k°3Õ 7À6ÑJôLà�9‰o€GØ€Kä'¨¯©°ÀÓ(D×Eшˆ{Ø ‘O¤c¨%£jÑ0€kä24·'±'·-±-À Ó2LÑ/ÐÐ/Ü*,¯'©'×*:Ñ*:Ð;OÓ*PÑ'Иä�&Ð+¨[Ô9Ü�&Ð.Ð0CÔDÜ�&Ð+Ð-AÔBÜ�&Ð+Ð-=Ô>Ü�&Ð*¨OÔ<ôÑMÑ E¹WÔ EÓMÓ M€dð€mÜ(¨Ö1Ñ ˆ,˜Ø! CÑ'¬#¨lÓ*;Ñ;ˆ Ü�F˜KÜ5°kÀ3Ø6AóCô Dô ˆt�x‰xÐ4°eÓ<Ô =Ø × Ñ   {Ñ 2°SÑ 8¸#Ð>Ô ?Ø×јT KÑ/°#Ñ5Ô6Ø×ј4 +Ñ-°Ñ3Õ4ð 2ð ‡l�lÐ0Ô1Ûˆ#Ø� ‰ �TÔØ� ‰ �SÔØ� ‰ �TÕðó ˆ)Ø� ‰ ÐDÔEØ� ‰ �YÔØ� ‰ �TÕðð  ‡l�l�<Ô Ø ‡l�l”3—:‘:×2Ñ2°4¸±>ÓBÔCØ ‡l�l�4Ôà ‡l�l�<Ô Ü�F˜KÔ(Ø ‡l�l�3ÔØ ‡l�l”<  ¨[Ó9Ô:Ø ‡l�l�4Ôð ‡l�lÐCÔDØ ‡l�l�;ÔØ ‡l�l�4Ôà ‡l�l�<Ô Ø �dÑ Ø� ‰ �T˜)‘_Õ%à� ‰ �[Ô!Ø ‡l�l�4Ôà ‡l�l�>Ô"Ø ‡l�l�5Ôä�FÐ-Ô.Ü�FÐ0Ô1Ü�FÐ-Ô.Ü�FÐ-Ô.Ü�FÐ,Ö-ðMFðR ‡L�LÐ%Ô&Ø ‡L�L�ÔØ ‡L�L�ÔÛˆØ ‡l�l�4ÔØ ‡l�l�3ÔØ ‡l�l�4Õðð ‡L�L�ÔÜ�&˜+Ô&Ø ‡L�L�ÔØ—x‘x °Ö3ˆ Ø ‡l�l�4ÔØ ‡l�l”<  ¨[Ó9Ô:Ø ‡l�l�4Õð4ð ‡L�L�Ôà×Ñ�iÖ ñGùò Ks½S6cóN —|dz}td„|D««}|sE|jd«|j|«|jd«|j|«yGd„dt«}|dd «}|d d «} |D�]} | d } | d } | D�]} tj j | «}tj j|«d}tj j| |«}tj j| «r|n| } | jjt|| ««| jjt||««| jj| «| jj|«�Œ �Œ|| fD]} | jsŒ|dz| jz| _t#|| j | j«|dz| jz| _t#|| j$| j«Œ�|jd«|jd«|| fD]&} | j$sŒt'|| j$d«Œ(|jd«|| fD]Œ} t)| j| j«D]g\} }|jd| j*z«|j| «|jd«|j|«|jd«ŒiŒŽ|jd«|| fD]&} | j sŒt'|| j d«Œ(|jd«|jd«|j|«|jd«|jd«|j|«|jd«|jd«|jd«|jd«|j|«|jd«|| fD]&} | j$sŒt'|| j$d«Œ(|jd«|j rt'||j d«|jd«|j|«y)axWrite CMake for the 'copies' in the target. Args: target_name: the name of the CMake target being generated. actions: the Gyp 'actions' dict for this target. extra_deps: [] to append with generated targets. path_to_gyp: relative path from CMakeLists.txt being generated to the Gyp file in which the target being generated is defined. Ú__copiesc3ó&K—|] }|d–—Œ y­w)ÚfilesNr…)r7Úcopys r&r:zWriteCopies..Ñsèø€Ð5©f d�D˜•M©fùs‚rµrrNcó—eZdZd„Zy)úWriteCopies..Copycót—g|_g|_g|_g|_||_d|_d|_||_yr4)Ú cmake_inputsrÆÚ gyp_inputsÚ gyp_outputsÚextrÃrÇr|)rrñr|s r&r€z"WriteCopies..Copy.__init__Ús?€Ø€dÔØ€dÔØ€d„oØ€dÔØ€d„hØ€dÔØ€dÔØ€d…lr(Nr�r…r(r&ÚCopyrìÙs„ór(ròrrêÚ_dirsÚcopy_directoryréÚ destinationroržr zadd_custom_command( ÚOUTPUTrÕr¬zCOMMAND ${CMAKE_COMMAND} -E %s ÚDEPENDSz,WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/zCOMMENT Copying for z VERBATIM z DEPENDSz SOURCESr¶)r;r\r½ÚobjectrBrCrGrØrFÚbasenamerîrKrÆrïrðrñrÃrprÇrer»r|)riÚcopiesrÀrÁr]Ú copy_nameÚ have_copiesròÚ file_copyÚdir_copyrêrérõÚsrcrCrùÚdsts r&Ú WriteCopiesrÄsÕ€ð˜JÑ&€)ôÑ5©fÓ5Ó5€+Ù Ø ‡L�LÐ%Ô&Ø ‡L�L�ÔØ ‡L�L�ÔØ×Ñ�iÔ Ø ô ŒVô ñ�2�vÓ€)Ù �'Ð+Ó ,€(ä€dØ �‰M€EØ�}Ñ%€KÜˆÜ �W‰W× Ñ ˜cÓ "€dÜ—‘—‘˜tÓ$ QÑ'€hÜ �G‰G�L‰L˜ hÓ /€cäŸ'™'×*Ñ*¨3Ô/‰Y°X€dà ×Ñ×ÑÔ;¸KÈÓMÔNØ ×Ñ×ÑÔ <¸[È#Ó NÔOØ ‡o�o×јSÔ!Ø ×Ñ×јcÖ"òðð˜(Ó#€dØ ×ÓØ" YÑ.°·±Ñ9€dÔÜ�f˜d×.Ñ.°×0AÑ0AÔBà# jÑ0°4·8±8Ñ;€dÔÜ�f˜d×/Ñ/°×1CÑ1CÕDð $ð ‡,�,Ð&Ô'à‡,�,ˆxÔØ˜(Ó#€dØ ×ÓÜ�F˜D×-Ñ-¨sÕ3ð$ð ‡,�,ˆtÔà˜(Ó#€dܘŸ™¨×)9Ñ)9Ö:‰ˆˆSà ‡l�lÐ4°t·|±|ÑCÔDØ ‡l�l�3ÔØ ‡l�l�3ÔØ ‡l�l�3ÔØ ‡l�l�4Õñ ;ð$ð ‡,�,ˆyÔØ˜(Ó#€dØ ×ÓÜ�F˜D×,Ñ,¨cÕ2ð$ð ‡,�,ˆtÔà‡,�,Ð=Ô>؇,�,ˆ{ÔØ‡,�,ˆtÔà‡,�,Ð%Ô&؇,�,ˆ{ÔØ‡,�,ˆtÔà‡,�,ˆ|ÔØ‡,�,ˆuÔð ‡,�,Ð#Ô$؇,�,ˆyÔØ‡,�,ˆ}ÔØ˜(Ó#€dØ ×ÓÜ�F˜D×-Ñ-¨sÕ3ð$ð ‡,�,ˆ}ÔØ×ÒÜ�&˜)×/Ñ/°Ô5؇,�,ˆwÔà ×Ñ�IÕr(có€—tjj|«\}}}|}|r |dk7r|d|zz }t|«S)z2This is the name we would like the target to have.ÚtargetrÑ©r,r-ÚParseQualifiedTargetr™)Úqualified_targetrÑÚgyp_target_nameÚgyp_target_toolsetÚcmake_target_base_names r&ÚCreateCMakeTargetBaseNamer 0sQ€ô ‡j�j×%Ñ%Ð&6Ó7ñ)€!€_Ð(à*ÐÙÐ.°(Ò:ؘcÐ$6Ñ6Ñ6ÐÜ Ð!7Ó 8Ð8r(cóŒ—tjj|«\}}}|dz|z}|r |dk7r|d|zz }t|«S)z#An unambiguous name for the target.Ú:rrÑr)rÚgyp_filerrÚcmake_target_full_names r&ÚCreateCMakeTargetFullNamer:sZ€ô ‡j�j×%Ñ%Ð&6Ó7ñ0€(ˆOÐ/à# c™>¨OÑ;ÐÙÐ.°(Ò:ؘcÐ$6Ñ6Ñ6ÐÜ Ð!7Ó 8Ð8r(có—eZdZdZd„Zd„Zy)Ú CMakeNameraÒConverts Gyp target names into CMake target names. CMake requires that target names be globally unique. One way to ensure this is to fully qualify the names of the targets. Unfortunatly, this ends up with all targets looking like "chrome_chrome_gyp_chrome" instead of just "chrome". If this generator were only interested in building, it would be possible to fully qualify all target names, then create unqualified target names which depend on all qualified targets which should have had that name. This is more or less what the 'make' generator does with aliases. However, one goal of this generator is to create CMake files for use with IDEs, and fully qualified names are not as user friendly. Since target name collision is rare, we do the above only when required. Toolset variants are always qualified from the base, as this is required for building. However, it also makes sense for an IDE, as it is possible for defines to be different. có¼—t«|_t«}|D]>}t|«}||vr|j|«Œ$|jj|«Œ@yr4)r·Ú"cmake_target_base_names_confictingr Úadd)rÚ target_listÚcmake_target_base_names_seenrr s r&r€zCMakeNamer.__init__XsX€Ü.1«e€DÔ+ä#&£5Ð Û'ÐÜ8Ð9IÓJÐà Ð'CÑ CØ$×(Ñ(Ð)?Õ@à ×/Ñ/×3Ñ3Ð4JÕKñ (r(cóN—t|«}||jvr t|«S|Sr4)r rr)rrÚ base_names r&ÚCreateCMakeTargetNamez CMakeNamer.CreateCMakeTargetNameds-€Ü)Ð*:Ó;€IØ�D×;Ñ;Ñ;Ü &Ð'7Ó 8Ð8Ø Ðr(N)r‚rƒr„Ú__doc__r€rr…r(r&rrDs„ñò& Lór(rc óX—|jdd«} |jdd«s3| jd«| j|«| jd«tjj |«\} } } tjj | |j «} tjj| «}tjj||j «}tjj||«}|}|j|i«}|jdi«j|i«}d}|dk(rtjj|«}|jd d «}|jd d «}|jd «}tj|«}|€td|›d|›d�«yt!| d|«t!| d|«|j#|«}g}g}d|vrt%||d|||| «d|vrt'||d|||| «d|vrt)||d||| «|jdg«}g}g}g}g} g}!|D]¹}"tjj+|"«\} }#t,j|#d«}$t/||"«}%|$dk(r|j1|%«Œ^|$dk(r|j1|%«Œu|$dk(r|j1|%«ŒŒt3|#«r| j1|%«Œ©|!j1|%«Œ»|D]²}&|&\}"}'tjj+|'«\} }#t,j|#d«}$|$dk(r|j1|"«ŒW|$dk(r|j1|"«Œn|$dk(r|j1|"«Œ…t3|#«r| j1|"«Œ¢|!j1|"«Œ´d}(|r|dz}(t5| |(|«d})|r|dz})t5| |)|«d}*|r|dz}*t5| |*|«d}+| r|dz}+t5| |+| «d},|!r|dz},t5| |,|!«d}-|(xs|)xs |*xs|+xs|,}.|dk(r�|.s|d z}-t!| |-d!«| jd"«t7| |-«| jd#«| jd$«t7| |-«| jd%«| jd&«|jd'«}/|/�f| jd(«|/D]?}0| jd)«| jt/||0««| jd«ŒA| jd*«| j|j8«| jd+«| j|«|j:�,| jd)«| j|j:«|(r t7| |(d)«|)r t7| |)d)«|*r t7| |*d)«|+r t7| |+d)«|,r t7| |,d)«|-r t7| |-d)«| jd*«||vrd,nd-}1t=| |d.|1«|D]}2t=| |2d.|1«Œ|d/k7�rú|s|st=| |d0d1g«|,r/| jd2«t7| |,d3«| jd4«|+r/| jd2«t7| |,d3«| jd5«|jd6«}3|3€›|d7vr t>d8}3n�|d9k(rd:}3n…|jd;d«r t>d8}3nitjj tjj| «|j «}4d<}3tjj|3|4«}3tA||3«}5t=| ||jBd=z|5«d3}6|}7d3}8|d>k(r!t>d?}9tE|7|9«}7|9}6t>d@}8n:|dAvr!t>dB}:tE|7|:«}7|:}6t>dC}8n|dk7rtdDd |dE|f«|jdF|6«};|jdG|7«}<|jdH«}=|=rdI|=z}=n|8}=t=| |dJ|;«t=| ||jBdKz|<«t=| |dL|=«|;|tjj|5|>«}?tG| |?dMd,gd3«|jdN«}@|@r{|dOz}At5| |A@D�Bcgc]}BtA||B«‘Œc}B«| jdP«| j|«| jdQ«t7| Ad3«| jd*«|jdR«}C|C�t=| |dSCdT«|jdUg«}D|jdVg«}E|jdWg«}F|r3|jI|«}D|jK|«}E|jM|«}FEr|sFr|st=| |dXDd)«nù|r8|s6|s4g}G|GjOD«|GjOE«t=| |dX|Gd)«n¿|r8|s6|s4g}G|GjOD«|GjOF«t=| |dX|Gd)«n…|rDrtQ| |(dXDd)«|r7DsEr3g}G|GjOD«|GjOE«tQ| |)dX|Gd)«|r7DsFr3g}G|GjOD«|GjOF«tQ| |*dX|Gd)«|jdY«}H|H�t=| |dZHd)«|jd[i«}|jS«D])\}I}Jt=| |d\|Iz|JtU|JtV«rd3nd)«Œ+|jd]g«}Kg}Lg}Mg}N|KD]v}O|j#|O«}P|j|Oi«}Q|Qjd d«}R|Rd>k(rLj1P«ŒORd9k(rMj1P«ŒfNj1P«ŒxLsMsNr¬|D]§}S| jd^«| j|S«| jd«LMNfD]Y}TtjjY|T«D]5}U| jd_«| j|U«| jd«Œ7Œ[| jd*«Œ©|d`v}VNjO|«|NsV�sLsMrý| jd^«| j|«| jd«tjjYN«D]5}U| jd_«| j|U«| jd«Œ7Vs`LMfD]Y}TtjjY|T«D]5}W| jd_«| j|W«| jd«Œ7Œ[| jd*«V�rÍ|jdag«D�Xcgc]}Xt[|X«dbkDsŒX‘Œ}Y}X|YsLsM�r˜| jdc«| j|«| jd«Lr–| xrt[L«ddkDxr|dk7}Z|Zr| jde«tjjYL«D]5}U| jd_«| j|U«| jd«Œ7Zr| jdf«MrWtjjYM«D]5}U| jd_«| j|U«| jd«Œ7YratjjYY«D]?}X| jdg«| jtE|Xdh««| jdi«ŒA| jd*«t]| d«t]| d«ycc}Bwcc}Xw)jNÚcircularTÚ standaloneFz #r¬ÚconfigurationsÚmacrizÚtypezÚtoolsetzTarget z has unknown target type z , skipping.ÚTARGETÚTOOLSETr¾rÚrúÚsourcesr rrÚ __asm_srcsÚ__c_srcsÚ __cxx_srcsÚ__linkable_srcsÚ __other_srcsr�Ú __dummy_srcsz(${obj}.${TOOLSET}/${TARGET}/genc/dummy.czif(NOT EXISTS "rZz file(WRITE "z" "") zendif() Ú library_dirszlink_directories(rÕrrÚ(ÚTRUEÚFALSEÚEXCLUDE_FROM_ALLr”ÚLINKER_LANGUAGEÚCrWrz% PROPERTIES HEADER_FILE_ONLY "TRUE") z$ PROPERTIES EXTERNAL_OBJECT "TRUE") Ú product_dir)r�r“rr’r Ústandalone_static_libraryrÚ_OUTPUT_DIRECTORYr‘rr )r“r’r r z,ERROR: What output file should be generated?rÚproduct_prefixÚ product_nameÚproduct_extensionÚ.ÚPREFIXÚ _OUTPUT_NAMEÚSUFFIXÚ GENERATEDÚ include_dirsÚ__include_dirszset_property(TARGET z% APPEND PROPERTY INCLUDE_DIRECTORIES ÚdefinesÚCOMPILE_DEFINITIONSrQÚcflagsÚcflags_cÚ cflags_ccÚ COMPILE_FLAGSÚldflagsÚ LINK_FLAGSÚxcode_settingszXCODE_ATTRIBUTE_%sÚ dependencieszadd_dependencies(rÔ)r�r“r’Ú librariesrztarget_link_libraries(roz-Wl,--start-group z-Wl,--end-group z "z $(SDKROOT)z" )/r¹r\r,r-rÚ RelativePathÚ toplevel_dirrBrCr§ÚInvertRelativePathrFÚxcode_emulationÚ XcodeSettingsÚ&cmake_target_type_from_gyp_target_typeÚprintrmrrÊrårrÙr<rNr½r@rprer|r}rjÚgenerator_default_variablesrKr~r'rcÚ GetCflagsÚ GetCflagsCÚ GetCflagsCCrºrgÚ viewitemsÚ isinstancer×Úuniquerr#rt)[ÚnamerrÚ target_dictsÚ build_dirÚ config_to_useÚoptionsÚgenerator_flagsÚall_qualified_targetsÚflavorr]Ú circular_libsr rÑÚ rel_gyp_fileÚ rel_gyp_dirÚ build_to_topÚ build_to_gypÚpath_from_cmakelists_to_gypÚspecÚconfigrGriÚ target_typeÚtarget_toolsetÚcmake_target_typeÚcmake_target_namer¿rÀÚsrcsÚ s_sourcesÚ c_sourcesÚ cxx_sourcesÚlinkable_sourcesÚ other_sourcesrÿrñÚsrc_typeÚ src_norm_pathÚ extra_sourceÚ real_sourceÚs_sources_nameÚc_sources_nameÚcxx_sources_nameÚlinkable_sources_nameÚother_sources_nameÚdummy_sources_nameÚ has_sourcesr+Ú library_dirÚexclude_from_allÚextra_target_nameÚtarget_output_directoryrHÚcmake_target_output_directoryÚdefault_product_prefixÚdefault_product_nameÚdefault_product_extÚstatic_library_prefixÚshared_library_prefixr5r6Ú product_extÚcmake_target_output_basenameÚcmake_target_outputÚincludesÚ includes_nameÚincluder?rArBÚ cflags_cxxÚflagsrEÚ xcode_settingÚ xcode_valueÚrawDepsÚ static_depsÚ shared_depsÚ other_depsÚrawDepÚdep_cmake_nameÚdep_specÚdep_target_typeÚ extra_depÚdepsrÄÚlinkableÚlib_deprÚ external_libsÚ write_groups[ r&Ú WriteTargetrŸksL€ð "×%Ñ% j°$Ó7€-à × Ñ ˜\¨5Ô 1Ø ‡L�L�ÔØ ‡L�LÐ!Ô"Ø ‡L�L�Ôä—:‘:×2Ñ2Ð3CÓD�.€(ˆAˆqÜ—‘×(Ñ(¨°7×3GÑ3GÓH€,Ü—‘—‘  Ó-€+ô—‘×.Ñ.¨y¸'×:NÑ:NÓO€,ä—‘—‘˜l¨KÓ8€,à ,Ðà × Ñ Ð*¨BÓ /€$Ø �8‰8Ð$ bÓ )× -Ñ -¨m¸RÓ @€&à€.Ø ˆu‚_Ü×(Ñ(×6Ñ6°tÓ<€Nà—‘˜Ð(?Ó@€+Ø—‘˜Ð!8Ó9€+Ø—8‘8˜IÓ&€.ä<×@Ñ@ÀÓMÐØÐÝ Úªkð =ô>à ä ˆf�h  Ô,Ü ˆf�i Ô0à×1Ñ1Ð2BÓCÐà€-Ø€*ð�$ÑÜÐ" D¨¡O°]ÀJØ,¨fô6ð ��_ÜÐ  $ w¡-°À Ø*¨Fô4ð�ÑÜÐ! 4¨¡>°:Ø+¨Vô5ð �‰�)˜RÓ €$ð€)Ø€)Ø€+ØÐØ€-Û €cÜ �W‰W× Ñ ˜cÓ "�F€A€sÜ$×(Ñ(¨¨dÓ3€HÜ Ð!<¸cÓB€Mà�3‚Ø×Ñ�}Õ%Ø �TÒ Ø×Ñ�}Õ%Ø �UÒ Ø×јÕ'Ü �#ŒØ×јmÕ,à×ј=Õ)ðó $€lØ#Ñ€CˆÜ �W‰W× Ñ ˜kÓ *�F€A€sÜ$×(Ñ(¨¨dÓ3€Hà�3‚Ø×Ñ�sÕØ �TÒ Ø×Ñ�sÕØ �UÒ Ø×јÕÜ �#ŒØ×јcÕ"à×ј3Õð$ð €.ÙØ&¨Ñ5€NÜ�F˜N¨IÔ6à€.ÙØ&¨Ñ3€NÜ�F˜N¨IÔ6àÐÙØ(¨<Ñ7ÐÜ�FÐ,¨kÔ:àÐÙØ-Ð0AÑAÐÜ�FÐ1Ð3CÔDàÐÙØ*¨^Ñ;ÐÜ�FÐ.° Ô>ðÐØò$Øò$à!ò$ð'ò$ð$ð ð �LÒ ©Ø*¨^Ñ;ÐÜ�Ð*Ø:ô<à ‡L�LÐ"Ô#Ü�&Ð,Ô-Ø ‡L�L�ÔØ ‡L�LÐ!Ô"Ü�&Ð,Ô-Ø ‡L�L�ÔØ ‡L�L�Ô𗑘NÓ+€,ØÐØ ‡L�LÐ$Ô%Û#ˆ Ø ‡l�l�3ÔØ ‡l�l”<Ð ;¸[ÓIÔJØ ‡l�l�4Õð$ð ‡L�L�Ôà‡,�,Ð ×(Ñ(Ô)؇,�,ˆsÔØ‡,�,Ð Ô!à×ÑÐ+Ø ‡L�L�ÔØ ‡L�LÐ"×+Ñ+Ô,áÜ�&˜.¨#Ô.ÙÜ�&˜.¨#Ô.ÙÜ�&Ð*¨CÔ0ÙÜ�&Ð/°Ô5ÙÜ�&Ð,¨cÔ2ÙÜ�&Ð,¨cÔ2à‡,�,ˆuÔð!1Ð8MÑ M‘fØ")ðä�FÐ-Ø(Ð*:ô<ã%ÐÜ�fÐ/Ø*Ð,<õ>ð&ð �FÓá ™[ܘР1Ð3DÀsÀeÔLñØ ‡l�lÐ1Ô2Ü�FÐ.°Ô3Ø ‡l�lÐ;Ô<ñØ ‡l�lÐ1Ô2Ü�FÐ.°Ô3Ø ‡l�lÐ:Ô;ð#Ÿh™h }Ó5ÐØÐ&Ø Ð9Ñ 9Ü"=¸mÑ"LÑØ Ð*Ò *Ø">ÑØ �8‰8Ð/°Ô 7Ü"=¸mÑ"LÑä—J‘J×+Ñ+¬B¯G©G¯O©O¸HÓ,EØ,3×,@Ñ,@óBˆ à"5Ðä �G‰G�L‰LÐ0°)Ó <ð ô%AØ(CØ(?ó%AÐ!ô�fØØ×+Ñ+Ð.AÑAØ%ô'ð  ÐØ&ÐØÐØÐ&Ò&Ü9Ð:MÑNÐÜ)Ð*>Ø*?óAÐà4ÐÜ7Ð8KÑLÑà Ð=Ñ =Ü9Ð:MÑNÐÜ)Ð*>Ø*?óAÐà4ÐÜ7Ð8KÑLÑà ˜ Ò $Ü Ð ;Ø�k 8¨[ð :ô;ð—X‘XÐ.Ð0FÓG€NØ—8‘8˜NÐ,@ÓA€LØ—(‘(Ð.Ó/€KÙØ˜+Ñ%�kà'€kä�fÐ/°¸>ÔJÜ�fÐ/Ø)×;Ñ;¸nÑLØ$ô&ô�fÐ/°¸;ÔGð$2°LÑ#@À;Ñ#NÐ ÜŸ'™'Ÿ,™,Ð'DØ'CóEÐä�FÐ/°¸v¸hÈÔKð�z‰z˜.Ó)€HÙà'Ð*:Ñ:€mÜ�f˜má"ó $Ù"ˆwô (Ð(CÀWÕ MØ"ñ $ô%ð ‡l�lÐ)Ô*Ø ‡l�lÐ$Ô%Ø ‡l�lÐ:Ô;Ü�F˜M¨2Ô.Ø ‡l�l�5Ôð�j‰j˜Ó#€GØÐܘØ)Ø-ØØô ð*�Z‰Z˜ "Ó %€FØ�z‰z˜* bÓ)€HØ—‘˜K¨Ó,€JÙØ×'Ñ'¨ Ó6€fØ×*Ñ*¨=Ó9€hØ!×-Ñ-¨mÓ<€jñ ™I± Á+ܘР1°?ÀFÈCÕPá ™I©Ø€eØ ‡l�l�6ÔØ ‡l�l�8ÔܘР1°?ÀEÈ3ÕOá ™i©9Ø€eØ ‡l�l�6ÔØ ‡l�l�:ÔܘР1°?ÀEÈ3ÕOñ ‘vܘ °À&È#ÔNá ™¡(ØˆØ � ‰ �VÔØ � ‰ �XÔܘ °À%ÈÔMá ™&¡JØˆØ � ‰ �VÔØ � ‰ �ZÔ Ü˜Ð!1°?ÀEÈ3ÔOð�j‰j˜Ó#€GØÐܘР1°<ÀÈ#ÔNð—Z‘ZÐ 0°"Ó5€NØ&4×&>Ñ&>Ö&@Ñ"ˆ �{ܘР1Ø,¨}Ñ<¸kÜ(¨´cÔ:™ÀõEð'Að �H‰H�^ RÓ (€'à€+Ø€+Ø€*Û€fØ×0Ñ0°Ó8€NØ×Ñ ¨Ó+€HØ—l‘l 6¨4Ó0€OàÐ*Ò*Ø×јÕ(Ø Ð-Ò -Ø×јÕ(à×јÕ'ðñ‘K¡:Ûˆ Ø ‡l�lÐ&Ô'Ø ‡l�l�9ÔØ ‡l�l�4ÔØ  ¨ZÓ8ˆ$Ü—:‘:×%Ñ% dÖ+ˆCØ �,‰,�tÔ Ø �,‰,�sÔ Ø �,‰,�tÕ ñ,ð9ð  ‡l�l�5Õð ðÐOÐ O€(Ø ×Ñ�JÔÙš¡k±[Ø ‡L�LÐ$Ô%Ø ‡L�LÐ"Ô#Ø ‡L�L�ÔÜ�z‰z×!Ñ! *Ö-ˆØ ‡l�l�4ÔØ ‡l�l�3ÔØ ‡l�l�4Õð.ñ Ø  Ó,ˆ$Ü—z‘z×)Ñ)¨$Ö/ˆGØ �,‰,�tÔ Ø �,‰,�wÔ Ø �,‰,�tÕ ñ0ð-ð  ‡L�L�ÔòØ$(§H¡H¨[¸"Ô$=ÓNÑ$=˜SÄÀSÃÈAÃ’SÐ$=€MÐNÙ™ ¢{Ø ‡l�lÐ+Ô,Ø ‡l�lÐ$Ô%Ø ‡l�l�4ÔÙ Ø#ÒP¬¨KÓ(8¸1Ñ(<ÒPÀÈ5Áˆ Ù Ø �,‰,Ð,Ô -Ü—:‘:×%Ñ% kÖ2ˆCØ �,‰,�tÔ Ø �,‰,�sÔ Ø �,‰,�tÕ ð3ñ Ø �,‰,Ð*Ô +Ù Ü—:‘:×%Ñ% kÖ2ˆCØ �,‰,�tÔ Ø �,‰,�sÔ Ø �,‰,�tÕ ð3ñ Ü—:‘:×%Ñ% mÖ4ˆCØ �,‰,�uÔ Ø �,‰,”| C¨Ó6Ô 7Ø �,‰,�uÕ ð5ð  ‡l�l�5Ôä�˜ Ô"Ü�˜Õ!ùò] $ùòbOsã ~" ÷~'÷$~'c ó —|d}|d}tjj|«}tjj |j xsd«}|jdd«} tjjtjj|| |««} tjj|j| «} tjj| d«} tjj| «t| d«} | jd«| jd «tjj|d «\}}}| jd «| j|«| jd «t| d |«d}d}d}||jdg«}tjj!| |j«}|D]u\}}|dk(r tjj||«}|dk(r tjj||«}|dk(sŒVtjj||«}Œwtjj#ddg|«}tjj#ddg|«}tjj#ddg|«}|r t| d|«|r t| d|«|r t| d|«| jd«|r t| d|«t| dd«t| dd«| jd«| jd«| jd «| jd«|d!k7r| jd"«| jd«t%|«}t'«}|d#D]V}tjj)||tjj|««D]}|j+|«ŒŒX|D]f}|d!k(rKtjj|«\}}}||}tj,j/|||«t1|||| |||||| « Œh| j3«y)$Nr\r]r8Ú output_dirrÅzCMakeLists.txtÚwz2cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) zcmake_policy(VERSION 2.8.8) éÿÿÿÿzproject(rrÚ configurationÚmake_global_settingsÚARÚCCÚCXXÚ AR_targetÚ CC_targetÚ CXX_targetÚCMAKE_ARÚCMAKE_C_COMPILERÚCMAKE_CXX_COMPILERzenable_language(ASM) ÚCMAKE_ASM_COMPILERÚbuilddirz${CMAKE_CURRENT_BINARY_DIR}Úobjz${builddir}/objr¬z(set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1) z*set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1) rz'set(CMAKE_NINJA_FORCE_RESPONSE_FILE 1) Ú build_files)r,r-r.rBrCÚrelpathÚgenerator_outputr¹rGrFrKÚEnsureDirExistsÚopenr\rrmrLÚGetEnvironFallbackrr·Ú AllTargetsrrMÚMergeGlobalXcodeSettingsToSpecrŸÚclose)rrYÚdatar0r[r\r]r_Ú generator_dirr¡rZÚtoplevel_buildÚ output_filer]r Úproject_targetrÑÚarrrr¥rcÚkeyrbrXr^Ú build_filerrfs r&ÚGenerateOutputForConfigrÃ=sâ€à �9Ñ €'ØÐ,Ñ-€/Ü �:‰:× Ñ  Ó '€&ô —'‘'—/‘/ '×":Ñ":Ò"A¸cÓB€-ð×"Ñ" <°Ó7€*ô�g‰g×ÑœrŸw™wŸ|™|¨MØ,6Ø,9ó ;ó<€)ô—7‘7—<‘< × 4Ñ 4°iÓ@€.ä—‘— ‘ ˜^Ð-=Ó>€+܇*�*×ј[Ô)ä � ˜SÓ !€&؇,�,ÐDÔE؇,�,Ð.Ô/ä #§ ¡ × ?Ñ ?À ÈBÁÓ PÑ€(ˆN˜A؇,�,ˆzÔØ‡,�,ˆ~ÔØ‡,�,ˆuÔä ˆf�o }Ô5à €"Ø €"Ø €#à˜h™×+Ñ+Ð,BÀBÓGÐÜ—‘×.Ñ.¨yØ/6×/CÑ/CóE€,ã(�j€cˆ5Ø ˆd‚{Ü �7‰7�<‰<˜  eÓ ,€bØ ˆd‚{Ü �7‰7�<‰<˜  eÓ ,€bØ ˆeƒ|Ü �G‰G�L‰L˜ uÓ -�cð )ô ‡z�z×$Ñ$ k°4Ð%8¸"Ó=€"Ü ‡z�z×$Ñ$ k°4Ð%8¸"Ó=€"Ü � ‰ ×%Ñ% |°UÐ&;¸SÓA€#áÜ�˜  BÔ'ÙÜ�Ð*¨BÔ/ÙÜ�Ð,¨cÔ2ð ‡,�,Ð'Ô(ñÜ�Ð,¨bÔ1ä ˆf�jÐ"?Ô@Ü ˆf�eÐ.Ô/؇,�,ˆtÔð ‡,�,Ð:Ô;؇,�,Ð<Ô=؇,�,ˆtÔð  ˆu‚_Ø ‡L�LÐ;Ô<؇,�,ˆtÔä �[Ó !€%ô›%ÐØ˜=Ô)€jÜŸJ™J×1Ñ1°+Ø2>Ü24·'±'×2BÑ2BÀ:Ó2NöPÐð×ÑÐ 0Õ1ñPð*ó &ÐØ �‚Ü—z‘z×6Ñ6Ð7GÓH�n€h��1Ø Ð*Ñ +€dÜ ×Ñ×8Ñ8¸¸h¹ÈÔNä�Ð'¨°yÀ-ؘÐ*?ÀÈõQð &ð ‡,�,….r(cóΗ|d}|d}tjj|jxsd«}|j dd«}|D]—}tjj tjj |||««}gd¢} td|›d| ›�«tj| |¬ «d d |g} td |›d| ›�«tj| «Œ™y) Nr\r]r8r¡rÅ)Úcmakez-GÚNinjaz Generating [z]: )ÚcwdÚninjaz-Cz Building [) rBrCr³r´r¹rGrFrPÚ subprocessÚ check_call) r»rr0r\r]r¼r¡Ú config_namerZÚ argumentss r&Ú PerformBuildrͰsÌ€Ø �9Ñ €'ØÐ,Ñ-€/ô—'‘'—/‘/ '×":Ñ":Ò"A¸cÓB€-ð×"Ñ" <°Ó7€*ã#€kô—‘× Ñ ¤§¡§¡¨mØ.8Ø.9ó";ó<€Iò)€IÝ ¢;± Ð :Ô;Ü×ј)¨Õ3à˜$  Ð*€IÝ ¢©iÐ 8Ô9Ü×ј)Õ$ñ$r(có–—tjtjtj«|\}}}}}t|||||«yr4)ÚsignalÚSIGINTÚSIG_IGNrÃ)ÚarglistrrYr»r0rËs r&ÚCallGenerateOutputForConfigrÓÊs:€ô ‡-�-”— ‘ œvŸ~™~Ô.à9@Ñ6€+ˆ|˜T 6¨;ܘ+ |°T¸6À;ÕOr(có¨—|jdi«jdd«}|rt|||||«y||dd}|drU tjt |««}g}|D].}|j |||||f«|j t|«Œ0y|D]}t|||||«Œy#t$r} j«| ‚d} ~ wwxYw)Nr]rgrrÚparallel) r¹rÃÚmultiprocessingÚPoolr#r½ÚmaprÓÚKeyboardInterruptÚ terminate) rrYr»r0Ú user_configÚ config_namesÚpoolÚarglistsrËr8s r&ÚGenerateOutputrßÓsè€Ø— ‘ Ð,¨bÓ1×5Ñ5°hÀÓE€+ÙܘK¨°tØ" Kõ1ð   ¨A¡Ñ/Ð0@ÑA€LØ ˆjÒð Ü×#Ñ#¤C¨ Ó$5Ó6ˆØˆÛ'ˆKØ �/‰/˜;¨ °dØ! ;ð0ô 1à �(‰(Ô.°Õ 9ñ(ó&ˆ+Ü  ¨\¸4Ø &¨ õ 5ñ&øô òØ �‰Ô؈ûðúsÁAB1Â1 CÂ:C à C)rr4)2rÚ __future__rrÖrBrÏÚstringrÉÚ gyp.commonr,Úgyp.xcode_emulationÚ maketransr˜Ú NameErrorr×rQrEÚ$generator_supports_multiple_toolsetsÚ4generator_wants_static_library_dependencies_adjustedr<r'r1r>r@rKrNrUrcrgrjrmrprtrerørzrOr™rÊrÍrårr rrrŸrÃrÍrÓrßr…r(r&ÚrèsJðñ õ4&ãÛ Û Û ÛÛÛðà×Ñ€*ðØ�rðà�rðð�uðð�tð ð �uð ð �uð ðÐ0ðð Ð ððÐ8ðð˜\ðð�ððÐ)ððÐ/ððÐ)ððÐ)ðð Ð'ð!ð"Ð*ð#Ðð(H€à'+Ð$Ø7;Ð4ð Ø Ø Ø Ø Ø ñ Ðò8ò Cò Bò !ò Kò"=òIò& ò ó òò òóô/�fô/ñ Ð 0°$¸ ÓBÙ# M°8¸YÓGÙ# M°8¸YÓGÙ$ ]°H¸iÓHÙ Ð-¨y¸$Ó ?ñ *Ð&ò7òL*ò^;òo!òdiòX9ò9ô$�ô$òNO"òdpòf%ò4Pó5øðO%òØ�}‰}‚*ðús¦ D Ä D!Ä D!