File: //lib/python3.6/site-packages/gyp/generator/__pycache__/msvs.cpython-36.pyc
3
?9�^� � @ s< d dl mZ d dlmZ d dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dl
jZd dljjZd dljZd dljZd dljZd dljZd dljZd dljZd dlj Z d dlm!Z! d dlm"Z" ej#d�Z$dddd ddd
ddd
dddddddddd�Z%ddgZ&dddddddd d!d"d#d$d%d&d'gZ'da(d(d)gZ)da*da+d*d+� Z,da-d,d-� Z.d.d/� Z/d0d1� Z0�dd3d4�Z1�dd6d7�Z2�dd8d9�Z3d:d;� Z4d<d=� Z5d>d?� Z6d@dA� Z7dBdC� Z8dDdE� Z9dFdG� Z:dHdI� Z;dJdK� Z<dLdM� Z=dNdO� Z>dPdQ� Z?dRdS� Z@dTdU� ZAdVdW� ZBdXdY� ZCdZd[� ZDej#d\�ZEd]d^� ZFej#d_�ZGd`da� ZHdbdc� ZIej#dd�ZJdedf� ZKdgdh� ZLdidj� ZMdkdl� ZNdmdn� ZOdodp� ZPdqdr� ZQdsdt� ZRdudv� ZSdwdx� ZTdydz� ZUd{d|� ZVd}d~� ZWdd�� ZXd�d�� ZYd�d�� ZZd�d�� Z[d�d�� Z\d�d�� Z]d�d�� Z^d�d�� Z_d�d�� Z`d�d�� Zad�d�� Zbd�d�� Zcd�d�� Zdd�d�� Zed�d�� Zfd�d�� Zgd�d�� Zhd�d�� Zid�d�� Zjd�d�� Zkd�d�� Zld�d�� Zmd�d�� Znd�d�� Zod�d�� Zpd�d�� Zqd�d�� Zrd�d�� Zsd�d�� Ztd�d�� Zud�d�� Zvd�d�� Zwd�d�� Zxd�d Zyd�dĄ Zzd�dƄ Z{d�dȄ Z|d�dʄ Z}d�d̄ Z~d�d΄ Zd�dЄ Z�d�d҄ Z�d�dԄ Z�G d�dք d�e��Z�d�d Z�d�dڄ Z�d�d܄ Z�d�dބ Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d� Z�d�d�� Z�ej#d��Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z��d �d� Z��d�d� Z��d�d� Z��d�d� Z��d�d � Z��d
�d� Z��d�d
� Z��d�d� Z��d�d� Z��d�d� Z�dS ( � )�print_function)�OrderedDictN)�GypError)�
OrderedSetz
^[A-F0-9\-]+$� z.sysz.exez.libz.dllz $(IntDir)z $(OutDir)obj/global_intermediate�winz $(OutDir)z$(OutDir)libz$(InputName)z$(InputDir)z$(InputExt)z$(InputFileName)z$(InputPath)z$(ConfigurationName))Z
DRIVER_PREFIXZ
DRIVER_SUFFIXZEXECUTABLE_PREFIXZEXECUTABLE_SUFFIXZSTATIC_LIB_PREFIXZSHARED_LIB_PREFIXZSTATIC_LIB_SUFFIXZSHARED_LIB_SUFFIXZINTERMEDIATE_DIR�SHARED_INTERMEDIATE_DIRZOSZPRODUCT_DIRZLIB_DIRZRULE_INPUT_ROOTZRULE_INPUT_DIRNAMEZRULE_INPUT_EXTZRULE_INPUT_NAMEZRULE_INPUT_PATHZCONFIGURATION_NAME�msvs_cygwin_dirs�
msvs_props�msvs_cygwin_shellZmsvs_large_pdbZ
msvs_shard�msvs_external_builder�msvs_external_builder_out_dir�msvs_external_builder_build_cmd�msvs_external_builder_clean_cmd�#msvs_external_builder_clcompile_cmd�msvs_enable_winrt�msvs_requires_importlibrary�msvs_enable_winphone�msvs_application_type_revision�msvs_target_platform_version�msvs_target_platform_minversion�msvs_precompiled_header�msvs_precompiled_sourcec C s� t jdkrdS t st r�tjjd�} tjjd�}| s>| r�tjdddgtj d �}|j
� d
}tjdtj
�}|j|�}|r�|jd�}tjd
tj
�}|j|�}|r�|jd�} | a|attfS )N�win32�cygwin�DOMAIN�USERNAMEZ
USERDOMAINZnet�configZWorkstation)�stdoutr z^User name\s+(\S+)� z^Logon domain\s+(\S+))r r )r r )�sys�platform�
cached_domain�cached_username�os�environ�get�
subprocess�Popen�PIPEZcommunicate�re�compile� MULTILINE�search�group)�domain�username�callr Zusername_reZusername_matchZ domain_reZdomain_match� r2 �/usr/lib/python3.6/msvs.py�_GetDomainAndUserNamel s(
r4 c C s( t jj| �}| jd�|jd�kr$|} | S )z�Normalize the path.
But not if that gets rid of a variable, as this may expand to something
larger than one directory.
Arguments:
source: The path to be normalize.d
Returns:
The normalized path.
�$)r$ �path�normpath�count)�sourceZ
normalizedr2 r2 r3 �_NormalizedSource� s r: c C sf t r2| r2tjj| � r2| d dk r2tjjt | �} | jdd�} t| �} | rb| d dkrb| dd� } | S ) z�Convert paths to a form that will make sense in a vcproj file.
Arguments:
path: The path to convert, may contain / etc.
Returns:
The path with all slashes made into backslashes.
r r5 �/�\r N���r= )�fixpath_prefixr$ r6 �isabs�join�replacer: )r6 r2 r2 r3 �_FixPath� s $rB c C s dd� | D �S )z"Fix each of the paths of the list.c S s g | ]}t |��qS r2 )rB )�.0�ir2 r2 r3 �
<listcomp>� s z_FixPaths.<locals>.<listcomp>r2 )�pathsr2 r2 r3 � _FixPaths� s rG Tc
C sf |sg }g }g }t � }x�| D ]�}t|�dkr^tdj|| ��} | |krR|j| � q�|j| � q|r�|j� r�|j|d �s�g ||d <