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

Side by Side Diff: third_party/crashpad/crashpad/util/mach/mig.py

Issue 2685233002: Update mig.py to take an explicit sdk argument. (Closed)
Patch Set: Created 3 years, 10 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 | « third_party/crashpad/README.chromium ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding: utf-8 2 # coding: utf-8
3 3
4 # Copyright 2014 The Crashpad Authors. All rights reserved. 4 # Copyright 2014 The Crashpad Authors. All rights reserved.
5 # 5 #
6 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License. 7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at 8 # You may obtain a copy of the License at
9 # 9 #
10 # http://www.apache.org/licenses/LICENSE-2.0 10 # http://www.apache.org/licenses/LICENSE-2.0
11 # 11 #
12 # Unless required by applicable law or agreed to in writing, software 12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS, 13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and 15 # See the License for the specific language governing permissions and
16 # limitations under the License. 16 # limitations under the License.
17 17
18 import argparse
18 import os 19 import os
19 import re 20 import re
20 import subprocess 21 import subprocess
21 import sys 22 import sys
22 23
23 def FixUserImplementation(implementation): 24 def FixUserImplementation(implementation):
24 """Rewrites a MIG-generated user implementation (.c) file. 25 """Rewrites a MIG-generated user implementation (.c) file.
25 26
26 Rewrites the file at |implementation| by adding “__attribute__((unused))” to 27 Rewrites the file at |implementation| by adding “__attribute__((unused))” to
27 the definition of any structure typedefed as “__Reply” by searching for the 28 the definition of any structure typedefed as “__Reply” by searching for the
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 #ifdef __cplusplus 101 #ifdef __cplusplus
101 } 102 }
102 #endif 103 #endif
103 ''' % (contents, declarations_text) 104 ''' % (contents, declarations_text)
104 file.seek(0) 105 file.seek(0)
105 file.truncate() 106 file.truncate()
106 file.write(contents) 107 file.write(contents)
107 file.close() 108 file.close()
108 109
109 def main(args): 110 def main(args):
110 if len(args) == 5: 111 parser = argparse.ArgumentParser()
111 (defs_file, user_c, server_c, user_h, server_h) = args 112 parser.add_argument('--developer-dir', help='Path to Xcode')
112 elif len(args) == 6: 113 parser.add_argument('--sdk', help='Path to SDK')
113 (defs_file, user_c, server_c, user_h, server_h, dev_dir) = args 114 parser.add_argument('defs')
114 os.environ['DEVELOPER_DIR'] = dev_dir 115 parser.add_argument('user_c')
115 else: 116 parser.add_argument('server_c')
116 assert False, "Wrong number of arguments" 117 parser.add_argument('user_h')
117 subprocess.check_call(['mig', 118 parser.add_argument('server_h')
118 '-user', user_c, 119 parsed = parser.parse_args()
Mark Mentovai 2017/02/10 02:11:39 OK. Either put “args” here OR get rid of the “arg
erikchen 2017/02/10 03:24:18 Done
119 '-server', server_c, 120
120 '-header', user_h, 121 command = ['mig',
121 '-sheader', server_h, 122 '-user', parsed.user_c,
122 defs_file]) 123 '-server', parsed.server_c,
123 FixUserImplementation(user_c) 124 '-header', parsed.user_h,
124 server_declarations = FixServerImplementation(server_c) 125 '-sheader', parsed.server_h,
125 FixHeader(user_h) 126 ]
126 FixHeader(server_h, server_declarations) 127 if parsed.sdk is not None:
128 command.extend(['-isysroot', parsed.sdk])
129 if parsed.developer_dir is not None:
130 os.environ['DEVELOPER_DIR'] = parsed.developer_dir
131 command.append(parsed.defs)
132 subprocess.check_call(command)
133 FixUserImplementation(parsed.user_c)
134 server_declarations = FixServerImplementation(parsed.server_c)
135 FixHeader(parsed.user_h)
136 FixHeader(parsed.server_h, server_declarations)
127 137
128 if __name__ == '__main__': 138 if __name__ == '__main__':
129 sys.exit(main(sys.argv[1:])) 139 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « third_party/crashpad/README.chromium ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698