Top-level files
This commit is contained in:
parent
781e5f6fcd
commit
b8d41a067e
350
DEPS
Normal file
350
DEPS
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
# This file is automatically processed to create .DEPS.git which is the file
|
||||||
|
# that gclient uses under git.
|
||||||
|
#
|
||||||
|
# See http://code.google.com/p/chromium/wiki/UsingGit
|
||||||
|
#
|
||||||
|
# To test manually, run:
|
||||||
|
# python tools/deps2git/deps2git.py -o .DEPS.git -w <gclientdir>
|
||||||
|
# where <gcliendir> is the absolute path to the directory containing the
|
||||||
|
# .gclient file (the parent of 'src').
|
||||||
|
#
|
||||||
|
# Then commit .DEPS.git locally (gclient doesn't like dirty trees) and run
|
||||||
|
# gclient sync
|
||||||
|
# Verify the thing happened you wanted. Then revert your .DEPS.git change
|
||||||
|
# DO NOT CHECK IN CHANGES TO .DEPS.git upstream. It will be automatically
|
||||||
|
# updated by a bot when you modify this one.
|
||||||
|
#
|
||||||
|
# When adding a new dependency, please update the top-level .gitignore file
|
||||||
|
# to list the dependency's destination directory.
|
||||||
|
|
||||||
|
vars = {
|
||||||
|
'chromium_git': 'https://chromium.googlesource.com',
|
||||||
|
'dart_svn': 'https://dart.googlecode.com',
|
||||||
|
'skia_revision': '2ced78866fcadd98895777c8dffe92e229775181',
|
||||||
|
'angle_revision': 'bdd419f9f5b006e913606e7363125942c8ae06bc',
|
||||||
|
'dart_revision': 'e5e3d161e70d862608e6597facdf5ac8ae9ab2c3',
|
||||||
|
'dart_observatory_packages_revision': '45565',
|
||||||
|
'boringssl_revision': '642f1498d056dbba3e50ed5a232ab2f482626dec',
|
||||||
|
|
||||||
|
'buildtools_revision': 'fa660d47fa1a6c649d5c29e001348447c55709e6',
|
||||||
|
|
||||||
|
'archive_dart_revision': '07ffd98c5403b7f9ae067b57dc9487611be420f5',
|
||||||
|
'args_dart_revision': 'e0e8377412ee6cd6a5a4a8632848181c1db91f44',
|
||||||
|
'box2d_dart_revision': 'c5e65d9546275e78ad2a1d51b459e7638f6e4323',
|
||||||
|
'cassowary_dart_revision': '7e5afc5b3956a18636d5b37b1dcba1705865564b',
|
||||||
|
'collection_dart_revision': '79ebc6fc2dae581cb23ad50a5c600c1b7dd132f8',
|
||||||
|
'crypto_dart_revision': 'd4558dea1639e5ad2a41d045265b8ece270c2d90',
|
||||||
|
'newton_dart_revision': '26da04f0c441d005a6ecbf62ae047cd02ec9abc5',
|
||||||
|
'path_dart_revision': '2f3dcdec32011f1bc41194ae3640d6d9292a7096',
|
||||||
|
'quiver_dart_revision': '6bab7dec34189eee579178eb16d3063c8ae69031',
|
||||||
|
'source_span_dart_revision': '5c6c13f62fc111adaace3aeb4a38853d64481d06',
|
||||||
|
'string_scanner_dart_revision': '9f00056b32f41efc376adecfb696a01bc7c593d7',
|
||||||
|
'vector_math_dart_revision': '65915583f7aa606cb47ed265f853c18c60102b81',
|
||||||
|
'yaml_dart_revision': 'd8c1ce75edf051ea1d5583b24474f8656abb4920',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Only these hosts are allowed for dependencies in this DEPS file.
|
||||||
|
# If you need to add a new host, contact chrome infrastructure team.
|
||||||
|
allowed_hosts = [
|
||||||
|
'chromium.googlesource.com',
|
||||||
|
'dart.googlecode.com',
|
||||||
|
]
|
||||||
|
|
||||||
|
deps = {
|
||||||
|
'src/buildtools':
|
||||||
|
Var('chromium_git') + '/chromium/buildtools.git' + '@' + Var('buildtools_revision'),
|
||||||
|
|
||||||
|
'src/testing/gtest':
|
||||||
|
Var('chromium_git') + '/external/googletest.git' + '@' + 'be1868139ffe0ccd0e8e3b37292b84c821d9c8ad', # from svn revision 704
|
||||||
|
|
||||||
|
'src/testing/gmock':
|
||||||
|
Var('chromium_git') + '/external/googlemock.git' + '@' + '29763965ab52f24565299976b936d1265cb6a271', # from svn revision 501
|
||||||
|
|
||||||
|
'src/third_party/angle':
|
||||||
|
Var('chromium_git') + '/angle/angle.git' + '@' + Var('angle_revision'),
|
||||||
|
|
||||||
|
'src/third_party/icu':
|
||||||
|
Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'c3f79166089e5360c09e3053fce50e6e296c3204',
|
||||||
|
|
||||||
|
'src/dart':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/sdk.git' + '@' + Var('dart_revision'),
|
||||||
|
|
||||||
|
'src/dart/third_party/observatory_pub_packages':
|
||||||
|
Var('dart_svn') + '/svn/third_party/observatory_pub_packages' + '@' +
|
||||||
|
Var('dart_observatory_packages_revision'),
|
||||||
|
|
||||||
|
'src/third_party/skia':
|
||||||
|
Var('chromium_git') + '/skia.git' + '@' + Var('skia_revision'),
|
||||||
|
|
||||||
|
'src/third_party/yasm/source/patched-yasm':
|
||||||
|
Var('chromium_git') + '/chromium/deps/yasm/patched-yasm.git' + '@' + '4671120cd8558ce62ee8672ebf3eb6f5216f909b',
|
||||||
|
|
||||||
|
'src/third_party/libjpeg_turbo':
|
||||||
|
Var('chromium_git') + '/chromium/deps/libjpeg_turbo.git' + '@' + '034e9a9747e0983bc19808ea70e469bc8342081f',
|
||||||
|
|
||||||
|
'src/third_party/smhasher/src':
|
||||||
|
Var('chromium_git') + '/external/smhasher.git' + '@' + 'e87738e57558e0ec472b2fc3a643b838e5b6e88f',
|
||||||
|
|
||||||
|
'src/third_party/mesa/src':
|
||||||
|
Var('chromium_git') + '/chromium/deps/mesa.git' + '@' + '071d25db04c23821a12a8b260ab9d96a097402f0',
|
||||||
|
|
||||||
|
'src/third_party/boringssl/src':
|
||||||
|
'https://boringssl.googlesource.com/boringssl.git' + '@' + Var('boringssl_revision'),
|
||||||
|
|
||||||
|
'src/third_party/requests/src':
|
||||||
|
Var('chromium_git') + '/external/github.com/kennethreitz/requests.git' + '@' + 'f172b30356d821d180fa4ecfa3e71c7274a32de4',
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/archive':
|
||||||
|
Var('chromium_git') + '/external/github.com/brendan-duncan/archive.git' + '@' + Var('archive_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/args':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/args.git' + '@' + Var('args_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/box2d':
|
||||||
|
Var('chromium_git') + '/external/github.com/google/box2d.dart.git' + '@' + Var('box2d_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/cassowary':
|
||||||
|
Var('chromium_git') + '/external/github.com/domokit/cassowary.git' + '@' + Var('cassowary_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/collection':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/collection.git' + '@' + Var('collection_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/crypto':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/crypto.git' + '@' + Var('crypto_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/newton':
|
||||||
|
Var('chromium_git') + '/external/github.com/domokit/newton.git' + '@' + Var('newton_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/path':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/path.git' + '@' + Var('path_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/quiver':
|
||||||
|
Var('chromium_git') + '/external/github.com/google/quiver-dart.git' + '@' + Var('quiver_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/source_span':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/source_span.git' + '@' + Var('source_span_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/string_scanner':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/string_scanner.git' + '@' + Var('string_scanner_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/vector_math':
|
||||||
|
Var('chromium_git') + '/external/github.com/google/vector_math.dart.git' + '@' + Var('vector_math_dart_revision'),
|
||||||
|
|
||||||
|
'src/third_party/dart-pkg/yaml':
|
||||||
|
Var('chromium_git') + '/external/github.com/dart-lang/yaml.git' + '@' + Var('yaml_dart_revision'),
|
||||||
|
}
|
||||||
|
|
||||||
|
deps_os = {
|
||||||
|
'android': {
|
||||||
|
'src/third_party/colorama/src':
|
||||||
|
Var('chromium_git') + '/external/colorama.git' + '@' + '799604a1041e9b3bc5d2789ecbd7e8db2e18e6b8',
|
||||||
|
|
||||||
|
'src/third_party/jsr-305/src':
|
||||||
|
Var('chromium_git') + '/external/jsr-305.git' + '@' + '642c508235471f7220af6d5df2d3210e3bfc0919',
|
||||||
|
|
||||||
|
'src/third_party/junit/src':
|
||||||
|
Var('chromium_git') + '/external/junit.git' + '@' + '45a44647e7306262162e1346b750c3209019f2e1',
|
||||||
|
|
||||||
|
'src/third_party/mockito/src':
|
||||||
|
Var('chromium_git') + '/external/mockito/mockito.git' + '@' + 'ed99a52e94a84bd7c467f2443b475a22fcc6ba8e',
|
||||||
|
|
||||||
|
'src/third_party/robolectric/lib':
|
||||||
|
Var('chromium_git') + '/chromium/third_party/robolectric.git' + '@' + '6b63c99a8b6967acdb42cbed0adb067c80efc810',
|
||||||
|
|
||||||
|
'src/third_party/appurify-python/src':
|
||||||
|
Var('chromium_git') + '/external/github.com/appurify/appurify-python.git' + '@' + 'ee7abd5c5ae3106f72b2a0b9d2cb55094688e867',
|
||||||
|
|
||||||
|
'src/third_party/freetype-android/src':
|
||||||
|
Var('chromium_git') + '/chromium/src/third_party/freetype.git' + '@' + 'd1028db70bea988d1022e4d463de66581c696160',
|
||||||
|
|
||||||
|
'src/third_party/requests/src':
|
||||||
|
Var('chromium_git') + '/external/github.com/kennethreitz/requests.git' + '@' + 'f172b30356d821d180fa4ecfa3e71c7274a32de4',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
hooks = [
|
||||||
|
{
|
||||||
|
# This clobbers when necessary (based on get_landmines.py). It must be the
|
||||||
|
# first hook so that other things that get/generate into the output
|
||||||
|
# directory will not subsequently be clobbered.
|
||||||
|
'name': 'landmines',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [
|
||||||
|
'python',
|
||||||
|
'src/build/landmines.py',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Pull clang if needed or requested via GYP_DEFINES.
|
||||||
|
'name': 'clang',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': ['python', 'src/tools/clang/scripts/update.py', '--if-needed'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Pull dart sdk if needed
|
||||||
|
'name': 'dart',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': ['python', 'src/tools/dart/update.py'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# This downloads android_tools according to tools/android/VERSION_*.
|
||||||
|
'name': 'android_tools',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': ['python', 'src/tools/android/download_android_tools.py'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# This downloads SDK extras and puts them in the
|
||||||
|
# third_party/android_tools/sdk/extras directory on the bots. Developers
|
||||||
|
# need to manually install these packages and accept the ToS.
|
||||||
|
'name': 'sdkextras',
|
||||||
|
'pattern': '.',
|
||||||
|
# When adding a new sdk extras package to download, add the package
|
||||||
|
# directory and zip file to .gitignore in third_party/android_tools.
|
||||||
|
'action': ['python', 'src/build/download_sdk_extras.py'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Update LASTCHANGE. This is also run by export_tarball.py in
|
||||||
|
# src/tools/export_tarball - please keep them in sync.
|
||||||
|
'name': 'lastchange',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': ['python', 'src/build/util/lastchange.py',
|
||||||
|
'-o', 'src/build/util/LASTCHANGE'],
|
||||||
|
},
|
||||||
|
# Pull GN binaries. This needs to be before running GYP below.
|
||||||
|
{
|
||||||
|
'name': 'gn_linux64',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=linux*',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-gn',
|
||||||
|
'-s', 'src/buildtools/linux64/gn.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'gn_mac',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=darwin',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-gn',
|
||||||
|
'-s', 'src/buildtools/mac/gn.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'gn_win',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=win*',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-gn',
|
||||||
|
'-s', 'src/buildtools/win/gn.exe.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
# Pull clang-format binaries using checked-in hashes.
|
||||||
|
{
|
||||||
|
'name': 'clang_format_linux',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=linux*',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-clang-format',
|
||||||
|
'-s', 'src/buildtools/linux64/clang-format.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'clang_format_mac',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=darwin',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-clang-format',
|
||||||
|
'-s', 'src/buildtools/mac/clang-format.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
# Pull sky_server binaries using checked-in hashes.
|
||||||
|
{
|
||||||
|
'name': 'sky_server_linux',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=linux*',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'mojo',
|
||||||
|
'-s', 'src/sky/tools/skygo/linux64/sky_server.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'sky_server_mac',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=darwin',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'mojo',
|
||||||
|
'-s', 'src/sky/tools/skygo/mac/sky_server.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'material_design_icons',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [
|
||||||
|
'python',
|
||||||
|
'src/sky/sdk/lib/download_material_design_icons',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
# Pull binutils for linux, enabled debug fission for faster linking /
|
||||||
|
# debugging when used with clang on Ubuntu Precise.
|
||||||
|
# https://code.google.com/p/chromium/issues/detail?id=352046
|
||||||
|
{
|
||||||
|
'name': 'binutils',
|
||||||
|
'pattern': 'src/third_party/binutils',
|
||||||
|
'action': [
|
||||||
|
'python',
|
||||||
|
'src/third_party/binutils/download.py',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
# Pull eu-strip binaries using checked-in hashes.
|
||||||
|
{
|
||||||
|
'name': 'eu-strip',
|
||||||
|
'pattern': '.',
|
||||||
|
'action': [ 'download_from_google_storage',
|
||||||
|
'--no_resume',
|
||||||
|
'--platform=linux*',
|
||||||
|
'--no_auth',
|
||||||
|
'--bucket', 'chromium-eu-strip',
|
||||||
|
'-s', 'src/build/linux/bin/eu-strip.sha1',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
# Run "pub get" on any directories with checked-in pubspec.yaml files
|
||||||
|
# (excluding sky/, whose pubspec.yaml files are not intended for supporting
|
||||||
|
# building in-place in the repo).
|
||||||
|
{
|
||||||
|
'name': 'run_dart_pub_get',
|
||||||
|
'pattern': '',
|
||||||
|
'action': [ 'python',
|
||||||
|
'src/mojo/public/tools/git/dart_pub_get.py',
|
||||||
|
'--repository-root', '../../../..',
|
||||||
|
'--dart-sdk-directory',
|
||||||
|
'../../../../third_party/dart-sdk/dart-sdk',
|
||||||
|
'--dirs-to-ignore', 'sky/',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# Ensure that we don't accidentally reference any .pyc files whose
|
||||||
|
# corresponding .py files have already been deleted.
|
||||||
|
'name': 'remove_stale_pyc_files',
|
||||||
|
'pattern': 'src/tools/.*\\.py',
|
||||||
|
'action': [
|
||||||
|
'python',
|
||||||
|
'src/tools/remove_stale_pyc_files.py',
|
||||||
|
'src/tools',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]
|
8
engine/src/flutter/.clang-format
Normal file
8
engine/src/flutter/.clang-format
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Defines the Chromium style for automatic reformatting.
|
||||||
|
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||||
|
BasedOnStyle: Chromium
|
||||||
|
# This defaults to 'Auto'. Explicitly set it for a while, so that
|
||||||
|
# 'vector<vector<int> >' in existing files gets formatted to
|
||||||
|
# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
|
||||||
|
# 'int>>' if the file already contains at least one such instance.)
|
||||||
|
Standard: Cpp11
|
7
engine/src/flutter/.gitattributes
vendored
Normal file
7
engine/src/flutter/.gitattributes
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
## This page intentionally left blank. ##
|
||||||
|
#
|
||||||
|
# Workaround for VS2013 automatically creating .gitattributes files with
|
||||||
|
# default settings that we don't want.
|
||||||
|
# See also:
|
||||||
|
# http://connect.microsoft.com/VisualStudio/feedback/details/804948/inappropriately-creates-gitattributes-file
|
||||||
|
# http://crbug.com/342064
|
97
engine/src/flutter/.gitignore
vendored
Normal file
97
engine/src/flutter/.gitignore
vendored
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
# commonly generated files
|
||||||
|
*.pyc
|
||||||
|
*~
|
||||||
|
.*.sw?
|
||||||
|
.DS_Store
|
||||||
|
.classpath
|
||||||
|
.cproject
|
||||||
|
.gdb_history
|
||||||
|
.gdbinit
|
||||||
|
.landmines
|
||||||
|
.project
|
||||||
|
.pub
|
||||||
|
.pydevproject
|
||||||
|
.checkstyle
|
||||||
|
cscope.*
|
||||||
|
Session.vim
|
||||||
|
tags
|
||||||
|
Thumbs.db
|
||||||
|
v8.log
|
||||||
|
/build/util/LASTCHANGE*
|
||||||
|
|
||||||
|
# directories pulled in via deps or hooks
|
||||||
|
/build/linux/bin/eu-strip
|
||||||
|
/buildtools/
|
||||||
|
/dart/
|
||||||
|
/dart-pub-cache/
|
||||||
|
/native_client/
|
||||||
|
/out/
|
||||||
|
/out_*/
|
||||||
|
/sdch/open-vcdiff/
|
||||||
|
/testing/gmock/
|
||||||
|
/testing/gtest/
|
||||||
|
/third_party/android_tools/
|
||||||
|
/third_party/angle/
|
||||||
|
/third_party/appurify-python/
|
||||||
|
/third_party/boringssl/src/
|
||||||
|
/third_party/brotli/src/
|
||||||
|
/third_party/colorama/src/
|
||||||
|
/third_party/dart-sdk/
|
||||||
|
/third_party/dart-pkg/archive
|
||||||
|
/third_party/dart-pkg/args
|
||||||
|
/third_party/dart-pkg/box2d
|
||||||
|
/third_party/dart-pkg/cassowary
|
||||||
|
/third_party/dart-pkg/collection
|
||||||
|
/third_party/dart-pkg/crypto
|
||||||
|
/third_party/dart-pkg/newton
|
||||||
|
/third_party/dart-pkg/path
|
||||||
|
/third_party/dart-pkg/quiver
|
||||||
|
/third_party/dart-pkg/source_span
|
||||||
|
/third_party/dart-pkg/string_scanner
|
||||||
|
/third_party/dart-pkg/vector_math
|
||||||
|
/third_party/dart-pkg/vector_math
|
||||||
|
/third_party/dart-pkg/yaml
|
||||||
|
/third_party/dejavu-fonts-ttf-2.34/ttf/*.ttf
|
||||||
|
/third_party/freetype-android/src
|
||||||
|
/third_party/go/tool/
|
||||||
|
/third_party/icu/
|
||||||
|
/third_party/jsr-305/src/
|
||||||
|
/third_party/libc++/trunk/
|
||||||
|
/third_party/libc++abi/trunk/
|
||||||
|
/third_party/libjpeg_turbo/
|
||||||
|
/third_party/llvm/
|
||||||
|
/third_party/llvm-build/
|
||||||
|
/third_party/junit/src/
|
||||||
|
/third_party/mesa/src/
|
||||||
|
/third_party/mockito/src/
|
||||||
|
/third_party/pdfium/
|
||||||
|
/third_party/pywebsocket/src/
|
||||||
|
/third_party/requests/src/
|
||||||
|
/third_party/robolectric/src/
|
||||||
|
/third_party/skia/
|
||||||
|
/third_party/smhasher/src/
|
||||||
|
/third_party/yasm/binaries/
|
||||||
|
/third_party/yasm/source/patched-yasm/
|
||||||
|
/tools/grit/
|
||||||
|
/v8/
|
||||||
|
|
||||||
|
# dart packages directories and related.
|
||||||
|
/mojo/dart/apptest/packages
|
||||||
|
/mojo/dart/mojo_services/packages
|
||||||
|
/mojo/dart/mojo_services/pubspec.lock
|
||||||
|
/mojo/dart/mojom/bin/packages
|
||||||
|
/mojo/dart/mojom/packages
|
||||||
|
/mojo/dart/mojom/test/packages
|
||||||
|
/sky/examples/hello_world/packages
|
||||||
|
/sky/examples/stocks/packages
|
||||||
|
/sky/sdk/packages/mojo/packages
|
||||||
|
/sky/sdk/packages/mojo/pubspec.lock
|
||||||
|
/sky/sdk/packages/sky/packages
|
||||||
|
/sky/sdk/packages/sky/pubspec.lock
|
||||||
|
|
||||||
|
# sky tools
|
||||||
|
/sky/tools/skygo/linux64/sky_server
|
||||||
|
/sky/tools/skygo/mac/sky_server
|
||||||
|
|
||||||
|
# downloaded keyboard_native resources.
|
||||||
|
/services/keyboard_native/res/*.png
|
23
engine/src/flutter/.gn
Normal file
23
engine/src/flutter/.gn
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# This file is used by the experimental meta-buildsystem in src/tools/gn to
|
||||||
|
# find the root of the source tree and to set startup options.
|
||||||
|
|
||||||
|
# The location of the build configuration file.
|
||||||
|
buildconfig = "//build/config/BUILDCONFIG.gn"
|
||||||
|
|
||||||
|
# The secondary source root is a parallel directory tree where
|
||||||
|
# GN build files are placed when they can not be placed directly
|
||||||
|
# in the source tree, e.g. for third party source trees.
|
||||||
|
secondary_source = "//build/secondary/"
|
||||||
|
|
||||||
|
# The set of targets known to pass 'gn check'. When all targets pass, remove
|
||||||
|
# this.
|
||||||
|
check_targets = [
|
||||||
|
"//crypto/*",
|
||||||
|
"//dart/*",
|
||||||
|
"//mojo/*",
|
||||||
|
"//mojom/*",
|
||||||
|
"//skia/*",
|
||||||
|
"//sky/*",
|
||||||
|
"//ui/*",
|
||||||
|
"//url/*",
|
||||||
|
]
|
13
engine/src/flutter/BUILD.gn
Normal file
13
engine/src/flutter/BUILD.gn
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
# This target will be built if no target is specified when invoking ninja.
|
||||||
|
group("default") {
|
||||||
|
testonly = true
|
||||||
|
|
||||||
|
deps = [
|
||||||
|
"//sky",
|
||||||
|
"//services/sky",
|
||||||
|
]
|
||||||
|
}
|
27
engine/src/flutter/LICENSE
Normal file
27
engine/src/flutter/LICENSE
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions are
|
||||||
|
// met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following disclaimer
|
||||||
|
// in the documentation and/or other materials provided with the
|
||||||
|
// distribution.
|
||||||
|
// * Neither the name of Google Inc. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from
|
||||||
|
// this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
engine/src/flutter/OWNERS
Normal file
1
engine/src/flutter/OWNERS
Normal file
@ -0,0 +1 @@
|
|||||||
|
*
|
1134
engine/src/flutter/PRESUBMIT.py
Normal file
1134
engine/src/flutter/PRESUBMIT.py
Normal file
File diff suppressed because it is too large
Load Diff
357
engine/src/flutter/PRESUBMIT_test.py
Normal file
357
engine/src/flutter/PRESUBMIT_test.py
Normal file
@ -0,0 +1,357 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
import re
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
import PRESUBMIT
|
||||||
|
from PRESUBMIT_test_mocks import MockChange, MockFile
|
||||||
|
from PRESUBMIT_test_mocks import MockInputApi, MockOutputApi
|
||||||
|
|
||||||
|
|
||||||
|
_TEST_DATA_DIR = 'base/test/data/presubmit'
|
||||||
|
|
||||||
|
|
||||||
|
class IncludeOrderTest(unittest.TestCase):
|
||||||
|
def testSystemHeaderOrder(self):
|
||||||
|
scope = [(1, '#include <csystem.h>'),
|
||||||
|
(2, '#include <cppsystem>'),
|
||||||
|
(3, '#include "acustom.h"')]
|
||||||
|
all_linenums = [linenum for (linenum, _) in scope]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', all_linenums)
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testSystemHeaderOrderMismatch1(self):
|
||||||
|
scope = [(10, '#include <cppsystem>'),
|
||||||
|
(20, '#include <csystem.h>'),
|
||||||
|
(30, '#include "acustom.h"')]
|
||||||
|
all_linenums = [linenum for (linenum, _) in scope]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', all_linenums)
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertTrue('20' in warnings[0])
|
||||||
|
|
||||||
|
def testSystemHeaderOrderMismatch2(self):
|
||||||
|
scope = [(10, '#include <cppsystem>'),
|
||||||
|
(20, '#include "acustom.h"'),
|
||||||
|
(30, '#include <csystem.h>')]
|
||||||
|
all_linenums = [linenum for (linenum, _) in scope]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', all_linenums)
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertTrue('30' in warnings[0])
|
||||||
|
|
||||||
|
def testSystemHeaderOrderMismatch3(self):
|
||||||
|
scope = [(10, '#include "acustom.h"'),
|
||||||
|
(20, '#include <csystem.h>'),
|
||||||
|
(30, '#include <cppsystem>')]
|
||||||
|
all_linenums = [linenum for (linenum, _) in scope]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', all_linenums)
|
||||||
|
self.assertEqual(2, len(warnings))
|
||||||
|
self.assertTrue('20' in warnings[0])
|
||||||
|
self.assertTrue('30' in warnings[1])
|
||||||
|
|
||||||
|
def testAlphabeticalOrderMismatch(self):
|
||||||
|
scope = [(10, '#include <csystem.h>'),
|
||||||
|
(15, '#include <bsystem.h>'),
|
||||||
|
(20, '#include <cppsystem>'),
|
||||||
|
(25, '#include <bppsystem>'),
|
||||||
|
(30, '#include "bcustom.h"'),
|
||||||
|
(35, '#include "acustom.h"')]
|
||||||
|
all_linenums = [linenum for (linenum, _) in scope]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', all_linenums)
|
||||||
|
self.assertEqual(3, len(warnings))
|
||||||
|
self.assertTrue('15' in warnings[0])
|
||||||
|
self.assertTrue('25' in warnings[1])
|
||||||
|
self.assertTrue('35' in warnings[2])
|
||||||
|
|
||||||
|
def testSpecialFirstInclude1(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/path/foo.h"',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo.cc', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testSpecialFirstInclude2(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/other/path/foo.h"',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo.cc', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testSpecialFirstInclude3(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/path/foo.h"',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo_platform.cc', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testSpecialFirstInclude4(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/path/bar.h"',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo_platform.cc', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertTrue('2' in warnings[0])
|
||||||
|
|
||||||
|
def testSpecialFirstInclude5(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/other/path/foo.h"',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo-suffix.h', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testSpecialFirstInclude6(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "some/other/path/foo_win.h"',
|
||||||
|
'#include <set>',
|
||||||
|
'#include "a/header.h"']
|
||||||
|
mock_file = MockFile('some/path/foo_unittest_win.h', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testOrderAlreadyWrong(self):
|
||||||
|
scope = [(1, '#include "b.h"'),
|
||||||
|
(2, '#include "a.h"'),
|
||||||
|
(3, '#include "c.h"')]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', [3])
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testConflictAdded1(self):
|
||||||
|
scope = [(1, '#include "a.h"'),
|
||||||
|
(2, '#include "c.h"'),
|
||||||
|
(3, '#include "b.h"')]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', [2])
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertTrue('3' in warnings[0])
|
||||||
|
|
||||||
|
def testConflictAdded2(self):
|
||||||
|
scope = [(1, '#include "c.h"'),
|
||||||
|
(2, '#include "b.h"'),
|
||||||
|
(3, '#include "d.h"')]
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderForScope(scope, mock_input_api,
|
||||||
|
'', [2])
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertTrue('2' in warnings[0])
|
||||||
|
|
||||||
|
def testIfElifElseEndif(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include "e.h"',
|
||||||
|
'#define foo',
|
||||||
|
'#include "f.h"',
|
||||||
|
'#undef foo',
|
||||||
|
'#include "e.h"',
|
||||||
|
'#if foo',
|
||||||
|
'#include "d.h"',
|
||||||
|
'#elif bar',
|
||||||
|
'#include "c.h"',
|
||||||
|
'#else',
|
||||||
|
'#include "b.h"',
|
||||||
|
'#endif',
|
||||||
|
'#include "a.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testExcludedIncludes(self):
|
||||||
|
# #include <sys/...>'s can appear in any order.
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include <sys/b.h>',
|
||||||
|
'#include <sys/a.h>']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
contents = ['#include <atlbase.h>',
|
||||||
|
'#include <aaa.h>']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
contents = ['#include "build/build_config.h"',
|
||||||
|
'#include "aaa.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(0, len(warnings))
|
||||||
|
|
||||||
|
def testCheckOnlyCFiles(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
mock_output_api = MockOutputApi()
|
||||||
|
contents = ['#include <b.h>',
|
||||||
|
'#include <a.h>']
|
||||||
|
mock_file_cc = MockFile('something.cc', contents)
|
||||||
|
mock_file_h = MockFile('something.h', contents)
|
||||||
|
mock_file_other = MockFile('something.py', contents)
|
||||||
|
mock_input_api.files = [mock_file_cc, mock_file_h, mock_file_other]
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrder(mock_input_api, mock_output_api)
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
self.assertEqual(2, len(warnings[0].items))
|
||||||
|
self.assertEqual('promptOrNotify', warnings[0].type)
|
||||||
|
|
||||||
|
def testUncheckableIncludes(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
contents = ['#include <windows.h>',
|
||||||
|
'#include "b.h"',
|
||||||
|
'#include "a.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
|
||||||
|
contents = ['#include "gpu/command_buffer/gles_autogen.h"',
|
||||||
|
'#include "b.h"',
|
||||||
|
'#include "a.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
|
||||||
|
contents = ['#include "gl_mock_autogen.h"',
|
||||||
|
'#include "b.h"',
|
||||||
|
'#include "a.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
|
||||||
|
contents = ['#include "ipc/some_macros.h"',
|
||||||
|
'#include "b.h"',
|
||||||
|
'#include "a.h"']
|
||||||
|
mock_file = MockFile('', contents)
|
||||||
|
warnings = PRESUBMIT._CheckIncludeOrderInFile(
|
||||||
|
mock_input_api, mock_file, range(1, len(contents) + 1))
|
||||||
|
self.assertEqual(1, len(warnings))
|
||||||
|
|
||||||
|
|
||||||
|
class VersionControlConflictsTest(unittest.TestCase):
|
||||||
|
def testTypicalConflict(self):
|
||||||
|
lines = ['<<<<<<< HEAD',
|
||||||
|
' base::ScopedTempDir temp_dir_;',
|
||||||
|
'=======',
|
||||||
|
' ScopedTempDir temp_dir_;',
|
||||||
|
'>>>>>>> master']
|
||||||
|
errors = PRESUBMIT._CheckForVersionControlConflictsInFile(
|
||||||
|
MockInputApi(), MockFile('some/path/foo_platform.cc', lines))
|
||||||
|
self.assertEqual(3, len(errors))
|
||||||
|
self.assertTrue('1' in errors[0])
|
||||||
|
self.assertTrue('3' in errors[1])
|
||||||
|
self.assertTrue('5' in errors[2])
|
||||||
|
|
||||||
|
|
||||||
|
class BadExtensionsTest(unittest.TestCase):
|
||||||
|
def testBadRejFile(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
mock_input_api.files = [
|
||||||
|
MockFile('some/path/foo.cc', ''),
|
||||||
|
MockFile('some/path/foo.cc.rej', ''),
|
||||||
|
MockFile('some/path2/bar.h.rej', ''),
|
||||||
|
]
|
||||||
|
|
||||||
|
results = PRESUBMIT._CheckPatchFiles(mock_input_api, MockOutputApi())
|
||||||
|
self.assertEqual(1, len(results))
|
||||||
|
self.assertEqual(2, len(results[0].items))
|
||||||
|
self.assertTrue('foo.cc.rej' in results[0].items[0])
|
||||||
|
self.assertTrue('bar.h.rej' in results[0].items[1])
|
||||||
|
|
||||||
|
def testBadOrigFile(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
mock_input_api.files = [
|
||||||
|
MockFile('other/path/qux.h.orig', ''),
|
||||||
|
MockFile('other/path/qux.h', ''),
|
||||||
|
MockFile('other/path/qux.cc', ''),
|
||||||
|
]
|
||||||
|
|
||||||
|
results = PRESUBMIT._CheckPatchFiles(mock_input_api, MockOutputApi())
|
||||||
|
self.assertEqual(1, len(results))
|
||||||
|
self.assertEqual(1, len(results[0].items))
|
||||||
|
self.assertTrue('qux.h.orig' in results[0].items[0])
|
||||||
|
|
||||||
|
def testGoodFiles(self):
|
||||||
|
mock_input_api = MockInputApi()
|
||||||
|
mock_input_api.files = [
|
||||||
|
MockFile('other/path/qux.h', ''),
|
||||||
|
MockFile('other/path/qux.cc', ''),
|
||||||
|
]
|
||||||
|
results = PRESUBMIT._CheckPatchFiles(mock_input_api, MockOutputApi())
|
||||||
|
self.assertEqual(0, len(results))
|
||||||
|
|
||||||
|
def testNoFiles(self):
|
||||||
|
mock_change = MockChange([])
|
||||||
|
results = PRESUBMIT.GetPreferredTryMasters(None, mock_change)
|
||||||
|
self.assertEqual({}, results)
|
||||||
|
|
||||||
|
|
||||||
|
class InvalidOSMacroNamesTest(unittest.TestCase):
|
||||||
|
def testInvalidOSMacroNames(self):
|
||||||
|
lines = ['#if defined(OS_WINDOWS)',
|
||||||
|
' #elif defined(OS_WINDOW)',
|
||||||
|
' # if defined(OS_MACOSX) || defined(OS_CHROME)',
|
||||||
|
'# else // defined(OS_MAC)',
|
||||||
|
'#endif // defined(OS_MACOS)']
|
||||||
|
errors = PRESUBMIT._CheckForInvalidOSMacrosInFile(
|
||||||
|
MockInputApi(), MockFile('some/path/foo_platform.cc', lines))
|
||||||
|
self.assertEqual(len(lines), len(errors))
|
||||||
|
self.assertTrue(':1 OS_WINDOWS' in errors[0])
|
||||||
|
self.assertTrue('(did you mean OS_WIN?)' in errors[0])
|
||||||
|
|
||||||
|
def testValidOSMacroNames(self):
|
||||||
|
lines = ['#if defined(%s)' % m for m in PRESUBMIT._VALID_OS_MACROS]
|
||||||
|
errors = PRESUBMIT._CheckForInvalidOSMacrosInFile(
|
||||||
|
MockInputApi(), MockFile('some/path/foo_platform.cc', lines))
|
||||||
|
self.assertEqual(0, len(errors))
|
||||||
|
|
||||||
|
|
||||||
|
class InvalidIfDefinedMacroNamesTest(unittest.TestCase):
|
||||||
|
def testInvalidIfDefinedMacroNames(self):
|
||||||
|
lines = ['#if defined(TARGET_IPHONE_SIMULATOR)',
|
||||||
|
'#if !defined(TARGET_IPHONE_SIMULATOR)',
|
||||||
|
'#elif defined(TARGET_IPHONE_SIMULATOR)',
|
||||||
|
'#ifdef TARGET_IPHONE_SIMULATOR',
|
||||||
|
' # ifdef TARGET_IPHONE_SIMULATOR',
|
||||||
|
'# if defined(VALID) || defined(TARGET_IPHONE_SIMULATOR)',
|
||||||
|
'# else // defined(TARGET_IPHONE_SIMULATOR)',
|
||||||
|
'#endif // defined(TARGET_IPHONE_SIMULATOR)',]
|
||||||
|
errors = PRESUBMIT._CheckForInvalidIfDefinedMacrosInFile(
|
||||||
|
MockInputApi(), MockFile('some/path/source.mm', lines))
|
||||||
|
self.assertEqual(len(lines), len(errors))
|
||||||
|
|
||||||
|
def testValidIfDefinedMacroNames(self):
|
||||||
|
lines = ['#if defined(FOO)',
|
||||||
|
'#ifdef BAR',]
|
||||||
|
errors = PRESUBMIT._CheckForInvalidIfDefinedMacrosInFile(
|
||||||
|
MockInputApi(), MockFile('some/path/source.cc', lines))
|
||||||
|
self.assertEqual(0, len(errors))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
109
engine/src/flutter/PRESUBMIT_test_mocks.py
Normal file
109
engine/src/flutter/PRESUBMIT_test_mocks.py
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class MockInputApi(object):
|
||||||
|
"""Mock class for the InputApi class.
|
||||||
|
|
||||||
|
This class can be used for unittests for presubmit by initializing the files
|
||||||
|
attribute as the list of changed files.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.json = json
|
||||||
|
self.re = re
|
||||||
|
self.os_path = os.path
|
||||||
|
self.python_executable = sys.executable
|
||||||
|
self.subprocess = subprocess
|
||||||
|
self.files = []
|
||||||
|
self.is_committing = False
|
||||||
|
|
||||||
|
def AffectedFiles(self, file_filter=None):
|
||||||
|
return self.files
|
||||||
|
|
||||||
|
def PresubmitLocalPath(self):
|
||||||
|
return os.path.dirname(__file__)
|
||||||
|
|
||||||
|
def ReadFile(self, filename, mode='rU'):
|
||||||
|
for file_ in self.files:
|
||||||
|
if file_.LocalPath() == filename:
|
||||||
|
return '\n'.join(file_.NewContents())
|
||||||
|
# Otherwise, file is not in our mock API.
|
||||||
|
raise IOError, "No such file or directory: '%s'" % filename
|
||||||
|
|
||||||
|
|
||||||
|
class MockOutputApi(object):
|
||||||
|
"""Mock class for the OutputApi class.
|
||||||
|
|
||||||
|
An instance of this class can be passed to presubmit unittests for outputing
|
||||||
|
various types of results.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class PresubmitResult(object):
|
||||||
|
def __init__(self, message, items=None, long_text=''):
|
||||||
|
self.message = message
|
||||||
|
self.items = items
|
||||||
|
self.long_text = long_text
|
||||||
|
|
||||||
|
class PresubmitError(PresubmitResult):
|
||||||
|
def __init__(self, message, items, long_text=''):
|
||||||
|
MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
|
||||||
|
self.type = 'error'
|
||||||
|
|
||||||
|
class PresubmitPromptWarning(PresubmitResult):
|
||||||
|
def __init__(self, message, items, long_text=''):
|
||||||
|
MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
|
||||||
|
self.type = 'warning'
|
||||||
|
|
||||||
|
class PresubmitNotifyResult(PresubmitResult):
|
||||||
|
def __init__(self, message, items, long_text=''):
|
||||||
|
MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
|
||||||
|
self.type = 'notify'
|
||||||
|
|
||||||
|
class PresubmitPromptOrNotify(PresubmitResult):
|
||||||
|
def __init__(self, message, items, long_text=''):
|
||||||
|
MockOutputApi.PresubmitResult.__init__(self, message, items, long_text)
|
||||||
|
self.type = 'promptOrNotify'
|
||||||
|
|
||||||
|
|
||||||
|
class MockFile(object):
|
||||||
|
"""Mock class for the File class.
|
||||||
|
|
||||||
|
This class can be used to form the mock list of changed files in
|
||||||
|
MockInputApi for presubmit unittests.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, local_path, new_contents):
|
||||||
|
self._local_path = local_path
|
||||||
|
self._new_contents = new_contents
|
||||||
|
self._changed_contents = [(i + 1, l) for i, l in enumerate(new_contents)]
|
||||||
|
|
||||||
|
def ChangedContents(self):
|
||||||
|
return self._changed_contents
|
||||||
|
|
||||||
|
def NewContents(self):
|
||||||
|
return self._new_contents
|
||||||
|
|
||||||
|
def LocalPath(self):
|
||||||
|
return self._local_path
|
||||||
|
|
||||||
|
|
||||||
|
class MockChange(object):
|
||||||
|
"""Mock class for Change class.
|
||||||
|
|
||||||
|
This class can be used in presubmit unittests to mock the query of the
|
||||||
|
current change.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, changed_files):
|
||||||
|
self._changed_files = changed_files
|
||||||
|
|
||||||
|
def LocalPaths(self):
|
||||||
|
return self._changed_files
|
45
engine/src/flutter/WATCHLISTS
Normal file
45
engine/src/flutter/WATCHLISTS
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
# Watchlist Rules
|
||||||
|
# Refer: http://dev.chromium.org/developers/contributing-code/watchlists
|
||||||
|
|
||||||
|
# IMPORTANT: The regular expression filepath is tested against each path using
|
||||||
|
# re.search, so it is not usually necessary to add .*.
|
||||||
|
|
||||||
|
{
|
||||||
|
'WATCHLIST_DEFINITIONS': {
|
||||||
|
'mojo': {
|
||||||
|
'filepath': 'mojo',
|
||||||
|
},
|
||||||
|
'services': {
|
||||||
|
'filepath': 'services',
|
||||||
|
},
|
||||||
|
'shell': {
|
||||||
|
'filepath': 'shell',
|
||||||
|
},
|
||||||
|
'sky': {
|
||||||
|
'filepath': 'sky',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
'WATCHLISTS': {
|
||||||
|
'mojo': ['aa@chromium.org',
|
||||||
|
'abarth@chromium.org',
|
||||||
|
'ben+mojo@chromium.org',
|
||||||
|
'darin@chromium.org',
|
||||||
|
'qsr+mojo@chromium.org',
|
||||||
|
'viettrungluu+watch@chromium.org',
|
||||||
|
'gregsimon@chromium.org',
|
||||||
|
'yzshen+watch@chromium.org'],
|
||||||
|
'services': ['qsr+mojo@chromium.org',
|
||||||
|
'yzshen+watch@chromium.org'],
|
||||||
|
'shell': ['qsr+mojo@chromium.org',
|
||||||
|
'yzshen+watch@chromium.org'],
|
||||||
|
'sky': ['abarth@chromium.org',
|
||||||
|
'gregsimon@chromium.org',
|
||||||
|
'jackson@chromium.org',
|
||||||
|
'qsr+mojo@chromium.org'],
|
||||||
|
},
|
||||||
|
}
|
6
engine/src/flutter/codereview.settings
Normal file
6
engine/src/flutter/codereview.settings
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# This file is used by gcl to get repository specific information.
|
||||||
|
CODE_REVIEW_SERVER: codereview.chromium.org
|
||||||
|
CC_LIST: mojo-reviews@chromium.org
|
||||||
|
VIEW_VC: https://chromium.googlesource.com/external/mojo/+/
|
||||||
|
PROJECT: mojo
|
||||||
|
RUN_POST_UPLOAD_HOOK: True
|
43
engine/src/flutter/third_party/BUILD.gn
vendored
Normal file
43
engine/src/flutter/third_party/BUILD.gn
vendored
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Copyright 2014 The Chromium Authors. All rights reserved.
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
if (is_android) {
|
||||||
|
import("//build/config/android/config.gni")
|
||||||
|
}
|
||||||
|
|
||||||
|
declare_args() {
|
||||||
|
# Uses system libjpeg. If true, overrides use_libjpeg_turbo.
|
||||||
|
use_system_libjpeg = false
|
||||||
|
|
||||||
|
# Uses libjpeg_turbo as the jpeg implementation. Has no effect if
|
||||||
|
# use_system_libjpeg is set.
|
||||||
|
use_libjpeg_turbo = true
|
||||||
|
}
|
||||||
|
|
||||||
|
config("system_libjpeg_config") {
|
||||||
|
defines = [ "USE_SYSTEM_LIBJPEG" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
config("libjpeg_turbo_config") {
|
||||||
|
defines = [ "USE_LIBJPEG_TURBO" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# This is a meta target that forwards to the system's libjpeg,
|
||||||
|
# third_party/libjpeg, or third_party/libjpeg_turbo depending on the build args
|
||||||
|
# declared in this file.
|
||||||
|
group("jpeg") {
|
||||||
|
if (use_system_libjpeg) {
|
||||||
|
libs = [ "jpeg" ]
|
||||||
|
public_configs = [ ":system_libjpeg_config" ]
|
||||||
|
} else if (use_libjpeg_turbo) {
|
||||||
|
deps = [
|
||||||
|
"//third_party/libjpeg_turbo:libjpeg",
|
||||||
|
]
|
||||||
|
public_configs = [ ":libjpeg_turbo_config" ]
|
||||||
|
} else {
|
||||||
|
deps = [
|
||||||
|
"//third_party/libjpeg:libjpeg",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user