# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import print_function
import ntpath
import os
import posixpath
import re
import subprocess
import sys
from collections import OrderedDict
import gyp.common
import gyp.easy_xml as easy_xml
import gyp.generator.ninja as ninja_generator
import gyp.MSVSNew as MSVSNew
import gyp.MSVSProject as MSVSProject
import gyp.MSVSSettings as MSVSSettings
import gyp.MSVSToolFile as MSVSToolFile
import gyp.MSVSUserFile as MSVSUserFile
import gyp.MSVSUtil as MSVSUtil
import gyp.MSVSVersion as MSVSVersion
from gyp.common import GypError
from gyp.common import OrderedSet
PY3 = bytes != str
# Regular expression for validating Visual Studio GUIDs. If the GUID
# contains lowercase hex letters, MSVS will be fine. However,
# IncrediBuild BuildConsole will parse the solution file, but then
# silently skip building the target causing hard to track down errors.
# Note that this only happens with the BuildConsole, and does not occur
# if IncrediBuild is executed from inside Visual Studio. This regex
# validates that the string looks like a GUID with all uppercase hex
# letters.
VALID_MSVS_GUID_CHARS = re.compile(r"^[A-F0-9\-]+$")
generator_supports_multiple_toolsets = gyp.common.CrossCompileRequested()
generator_default_variables = {
"DRIVER_PREFIX": "",
"DRIVER_SUFFIX": ".sys",
"EXECUTABLE_PREFIX": "",
"EXECUTABLE_SUFFIX": ".exe",
"STATIC_LIB_PREFIX": "",
"SHARED_LIB_PREFIX": "",
"STATIC_LIB_SUFFIX": ".lib",
"SHARED_LIB_SUFFIX": ".dll",
"INTERMEDIATE_DIR": "$(IntDir)",
"SHARED_INTERMEDIATE_DIR": "$(OutDir)/obj/global_intermediate",
"OS": "win",
"PRODUCT_DIR": "$(OutDir)",
"LIB_DIR": "$(OutDir)lib",
"RULE_INPUT_ROOT": "$(InputName)",
"RULE_INPUT_DIRNAME": "$(InputDir)",
"RULE_INPUT_EXT": "$(InputExt)",
"RULE_INPUT_NAME": "$(InputFileName)",
"RULE_INPUT_PATH": "$(InputPath)",
"CONFIGURATION_NAME": "$(ConfigurationName)",
}
# The msvs specific sections that hold paths
generator_additional_path_sections = [
"msvs_cygwin_dirs",
"msvs_props",
]
generator_additional_non_configuration_keys = [
"msvs_cygwin_dirs",
"msvs_cygwin_shell",
"msvs_large_pdb",
"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",
]
generator_filelist_paths = None
# List of precompiled header related keys.
precomp_keys = [
"msvs_precompiled_header",
"msvs_precompiled_source",
]
cached_username = None
cached_domain = None
# TODO(gspencer): Switch the os.environ calls to be
# win32api.GetDomainName() and win32api.GetUserName() once the
# python version in depot_tools has been updated to work on Vista
# 64-bit.
def _GetDomainAndUserName():
if sys.platform not in ("win32", "cygwin"):
return ("DOMAIN", "USERNAME")
global cached_username
global cached_domain
if not cached_domain or not cached_username:
domain = os.environ.get("USERDOMAIN")
username = os.environ.get("USERNAME")
if not domain or not username:
call = subprocess.Popen(
["net", "config", "Workstation"], stdout=subprocess.PIPE
)
config = call.communicate()[0]
if PY3:
config = config.decode("utf-8")
username_re = re.compile(r"^User name\s+(\S+)", re.MULTILINE)
username_match = username_re.search(config)
if username_match:
username = username_match.group(1)
domain_re = re.compile(r"^Logon domain\s+(\S+)", re.MULTILINE)
domain_match = domain_re.search(config)
if domain_match:
domain = domain_match.group(1)
cached_domain = domain
cached_username = username
return (cached_domain, cached_username)
fixpath_prefix = None
def _NormalizedSource(source):
"""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.
"""
normalized = os.path.normpath(source)
if source.count("$") == normalized.count("$"):
source = normalized
return source
def _FixPath(path):
"""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.
"""
if (
fixpath_prefix
and path
and not os.path.isabs(path)
and not path[0] == "$"
and not _IsWindowsAbsPath(path)
):
path = os.path.join(fixpath_prefix, path)
path = path.replace("/", "\\")
path = _NormalizedSource(path)
if path and path[-1] == "\\":
path = path[:-1]
return path
def _IsWindowsAbsPath(path):
"""
On Cygwin systems Python needs a little help determining if a path
is an absolute Windows path or not, so that
it does not treat those as relative, which results in bad paths like:
'..\\C:\\<some path>\\some_source_code_file.cc'
"""
return path.startswith("c:") or path.startswith("C:")
def _FixPaths(paths):
"""Fix each of the paths of the list."""
return [_FixPath(i) for i in paths]
def _ConvertSourcesToFilterHierarchy(
sources, prefix=None, excluded=None, list_excluded=True, msvs_version=None
):
"""Converts a list split source file paths into a vcproj folder hierarchy.
Arguments:
sources: A list of source file paths split.
prefix: A list of source file path layers meant to apply to each of sources.
excluded: A set of excluded files.
msvs_version: A MSVSVersion object.
Returns:
A hierarchy of filenames and MSVSProject.Filter objects that matches the
layout of the source tree.
For example:
_ConvertSourcesToFilterHierarchy([['a', 'bob1.c'], ['b', 'bob2.c']],
prefix=['joe'])
-->
[MSVSProject.Filter('a', contents=['joe\\a\\bob1.c']),
MSVSProject.Filter('b', contents=['joe\\b\\bob2.c'])]
"""
if not prefix:
prefix = []
result = []
excluded_result = []
folders = OrderedDict()
# Gather files into the final result, excluded, or folders.
for s in sources:
if len(s) == 1:
filename = _NormalizedSource("\\".join(prefix + s))
if filename in excluded:
excluded_result.append(filename)
else:
result.append(filename)
elif msvs_version and not msvs_version.UsesVcxproj():
# For MSVS 2008 and earlier, we need to process all files before walking
# the sub folders.
if not folders.get(s[0]):
folders[s[0]] = []
folders[s[0]].append(s[1:])
else:
contents = _ConvertSourcesToFilterHierarchy(
[s[1:]],
prefix + [s[0]],
excluded=excluded,
list_excluded=list_excluded,
msvs_version=msvs_version,
)
contents = MSVSProject.Filter(s[0], contents=contents)
result.append(contents)
# Add a folder for excluded files.
if excluded_result and list_excluded:
excluded_folder = MSVSProject.Filter(
"_excluded_files", contents=excluded_result
)
result.append(excluded_folder)
if msvs_version and msvs_version.UsesVcxproj():
return result
# Populate all the folders.
for f in folders:
contents = _Conver
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
模板包含css样式封装,上传组件封装,通用弹窗表格封装,表单案例,表格分页器,echarts常用图表类型封装,echarts地图案例,twaver代码封装,瓦片图使用案例,使用promise二次封装axios兼容所有请求格式,模块加载loading封装,input输入限制封装案例,自定义指令拖拽等案例,动态路由使用案例,路由守卫案例,aes加密代码封装,keepalive组件1缓存结合路由使用,vuex模块化用例,前端mock代码接口模拟返回,嵌套路由写法,首页路由传参可刷新常用写法,常用格栅布局等。
资源详情
资源评论
资源推荐
收起资源包目录
vue2,vue-cli3 PC版项目模板,公司项目如有需要可直接套用此模板,下载即可运行,无需另外下载。可先查看本人所传视频。 (64522个子文件)
00347ed681be703800f4a46237e624321b26971c7c86d5f6405dcf4a8ac3 1KB
00376bade4efbde543c96b54cc9ca8b0f2159aa7a70e59c9913ebabfaa24 1KB
00d842bd808ee8fe53f757c780ef7f57f01df8828758baf023133ca9fd2e 1KB
012e7cb70361c934e66883dbef1e3417725d65457e3c93ae00852f64b10d 1KB
019cc02cefe6ae9681950cd3350d89516830bf80a898ea9e7bbcb043d474 1KB
01bbaf52690815c98860eab7d0ea6d79abc10eaf7d9a8091cbc0f7648679 1KB
01db5be22f773bea619276fed91316df709c2db4454529cb773b7eb6a666 1KB
02ace6aa8790c60129a394f64cc5d0421a34c681c4caade041fc4bf5c959 1KB
02d3c4e24ac8bd615e96cf5661213565e82e076ea0ca1bba28d3673ad32d 1KB
030c0ff7fbb73cfab6e2131bfc1ca3e14c416efd2a8f2f1d7a1acb1db3af 1KB
031f74f0190ca7b3a5cbeedc90c6f7e3f06993fc555acfbb8682abca1402 1KB
035f2aa8cdfdd87ef955bcb62317c16dc61fb26ee6daa611a014e83bf851 1KB
03e6fb71d3eeb21c02e8c306b2f51388325f0c8b4863d75673c9e1f5a556 1KB
04df76f207134216481ae517a01f93ff8e1e2e3d0bbe2e0f3ac0e30c7d74 1KB
04e08edafeedbf290303f83fe71d888b813bddbd4cf19e06153c66a3d54b 1KB
0525d2784df32551770b64f94c2e419d1fb0a6d1e77dfd7166bb72266ddc 1KB
0557eeb4b5908794b95bfa6fae6f1ea174c36d6583124b3691f74608088b 1KB
059d8a86931a327c52d9592875ecf09b9ce509bce9d0e7319d5a6f2d9f37 1KB
05a62468a11d180fa7708dbb1765bf34a19b4ae5500bc4022d2483efbe75 1KB
05f6140a0d636d0392979ccc5fc3cb919ee2fb2e32d03d4c69a1402cfe24 1KB
0608a0674a7c166ec6e1ae59d5fb4e00f30ff0d6cd29c7c073c6e6c1df54 1KB
062377919fc9ef0bdd32f1b30685bf3ca462eb9aaad49bb951be74bf967a 1KB
06642d2f0e328ed0b8db34210e2aef984153e96f1d6b9cb115a4909bb789 1KB
06c0ecf5822b3913118fec930090928897ae12e11c6aa4b25913b5e09c63 1KB
078e49027508040f16c8943a2b15923f53b8036c2842dc25a00981a3680d 1KB
0791ad6730b1029dec543b1bbe7624025d2bee85051ad717a4577defed84 1KB
0824657537db138e77bdc1a533b869390a3d9ddaa34d2b51859bd6173514 1KB
08424435a96b16c81f6b0f92f350f6d1d3f3e468654b88bdae059a398085 1KB
089e50ba19bd4e41b2996ab4a3b59e104411aec92207d077d7ea8811ca20 1KB
08a3758c1faa3732024f341a00c449e7dd0a8fe6584f45e82bb227d9451a 1KB
08a62a9194c0276aebb228d6e1d6f7eb1d7ed58c23f5c320a4d3e29c5ca9 1KB
08acd91dce827b92aefb79a6d3858d448f579072a4772055f59b74a768c3 1KB
08c60c92803f57143864e041af90dfd1c9f3566984da96e5ee50078cdea1 1KB
099a54646315afe16912ad4edff23a86dff9d40698d78d157a228be66789 1KB
0a643de616346f773c1b14a2276549925aaa25acf4ecdc66d18f0561788f 1KB
0b236d9e3d793ea7045617929b355c86236f0f5642cb5d08e1a4eeca40c0 1KB
0b3021b088a773b0f4310a2d16b66ec2496f73dffecf4d8fcf5c5643e796 1KB
0b55f374b14457c731b863078dec1f3481ec14589c7009bd9cdb4a6ec346 1KB
0b91c7a6f35c234017f0ea21236057c05a1de00c146d8c65bb10b4dd0b70 1KB
0bfb786aeb3d4eb0489e68701514093edd7f0ad2a50a149fde8b71554a5c 1KB
0c77f7500c7c23d4559ad5b08bbb93367cc7d40e1cc9b586f33a2f1e79ce 1KB
0cc0efdc3a8d9ece662877f984374cc72718dbbb2482b6c4a100f9ee232e 1KB
0d1c83ce7628ade718eaffa650cef9a3558fa9d996319a039d4a3027078d 1KB
0d3515a313f3090313481f41e1e4e3450532069c083598c671ec38f8427c 1KB
0dd1a1a518a82f1fc0cfa9fd8baa122f472310668f88ef1c824cd58548f2 1KB
0e484a7b618cb5722242047329ff756bdb3fd6537b4c7d7e3649baae62ff 1KB
0ea6c4d1b2ce5c385a01e383f725b77f5d647fb815cbe3cf75a8f5d7e643 1KB
0ff2b10d2f649e8f6042e3232e135edbdf7440ba3323d6963dd8396ab974 1KB
sshpk-conv.1 4KB
he.1 3KB
jsesc.1 3KB
jsesc.1 3KB
sshpk-sign.1 2KB
sshpk-verify.1 2KB
cssesc.1 2KB
10774e013edfcf46a240165ee29b82335208840664d82e5a8e178762c379 1KB
10ee87b9393e0e944900c5d363ab8e4a261151977013b9a418b08c1dbe5e 1KB
11062e6556b5a0b8e45d173f53126a82e42dc9ae6bbc1a2c6be3aab2de73 1KB
110c1cb86452672369dd6c8f2eaea7e1424774506cc431a1b7a5ead88427 1KB
113ee5eccc1174a1dc5e8d9acf8e6fceaed79deb4cf84a119fa580d59a11 1KB
13602e7b3e9a1d24375fa515a51e730c58a7ecc4eec0c1da0b5220feaebf 1KB
1392aee48d82605e41a11811a66dfd1807fd4e4e119a6091808734272eee 1KB
139b668ec27c97528ea679d9702600dabb9a925b6913a9e86ded6ae3202e 1KB
13b4ec04e2d061f7413908d0f0421e6785029173fa75b52ed85d23530d9f 1KB
142855415f23dc7bad28a7969a634ee1f3890a367ff819dc466cada6f26b 1KB
1436d7fd9c02a2597ed27606b52d9cbdda5db6d33321ba76a52e133205c7 1KB
146dfaf7c455205dba20b3a927a65a9cdcc35c81dea66681ede9bff2da71 1KB
14ed666818f4bb2b37a7e8c8a36ffad1bb7cd4f349b6f14f9256afd59b2c 1KB
15a6f28617209bdd73723ba1b95f9550dc4f112e91b5b8e3d0d9c72645d9 1KB
1670edb3693540d5dfffb45c1298e5b604bf2a8c3f393332b5cbfee6741f 1KB
168edd5d7ef1ceef03d9fd9ba2b3e629be5c0f3fbe9ae9b271ce87cb88a1 1KB
16cdcb3716c59839710952fbe57fa9bb0e5c8d5db71ad1b99c743d6e9b6c 1KB
172d698e5a35a4e970c0495ae5abe481154d1f9cf1b89cf0d2f2be1b7f50 1KB
17e78c075e93ac4a9aaa538322bb5beece8b4aea3b38b7853989413ec189 1KB
1812534800168fe8fcd2a380a1ea5769340a699d90ab8f40643a674e5c83 1KB
191b33c9fffac129a51bbaace69e008683041b9be71f1a95a006fb565d0e 1KB
194e9ee63dc8060a39dcd276b5ae52f2b4ef58ee21968d53599af9cc5549 1KB
198f0d4b1fba4ce57839ce713b815f9101fbd2a55d23e4d962016e0ef051 1KB
19c7675edc02d0250927db8f5e7feb7cabfe333ba1e71249a0c106877c5a 1KB
19da35e2afa55317e80439e331fb370168eea9004239e208a849a0702d8d 1KB
1a07d7ef672dc66c0536d599b1a0913966a707553b9acd5d3ede7682ba5a 1KB
1a20321e1e0679e8a33a1551b883b3b3150c683955645e9f281f6123656b 1KB
1a29506d2f65c8a30babe6954f2af76309b0c06b1e6c1f277be651c9a9fe 1KB
1a86f8581426be0502ab5c91318898fb2addcf8014d25b096bb351684d49 1KB
1b0486782c0b8a8640945b66f9d58e10a0422ba4f1b9d978629b0ce07cf4 1KB
1b17fe2abc1107d56cb3aa0fef00698d7cc907cba594fb251a81751e7763 1KB
1b29d21546900d684ca2a497fee4e49017e890951266dc8966da34d8c060 1KB
1bb59ebf55db298428802f823e99fa57ef42cc05b03a3c3967e669bae093 1KB
1c38abdce37f7115f68c0bd17c57d0adf4b864263721176599379245a253 1KB
1c510123ace0b7c1616f4d0a9fee81188eb42d7dd23f4c40dcc6836b61f6 1KB
1daf4af449cd5707b74a69d06b0619ebffa9435b9fab7687766fe0b9bf86 1KB
1de72b67aa53c2e06a89d6d4ada99f8d8cff865ad5d62174a949361b0b9c 1KB
1dec12a9659a460ecea27d4064257a634b90ab761c6bd7dfc9b986fa42a0 1KB
1e1438ec7a3377ad527c1910a82e02e244ecf4241f61c7a147ac8286b140 1KB
1e14b95ea412bee040b7797208de8ebc391f7e30389521b5f81912a1a013 1KB
1eaedfd2552005b85e59cf933ae9762c6188168f3d9309d4b97aa6b33a97 1KB
1edea45575675c12d925e053e3eaae3b80eb85a254495eba85005da4e384 1KB
1f0e791e3b6c96ff584a7389a79ce4d29d30ba88bc1cea7b87d9674b054d 1KB
1f5597de1eab58dfebbf4da490279bb235ff998a51a9fc9323c6a5c7c6b5 1KB
2039b1dddb23130c1a84e4a945abf015fa55f8d03459054a5b79f3e7c7e4 1KB
共 64522 条
- 1
- 2
- 3
- 4
- 5
- 6
- 646
DXL131795
- 粉丝: 468
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0