Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(768)

Side by Side Diff: build/android/gyp/util/proguard_util.py

Issue 2101243005: Add a snapshot of flutter/engine/src/build to our sdk (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: add README.dart Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/gyp/util/md5_check_test.py ('k') | build/android/gyp/write_build_config.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import os
6 from util import build_utils
7
8 def FilterProguardOutput(output):
9 '''ProGuard outputs boring stuff to stdout (proguard version, jar path, etc)
10 as well as interesting stuff (notes, warnings, etc). If stdout is entirely
11 boring, this method suppresses the output.
12 '''
13 ignore_patterns = [
14 'ProGuard, version ',
15 'Reading program jar [',
16 'Reading library jar [',
17 'Preparing output jar [',
18 ' Copying resources from program jar [',
19 ]
20 for line in output.splitlines():
21 for pattern in ignore_patterns:
22 if line.startswith(pattern):
23 break
24 else:
25 # line doesn't match any of the patterns; it's probably something worth
26 # printing out.
27 return output
28 return ''
29
30
31 class ProguardCmdBuilder(object):
32 def __init__(self, proguard_jar):
33 assert os.path.exists(proguard_jar)
34 self._proguard_jar_path = proguard_jar
35 self._test = None
36 self._mapping = None
37 self._libraries = None
38 self._injars = None
39 self._configs = None
40 self._outjar = None
41
42 def outjar(self, path):
43 assert self._outjar is None
44 self._outjar = path
45
46 def is_test(self, enable):
47 assert self._test is None
48 self._test = enable
49
50 def mapping(self, path):
51 assert self._mapping is None
52 assert os.path.exists(path), path
53 self._mapping = path
54
55 def libraryjars(self, paths):
56 assert self._libraries is None
57 for p in paths:
58 assert os.path.exists(p), p
59 self._libraries = paths
60
61 def injars(self, paths):
62 assert self._injars is None
63 for p in paths:
64 assert os.path.exists(p), p
65 self._injars = paths
66
67 def configs(self, paths):
68 assert self._configs is None
69 for p in paths:
70 assert os.path.exists(p), p
71 self._configs = paths
72
73 def build(self):
74 assert self._injars is not None
75 assert self._outjar is not None
76 assert self._configs is not None
77 cmd = [
78 'java', '-jar', self._proguard_jar_path,
79 '-forceprocessing',
80 ]
81 if self._test:
82 cmd += [
83 '-dontobfuscate',
84 '-dontoptimize',
85 '-dontshrink',
86 '-dontskipnonpubliclibraryclassmembers',
87 ]
88
89 if self._mapping:
90 cmd += [
91 '-applymapping', self._mapping,
92 ]
93
94 if self._libraries:
95 cmd += [
96 '-libraryjars', ':'.join(self._libraries),
97 ]
98
99 cmd += [
100 '-injars', ':'.join(self._injars)
101 ]
102
103 for config_file in self._configs:
104 cmd += ['-include', config_file]
105
106 # The output jar must be specified after inputs.
107 cmd += [
108 '-outjars', self._outjar,
109 '-dump', self._outjar + '.dump',
110 '-printseeds', self._outjar + '.seeds',
111 '-printusage', self._outjar + '.usage',
112 '-printmapping', self._outjar + '.mapping',
113 ]
114 return cmd
115
116 def GetInputs(self):
117 inputs = [self._proguard_jar_path] + self._configs + self._injars
118 if self._mapping:
119 inputs.append(self._mapping)
120 if self._libraries:
121 inputs += self._libraries
122 return inputs
123
124
125 def CheckOutput(self):
126 build_utils.CheckOutput(self.build(), print_stdout=True,
127 stdout_filter=FilterProguardOutput)
128
OLDNEW
« no previous file with comments | « build/android/gyp/util/md5_check_test.py ('k') | build/android/gyp/write_build_config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698