Lines Matching +full:project +full:- +full:src +full:- +full:path
4 # Use of this source code is governed by a BSD-style license that can be
20 import action_helpers # build_utils adds //build to sys.path.
22 …https://chromium.googlesource.com/chromium/src/+/main/build/android/docs/lint.md' # pylint: disab…
27 "Assert", # R8 --force-enable-assertions is used to enable java asserts.
32 "MissingApplicationIcon", # False positive for non-production targets.
69 def _SrcRelative(path): argument
70 """Returns relative path to top-level src dir."""
71 return os.path.relpath(path, build_utils.DIR_SOURCE_ROOT)
85 project = ElementTree.Element('project')
86 root = ElementTree.SubElement(project, 'root')
89 sdk = ElementTree.SubElement(project, 'sdk')
90 # Lint requires that the sdk path be an absolute path.
91 sdk.set('dir', os.path.abspath(android_sdk_root))
93 baseline = ElementTree.SubElement(project, 'baseline')
95 cache = ElementTree.SubElement(project, 'cache')
97 main_module = ElementTree.SubElement(project, 'module')
107 src = ElementTree.SubElement(main_module, 'src')
108 src.set('file', srcjar_file)
111 src = ElementTree.SubElement(main_module, 'src')
112 src.set('file', source)
123 lint = ElementTree.SubElement(main_module, 'lint-checks')
129 return project
165 for path in extra_manifest_paths:
166 _, _, extra_app_node = manifest_utils.ParseManifest(path)
170 uses_sdk = manifest.find('./uses-sdk')
172 uses_sdk = ElementTree.Element('uses-sdk')
181 def _WriteXmlFile(root, path): argument
182 logging.info('Writing xml file %s', path)
183 build_utils.MakeDirectory(os.path.dirname(path))
184 with action_helpers.atomic_output(path) as f:
189 root, encoding='utf-8')).toprettyxml(indent=' ').encode('utf-8'))
216 # Occasionally lint may crash due to re-using intermediate files from older
222 if baseline and not os.path.exists(baseline):
232 # prefix. Path variable substitution is based off of prefix matching so custom
233 # path variables need to match exactly in order to show up in baseline files.
234 # e.g. lint_path=path/to/output/dir/../../file/in/src
236 pathvar_src = os.path.join(
237 root_path, os.path.relpath(build_utils.DIR_SOURCE_ROOT, start=root_path))
240 '-cp',
243 '--sdk-home',
245 '--jdk-home',
247 '--path-variables',
248 f'SRC={pathvar_src}',
249 '--quiet', # Silences lint's "." progress updates.
250 '--stacktrace', # Prints full stacktraces for internal lint errors.
251 '--disable',
256 cmd.extend(['--disable', ','.join(_DISABLED_FOR_TESTS)])
259 manifest_path = os.path.join(build_utils.DIR_SOURCE_ROOT, 'build',
265 generated_config_path = os.path.join(lint_gen_dir, 'config.xml')
267 cmd.extend(['--config', generated_config_path])
277 lint_android_manifest_path = os.path.join(lint_gen_dir, 'AndroidManifest.xml')
280 resource_root_dir = os.path.join(lint_gen_dir, _RES_ZIP_DIR)
286 resource_dir = os.path.join(resource_root_dir, resource_zip)
290 build_utils.ExtractAll(resource_zip, path=resource_dir))
293 aar_root_dir = os.path.join(lint_gen_dir, _AAR_DIR)
299 aar_dir = os.path.join(aar_root_dir,
300 os.path.splitext(_SrcRelative(aar))[0])
303 aar_files = build_utils.ExtractAll(aar, path=aar_dir)
311 srcjar_root_dir = os.path.join(lint_gen_dir, _SRCJAR_DIR)
315 # Use path without extensions since otherwise the file name includes
317 srcjar_dir = os.path.join(srcjar_root_dir, os.path.splitext(srcjar)[0])
323 srcjar_sources.extend(build_utils.ExtractAll(srcjar, path=srcjar_dir))
325 logging.info('Generating project file')
333 project_xml_path = os.path.join(lint_gen_dir, 'project.xml')
335 cmd += ['--project', project_xml_path]
367 end = time.time() - start
376 print('- For more help with lint in Chrome:', _LINT_MD_URL)
378 print('- DEBUG MODE: Here is the project.xml: {}'.format(
381 print('- Run with LINT_DEBUG=1 to enable lint configuration debugging')
390 parser.add_argument('--target-name', help='Fully qualified GN target name.')
391 parser.add_argument('--skip-build-server',
394 parser.add_argument('--use-build-server',
397 parser.add_argument('--lint-jar-path',
399 help='Path to the lint jar.')
400 parser.add_argument('--custom-lint-jar-path',
402 help='Path to our custom lint jar.')
403 parser.add_argument('--backported-methods',
404 help='Path to backported methods file created by R8.')
405 parser.add_argument('--cache-dir',
407 help='Path to the directory in which the android cache '
409 parser.add_argument('--config-path', help='Path to lint suppressions file.')
410 parser.add_argument('--lint-gen-dir',
412 help='Path to store generated xml files.')
413 parser.add_argument('--stamp', help='Path to stamp upon success.')
414 parser.add_argument('--android-sdk-version',
417 parser.add_argument('--min-sdk-version',
420 parser.add_argument('--android-sdk-root',
422 help='Lint needs an explicit path to the android sdk.')
423 parser.add_argument('--testonly',
428 parser.add_argument('--create-cache',
431 parser.add_argument('--warnings-as-errors',
434 parser.add_argument('--sources',
437 parser.add_argument('--aars', help='GN list of included aars.')
438 parser.add_argument('--srcjars', help='GN list of included srcjars.')
439 parser.add_argument('--manifest-path',
440 help='Path to original AndroidManifest.xml')
441 parser.add_argument('--extra-manifest-paths',
443 help='GYP-list of manifest paths to merge into the '
445 parser.add_argument('--resource-sources',
448 help='GYP-list of resource sources files, similar to '
450 parser.add_argument('--resource-zips',
453 help='GYP-list of resource zips, zip files of generated '
455 parser.add_argument('--classpath',
457 parser.add_argument('--baseline',
472 assert os.path.basename(args.baseline) == 'lint-baseline.xml', (
473 'The baseline file needs to be named "lint-baseline.xml" in order for '