ó  îRac@sádZddlZddlZddlZddlZyeWnek rZd„ZnXejƒidd6dd6Z dd „Z d e fd „ƒYZ d e fd „ƒYZ de fd„ƒYZde fd„ƒYZdS(s7New implementation of Visual Studio project generation.iÿÿÿÿNcCs||k||kS(N((txty((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pytcmpss&{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}tprojects&{2150E333-8FDC-42A3-9474-1A3956D46DE8}tfoldertmsvs_newcCs†tjt|ƒt|ƒjdƒƒjƒjƒ}d|d d|dd!d|dd!d|dd!d|dd!d }|S( s#Returns a GUID for the specified target name. Args: name: Target name. seed: Seed for MD5 hash. Returns: A GUID-line string calculated from the name and seed. This generates something which looks like a GUID, but depends only on the name and seed. This means the same name/seed will always generate the same GUID, so that projects and solutions which refer to each other can explicitly determine the GUID to refer to explicitly. It also means that the GUID will not change when the project for a target is rebuilt. sutf-8t{it-i iii t}(thashlibtmd5tstrtencodet hexdigesttupper(tnametseedtdtguid((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pytMakeGuid s4NtMSVSSolutionEntrycBseZd„Zd„ZRS(cCs+t|j|jƒf|j|jƒfƒS(N(RRtget_guid(tselftother((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyt__cmp__:scCs|j|ƒdkS(Ni(R(RR((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyt__lt__>s(t__name__t __module__RR(((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR9s t MSVSFoldercBs,eZdZddddd„Zd„ZRS(s.Folder in a Visual Studio project or solution.cCsz|r||_ntjj|ƒ|_||_||_tt|pHgƒƒ|_t|p`gƒ|_t d|_ dS(sÄInitializes the folder. Args: path: Full path to the folder. name: Name of the folder. entries: List of folder entries to nest inside this folder. May contain Folder or Project objects. May be None, if the folder is empty. guid: GUID to use for folder, if not None. items: List of solution items to include in the folder project. May be None, if the folder does not directly contain items. RN( RtostpathtbasenameRtsortedtlisttentriestitemstENTRY_TYPE_GUIDStentry_type_guid(RRRR"RR#((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyt__init__Es    cCs1|jdkr*t|jddƒ|_n|jS(NRt msvs_folder(RtNoneRR(R((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyRasN(RRt__doc__R(R&R(((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyRBst MSVSProjectcBsGeZdZdddddddd„Zd„Zd„Zd„ZRS(sVisual Studio project.c Cs¢||_||_||_||_|pItjjtjj|ƒƒd|_t|p[gƒ|_ t d|_ |rƒ||_ n i|_ ||_ d|_dS(s¹Initializes the project. Args: path: Absolute path to the project file. name: Name of project. If None, the name will be the same as the base name of the project file. dependencies: List of other Project objects this project is dependent upon, if not None. guid: GUID to use for project, if not None. spec: Dictionary specifying how to build this project. build_file: Filename of the .gyp file that the vcproj file comes from. config_platform_overrides: optional dict of configuration platforms to used in place of the default for this target. fixpath_prefix: the path used to adjust the behavior of _fixpath iRN(RRtspect build_fileRtsplitextRRR!t dependenciesR$R%tconfig_platform_overridestfixpath_prefixR(tmsbuild_toolset( RRRR.RR+R,R/R0((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR&ns    +    cCst|p gƒ|_dS(N(R!R.(RR.((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pytset_dependencies“scCs+|jdkr$t|jƒ|_n|jS(N(RR(RR(R((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR–s cCs ||_dS(N(R1(RR1((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pytset_msbuild_toolset§sN(RRR)R(R&R2RR3(((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR*ks   #  t MSVSSolutioncBs2eZdZdded„Zejjd„Z RS(sVisual Studio solution.cCs`||_||_||_t|p'gƒ|_|rC||_nddg|_|jƒdS(s¹Initializes the solution. Args: path: Path to solution file. version: Format version to emit. entries: List of entries in solution. May contain Folder or Project objects. May be None, if the folder is empty. variants: List of build variant strings. If none, a default list will be used. websiteProperties: Flag to decide if the website properties section is generated. s Debug|Win32s Release|Win32N(RtwebsitePropertiestversionR!R"tvariantstWrite(RRR6R"R7R5((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR&°s     cCs^tƒ}|j}xW|rl|jdƒ}||kr=qn|j|ƒt|tƒr||j7}qqWt|ƒ}||jƒ}|jd|j j ƒƒ|jd|j j ƒƒt jj |jƒd}x_|D]W}tjj|j|ƒ}|jddƒpd}|jd|j|j||jƒfƒ|jrT|jdƒnt|tƒr·|jr·|jd ƒx(|jD]} |jd | | fƒqƒW|jd ƒq·nt|tƒr&|jr&|jd ƒx4|jD])} |jd | jƒ| jƒfƒqæW|jd ƒq&n|jd ƒqÜW|jdƒ|jdƒx(|jD]} |jd | | fƒq[W|jdƒg} i} xF|D]>}t|tƒrœ| j|jƒƒ|j| |jƒ GlobalSection(SolutionConfigurationPlatforms) = preSolution s EndGlobalSection s> GlobalSection(ProjectConfigurationPlatforms) = postSolution s %s.%s.ActiveCfg = %s s %s.%s.Build.0 = %s s2 GlobalSection(SolutionProperties) = preSolution s HideSolutionNode = FALSE s. GlobalSection(NestedProjects) = preSolution s EndGlobal N( tsetR"tpoptaddt isinstanceRR RtwriteR6tSolutionVersiont DescriptionRtsplittgyptcommont RelativePathtreplaceR%RRR5R#R*R.R7tappendR/tsorttgettanytclose(Rtwritert all_entriestentries_to_checktetftsln_roott relative_patht folder_nametiRtvt config_guidstconfig_guids_overridestgtnvtsubentry((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR8Ös˜              '              1  + N( RRR)R(tTrueR&RCRDt WriteOnDiffR8(((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyR4­s %(R)R Rtrandomt gyp.commonRCRt NameErrorRR$RtobjectRRR*R4(((si/opt/alt/alt-nodejs8/root/usr/lib/node_modules/npm/node_modules.bundled/node-gyp/gyp/pylib/gyp/MSVSNew.pyts"          )B