Run gn check for an android build on presubmit
Also, fix gn check errors.
This is a reland of https://codereview.chromium.org/808703005 with some
additional testing to only run gn check for android when the checkout
contains the android specific dependencies.
R=sky@chromium.org
Review URL: https://codereview.chromium.org/805083007
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index eac0a44..7a3cdc0 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -414,6 +414,7 @@
def _CheckGNCheck(input_api, output_api):
"""Checks that gn gen and gn check pass"""
+ import os.path
class _TemporaryDirectory(object):
"""Context manager for tempfile.mkdtemp()"""
@@ -427,32 +428,44 @@
import shutil
shutil.rmtree(self.path)
- with _TemporaryDirectory() as out_dir:
- try:
- input_api.subprocess.check_output(['gn', 'gen', out_dir])
- except input_api.subprocess.CalledProcessError, error:
- return [output_api.PresubmitError(
- 'gn gen must not fail.', long_text=error.output)]
-
- # TODO(eseidel): Currently only these are known to pass,
- # once everything passes we can just call 'gn check' once without a filter!
- KNOWN_PASSING = [
- '//examples/*',
- '//mojo/*',
- '//services/*',
- '//shell/*',
- ]
- if input_api.platform != 'win32':
- KNOWN_PASSING += [
- '//sky/*',
- ]
- for target_filter in KNOWN_PASSING:
+ available_os = [None]
+ # android tools directory is used as a sentinel to check if the current
+ # checkout is an android checkout.
+ android_tools_dir = os.path.join(input_api.change.RepositoryRoot(),
+ 'third_party', 'android_tools')
+ if os.path.isdir(android_tools_dir):
+ available_os.append('android')
+ for target_os in available_os:
+ with _TemporaryDirectory() as out_dir:
try:
- input_api.subprocess.check_output(['gn', 'check', out_dir,
- target_filter])
+ command = ['gn', 'gen', out_dir]
+ if target_os:
+ command.append('--args=%s' % r'''os="android"''')
+ input_api.subprocess.check_output(command)
except input_api.subprocess.CalledProcessError, error:
- error_title = 'gn check %s must not fail.' % target_filter
- return [output_api.PresubmitError(error_title, long_text=error.output)]
+ return [output_api.PresubmitError(
+ 'gn gen must not fail.', long_text=error.output)]
+
+ # TODO(eseidel): Currently only these are known to pass, once everything
+ # passes we can just call 'gn check' once without a filter!
+ KNOWN_PASSING = [
+ '//examples/*',
+ '//mojo/*',
+ '//services/*',
+ '//shell/*',
+ ]
+ if input_api.platform != 'win32':
+ KNOWN_PASSING += [
+ '//sky/*',
+ ]
+ for target_filter in KNOWN_PASSING:
+ try:
+ input_api.subprocess.check_output(['gn', 'check', out_dir,
+ target_filter])
+ except input_api.subprocess.CalledProcessError, error:
+ error_title = 'gn check %s must not fail.' % target_filter
+ return [output_api.PresubmitError(error_title,
+ long_text=error.output)]
return []
diff --git a/examples/device_name/BUILD.gn b/examples/device_name/BUILD.gn
index d534aaa..cbab561 100644
--- a/examples/device_name/BUILD.gn
+++ b/examples/device_name/BUILD.gn
@@ -13,6 +13,7 @@
"//mojo/public/c/system",
"//mojo/public/cpp/application:standalone",
"//mojo/public/cpp/bindings",
+ "//mojo/public/cpp/system",
"//mojo/public/cpp/utility",
"//mojo/public/platform/native:system",
":jni_headers",
diff --git a/mojo/edk/embedder/BUILD.gn b/mojo/edk/embedder/BUILD.gn
index 3d808d8..d9a6e69 100644
--- a/mojo/edk/embedder/BUILD.gn
+++ b/mojo/edk/embedder/BUILD.gn
@@ -38,9 +38,7 @@
":platform",
]
- mojo_sdk_public_deps = [
- "mojo/public/cpp/system",
- ]
+ mojo_sdk_public_deps = [ "mojo/public/cpp/system" ]
deps = [
"//base",
@@ -50,13 +48,9 @@
mojo_edk_source_set("platform") {
# This isn't really a standalone target; it must be linked into the
# mojo_system_impl component.
- visibility = [
- ":embedder",
- ]
+ visibility = [ ":embedder" ]
- mojo_edk_visibility = [
- "mojo/edk/system",
- ]
+ mojo_edk_visibility = [ "mojo/edk/system" ]
sources = [
"platform_channel_pair.cc",
@@ -90,6 +84,10 @@
deps = [
"//base",
]
+
+ if (is_android) {
+ deps += [ "//third_party/ashmem" ]
+ }
}
mojo_edk_source_set("embedder_unittests") {
diff --git a/mojo/services/network/BUILD.gn b/mojo/services/network/BUILD.gn
index 8143fb8..b8fac0a 100644
--- a/mojo/services/network/BUILD.gn
+++ b/mojo/services/network/BUILD.gn
@@ -24,6 +24,8 @@
deps = [
":sources",
+ "//base",
+ "//net",
]
}