# 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 copy
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_default_variables = {
'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_enable_marmasm',
'msvs_application_type_revision',
'msvs_target_platform_version',
'msvs_target_platform_minversion',
]
# 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):
r"""
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 = _ConvertSourcesToFilterHierarchy(folders[f], prefix=prefix + [f],
excluded=exclu
没有合适的资源?快使用搜索试试~ 我知道了~
修复版新UI云开发新款壁纸小程序源码支持用户投稿在线审核+视频教程.zip
共42696个文件
js:22646个
json:3803个
md:3678个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 164 浏览量
2021-12-07
23:27:04
上传
评论
收藏 456.47MB ZIP 举报
温馨提示
支持微信QQ双端小程序也就是说可以打包成微信小程序也可以打包成QQ小程序 相当于一码二用,非常划算 无需授权,源码全开源,支持二开 无需服务器。无需域名。云开发直接上线 特点:支持用户投稿,后台审核后会发订阅消息给用户提示作品审核状态,增加用户粘性,支持后端修改/增加轮播图 (轮播图可内部跳转其他页面路径也可跳转外部小程序) 前端即可进行日常管理,看广告赚积分方式。\ 本次版本集合了前两个版本所有的功能并有以下的更新 更改界面UI样式 修复了路径控制BUG 新增任务中心 首页栏目增加动态壁纸搜索(支持关键词搜索全网动态壁纸) 修复搜索图标不显示 上传一次性最多20张限制改成100张 壁纸界面添加时间年月日以便用户观看效果 优化各种小细节等等........
资源推荐
资源详情
资源评论
收起资源包目录
修复版新UI云开发新款壁纸小程序源码支持用户投稿在线审核+视频教程.zip (42696个子文件)
0003e7e700650650f2085d4454a2d7838fed37 11KB
00043d95912e913f2fe42d18ff56fd29e1eadab671f35ced3c0a5d9a42ca44b5e57d1f3bb4f5e87b342c6b02cab702d1587eb34a24c8a661de1cf90069a2 25KB
00b3cb44fde5f6c231f8a232122c2a096060f5 621B
01640179c8f6076013e436354d45e23d7b5a68 6KB
01712d56e20e7b985632be53fd98890ed33c97fe5dfd72f447af5b2b2f18 1KB
019c60eb28f79ddcea366caf16dcbef4b3ebf6 5KB
01db53fb06e9ccc1ee46fdb2f41612a5a6cd7a 135B
022b35ea3bba263d49fe75aacd3d069916d7d6 180B
02add20b581be471b8d17f887b8e8337070546 194B
02fda0e6d5949964550558dee4c179600af828 135B
034084e94513f0a68c6df316f6f44a622947f7 119B
03c91e082a66cc470f410efda7906a4270d723899a9da076827feb95b96cd868c71c80abb7ef06c80ad872d376b2c84d311081a329c1a30034b2fcba53fd 12KB
042b3942b7736b0db9828abd3ff3ff0792621f 6KB
044dad7fc2c611090108b1d8652e752b486bab 4KB
046b96013348dbe4f4369d338a57daee9e7343 142B
04b0828dfba7e681693bce3c365c5062e87dd8 4KB
05832316387ba0ba8bcf62b3e57aa1d6455705 110B
05d5141781fce91959e99455af2d9d93abbb35 137B
0616e6967278a40222468f6921479fae95a782864f65cb27870684a3596bbb2c901c01c818d3493f93149e068e1b70a7fba6ef0b749c21c55fcb4befd67a 100KB
06a7fe60accb5fbaeaba527acede62a6ca5022a251d45ebcf570c2414198e73d544054e26e510f5db60acf712e010caa6753018ee1f919073fb42332a246 7KB
06a85611a7be1bd7217722179f81429969413964cda858388955e1470d60 1KB
06ac04f24f8ebe958654f25fd6239b3c816e91 4KB
06cabeda429c04a4af4610d8e290b026afaf46 4KB
06d483940e543e775f4d9e7081fed300a1d4fd262011b042a5c4a5739e01 1KB
070f5cc181ebe47605602d4dfa518d48396171 1KB
079ae1ea3a3d466baa776552124a512e3a3e89abd9f0fea67448301ad8b9 1KB
088dc18144fe6beedc9af3768508b3d62285bfc09487072c88b8d7a39bd4e43306f3a36e0767a76676487bcf63da0b5a0cfc6f39b0496d1588842bd9d002 13KB
0946d23db173d7075daab1a0e71f7be0301a4a 173B
09b41ae41973ad88d15d5653b236cfc3eaaf75 749B
09e05b63248361e5327d54ecd5ee48dc734189 5KB
0a76b15242eff971bb49cac7b4768977868c26 852B
0ae776fa1be9bc07890aa4e4635ae91e75c9e174bbfb53e381fa7bb7a8ba 1KB
0c002c74079b9c581565d9d0208e563599fab1 739B
0c5a474f92863d2e97d0b9ca16a37261b487f7a82de9243ce7f32885b7bc2d7b063209ea0bab51fc7715c3f06dc4decce95418c4ad859d3b1a7e79cd826b 100KB
0daf0e8eec7bedaa9266985e7901373061c041 65B
0db3b7666e8d8e7da038fb0275f9a35818188548c7d570d51728cadb1fdd6efeb4013533c07c6e5706504101f5bd44ed52f9ecc800dd3b4dd69369ba625f 15KB
0df7f02862299d8629b41404149ede7a60c0e7 1KB
0fd149f5b59b214c4e23ac6ce76ec7354e99d24c68bbe6125d41de35c2a5a1801f7664612e9f0d5a03686b731ef9ae426914ff9f800c9576ee98c3a012b3 7KB
npm-install.1 20KB
libnpx.1 7KB
npx.1 7KB
npm.1 6KB
npm-version.1 5KB
npm-doctor.1 5KB
npm-README.1 5KB
npm-audit.1 5KB
npm-outdated.1 4KB
sshpk-conv.1 4KB
sshpk-conv.1 4KB
sshpk-conv.1 4KB
sshpk-conv.1 4KB
sshpk-conv.1 4KB
sshpk-conv.1 4KB
npm-update.1 4KB
npm-run-script.1 4KB
npm-token.1 4KB
npm-profile.1 4KB
npm-view.1 3KB
npm-dist-tag.1 3KB
npm-search.1 3KB
npm-publish.1 3KB
npm-adduser.1 3KB
npm-access.1 3KB
he.1 3KB
npm-ls.1 3KB
npm-link.1 3KB
npm-cache.1 3KB
jsesc.1 3KB
jsesc.1 3KB
sshpk-sign.1 3KB
sshpk-sign.1 3KB
npm-init.1 2KB
sshpk-sign.1 2KB
sshpk-sign.1 2KB
sshpk-sign.1 2KB
sshpk-sign.1 2KB
npm-team.1 2KB
sshpk-verify.1 2KB
sshpk-verify.1 2KB
marked.1 2KB
sshpk-verify.1 2KB
sshpk-verify.1 2KB
sshpk-verify.1 2KB
sshpk-verify.1 2KB
npm-hook.1 2KB
marked.1 2KB
npm-ci.1 2KB
marked.1 2KB
cssesc.1 2KB
cssesc.1 2KB
npm-fund.1 2KB
npm-config.1 2KB
npm-uninstall.1 2KB
npm-dedupe.1 2KB
npm-prune.1 1KB
npm-unpublish.1 1KB
npm-logout.1 1KB
npm-owner.1 1KB
npm-docs.1 1KB
npm-explore.1 1KB
共 42696 条
- 1
- 2
- 3
- 4
- 5
- 6
- 427
资源评论
- 吾乃圣君也2021-12-19教程解压密码多少达达站长站2021-12-20留邮箱我发你一份,我记得是上传的是不带解压密码的,如果有解压密码留邮箱或者加我Q2598312299.我发你
- ll188789662302022-10-07资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- weixin_446463172022-03-24用户下载后在一定时间内未进行评价,系统默认好评。
达达站长站
- 粉丝: 52
- 资源: 391
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功