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

Side by Side Diff: visual_studio/NativeClientVSAddIn/create_package.py

Issue 11266051: Add PNaCl support for VS addin. (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Takes the output of the build step and turns it into a compressed 6 """Takes the output of the build step and turns it into a compressed
7 archive ready for distribution. 7 archive ready for distribution.
8 8
9 This script assumes the build script has been run to compile the add-in. 9 This script assumes the build script has been run to compile the add-in.
10 It zips up all files required for the add-in installation and places the 10 It zips up all files required for the add-in installation and places the
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 sys.stderr.write(msg + '\n') 125 sys.stderr.write(msg + '\n')
126 sys.exit(1) 126 sys.exit(1)
127 127
128 128
129 def WriteFileToArchive(archive, filename, archive_name): 129 def WriteFileToArchive(archive, filename, archive_name):
130 print 'Adding: %s' % archive_name 130 print 'Adding: %s' % archive_name
131 archive_name = join('vs_addin', archive_name) 131 archive_name = join('vs_addin', archive_name)
132 archive.add(filename, archive_name) 132 archive.add(filename, archive_name)
133 133
134 134
135 def CopyWithReplacement(src, dest, replacements):
136 if os.path.exists(dest):
137 shutil.rmtree(dest)
138 os.makedirs(dest)
139 src_basename = os.path.basename(src)
140 dest_basename = os.path.basename(dest)
141 for filename in os.listdir(src):
142 srcfile = join(src, filename)
143 # skip non-files, in particular .svn folders.
144 if not os.path.isfile(srcfile):
145 continue
146 destfile = join(dest, filename.replace(src_basename, dest_basename))
147 data = open(srcfile, "rb").read()
148 for pat, subst in replacements.iteritems():
149 data = data.replace(pat, subst)
150 open(destfile, "wb").write(data)
151
152
135 def main(): 153 def main():
136 if not os.path.exists(BUILD_DIR): 154 if not os.path.exists(BUILD_DIR):
137 Error("build dir not found: %s" % BUILD_DIR) 155 Error("build dir not found: %s" % BUILD_DIR)
138 156
139 archive = tarfile.open(OUTPUT_NAME, 'w:gz') 157 archive = tarfile.open(OUTPUT_NAME, 'w:gz')
140 for source_dest in FILE_LIST: 158 for source_dest in FILE_LIST:
141 file_name = os.path.basename(source_dest[0]) 159 file_name = os.path.basename(source_dest[0])
142 dest = join(source_dest[1], file_name) 160 dest = join(source_dest[1], file_name)
143 WriteFileToArchive(archive, source_dest[0], dest) 161 WriteFileToArchive(archive, source_dest[0], dest)
144 162
145 AddFolderToArchive(RESOURCE_DIRECTORY, archive) 163 AddFolderToArchive(RESOURCE_DIRECTORY, archive)
146 164
147 # Duplicate the NaCl64 platform but rename it to NaCl32 165 # Duplicate the NaCl64 platform but rename it to NaCl32
148 src64 = join(RESOURCE_DIRECTORY, 'NaCl64') 166 src64 = join(RESOURCE_DIRECTORY, 'NaCl64')
149 dest32 = join(BUILD_DIR, 'NaCl32')
150 if os.path.exists(dest32):
151 shutil.rmtree(dest32)
152 os.makedirs(dest32)
153 for filename in os.listdir(src64):
154 srcfile = join(src64, filename)
155 # skip non-files, in particular .svn folders.
156 if not os.path.isfile(srcfile):
157 continue
158 destfile = join(dest32, filename.replace('NaCl64', 'NaCl32'))
159 data = open(srcfile, "rb").read()
160 data = data.replace("x86_64", "i686")
161 data = data.replace("64", "32")
162 open(destfile, "wb").write(data)
163 167
164 AddFolderToArchive(join(BUILD_DIR, "NaCl32"), archive, "NaCl32") 168 dest = join(BUILD_DIR, 'NaCl32')
169 CopyWithReplacement(src64, dest, {'x86_64': 'i686', '64': '32'})
170 AddFolderToArchive(dest, archive, "NaCl32")
171
172 replacements = {
binji 2012/10/29 18:08:59 nit: probably should inline this below or rename t
173 'NaCl64': 'PNaCl',
174 'x86_64': 'i686',
175 '64': '32',
176 '.nexe': '.pexe',
177 'nacl_link.xml': 'pnacl_link.xml',
178 r'win_x86_$(ToolchainName)\bin': r'win_x86_pnacl\newlib\bin',
179 r'$(TargetArchitecture)-nacl-gcc.exe': 'pnacl-clang.bat',
180 r'$(TargetArchitecture)-nacl-g++.exe': 'pnacl-clang++.bat',
181 }
182
183 dest = join(BUILD_DIR, 'PNaCl')
184 CopyWithReplacement(src64, dest, replacements)
185 AddFolderToArchive(dest, archive, "PNaCl")
165 186
166 AddVersionModifiedAddinFile(archive) 187 AddVersionModifiedAddinFile(archive)
167 archive.close() 188 archive.close()
168 189
169 190
170 if __name__ == '__main__': 191 if __name__ == '__main__':
171 main() 192 main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698