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

Unified Diff: visual_studio/NativeClientVSAddIn/create_package.py

Issue 14122017: [VS Addin] Add visual studio 2012 support (Closed) Base URL: https://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: visual_studio/NativeClientVSAddIn/create_package.py
diff --git a/visual_studio/NativeClientVSAddIn/create_package.py b/visual_studio/NativeClientVSAddIn/create_package.py
index 6920bcceefb31f8f1241b6516443fd0794cd3af1..5fddd5cc04e681894f4f1b2ef5fbe67d761b8161 100644
--- a/visual_studio/NativeClientVSAddIn/create_package.py
+++ b/visual_studio/NativeClientVSAddIn/create_package.py
@@ -18,6 +18,7 @@ import win32api
import shutil
import tarfile
import zipfile
+import string
import sys
from os.path import join
@@ -30,7 +31,8 @@ ROOT = os.path.dirname(os.path.dirname(SCRIPT_DIR))
BUILD_DIR = join(ROOT, 'out', 'vs_addin')
# Directory that contains the build assemblies.
-ASSEMBLY_DIRECTORY = join(BUILD_DIR, 'Debug')
+ASSEMBLY_DIRECTORY_2010 = join(BUILD_DIR, '2010', 'Debug')
+ASSEMBLY_DIRECTORY_2012 = join(BUILD_DIR, '2012', 'Debug')
# Directory containing static installer resources.
RESOURCE_DIRECTORY = join(SCRIPT_DIR, 'InstallerResources')
@@ -42,14 +44,16 @@ OUTPUT_NAME = join(BUILD_DIR, 'vs_addin.tgz')
ADDIN_METADATA = join(RESOURCE_DIRECTORY, 'NativeClientVSAddIn.AddIn')
# AddIn dll file path. We will obtain our add-in version from this.
-ADDIN_ASSEMBLY = join(ASSEMBLY_DIRECTORY, 'NativeClientVSAddIn.dll')
+ADDIN_ASSEMBLY_2010 = join(ASSEMBLY_DIRECTORY_2010, 'NativeClientVSAddIn.dll')
+ADDIN_ASSEMBLY_2012 = join(ASSEMBLY_DIRECTORY_2012, 'NativeClientVSAddIn.dll')
# Regex list to exclude from the archive. If a file path matches any of the
# expressions during a call to AddFolderToArchive it is excluded from the
# archive file.
EXCLUDES = [
- r'\.svn', # Exclude .svn directories.
- r'\.swp', # Exclude .swp files.
+ r'\.svn$', # Exclude .svn directories.
binji 2013/05/25 00:02:55 it seems like this was correct before -- shouldn't
Sam Clegg 2013/05/29 04:58:33 Hmm yes I think you are right.
+ r'\.swp$', # Exclude .swp files.
+ r'\.pyc$', # Exclude .pyc files.
r'examples\\.*\\chrome_data',
r'examples\\.*\\Debug',
r'examples\\.*\\newlib',
@@ -64,8 +68,11 @@ EXCLUDES = [
# List of source/destination pairs to include in archive file.
FILE_LIST = [
- (ADDIN_ASSEMBLY, ''),
- (join(ASSEMBLY_DIRECTORY, 'NaCl.Build.CPPTasks.dll'), 'NaCl')]
+ (ADDIN_ASSEMBLY_2010, '2010'),
+ (ADDIN_ASSEMBLY_2012, '2012'),
+ (join(ASSEMBLY_DIRECTORY_2010, 'NativeClientVSAddIn.AddIn'), '2010'),
+ (join(ASSEMBLY_DIRECTORY_2012, 'NativeClientVSAddIn.AddIn'), '2012'),
+ (join(ASSEMBLY_DIRECTORY_2010, 'NaCl.Build.CPPTasks.dll'), 'NaCl')]
def AddFolderToArchive(path, archive, root=""):
@@ -95,33 +102,30 @@ def AddFolderToArchive(path, archive, root=""):
WriteFileToArchive(archive, read_path, write_path)
-def AddVersionModifiedAddinFile(archive):
+def CopyAddinFile(assembly, path, vs_version):
"""Modifies the .AddIn file with the build version and adds to the zip.
The version number is obtained from the NativeClientAddIn.dll assembly which
is built during the build process.
-
- Args:
- archive: Already open archive file.
"""
- path = '\\VarFileInfo\\Translation'
- pairs = win32api.GetFileVersionInfo(ADDIN_ASSEMBLY, path)
+ infopath = '\\VarFileInfo\\Translation'
+ pairs = win32api.GetFileVersionInfo(assembly, infopath)
lang, codepage = pairs[0]
- path = u'\\StringFileInfo\\%04X%04X\\ProductVersion' % (lang, codepage)
- prodVersion = win32api.GetFileVersionInfo(ADDIN_ASSEMBLY, path)
+ infopath = u'\\StringFileInfo\\%04X%04X\\ProductVersion' % (lang, codepage)
+ prodVersion = win32api.GetFileVersionInfo(assembly, infopath)
version = "[%s]" % prodVersion
print "\nNaCl VS Add-in Build version: %s\n" % (version)
metadata_filename = os.path.basename(ADDIN_METADATA)
- modified_file = join(ASSEMBLY_DIRECTORY, metadata_filename)
+ modified_file = join(path, metadata_filename)
# Copy the metadata file to new location and modify the version info.
with open(ADDIN_METADATA, 'r') as source_file:
with open(modified_file, 'w') as dest_file:
- for line in source_file:
- dest_file.write(line.replace("[REPLACE_ADDIN_VERSION]", version))
-
- WriteFileToArchive(archive, modified_file, metadata_filename)
binji 2013/05/25 00:02:55 not added to archive...?
Sam Clegg 2013/05/29 04:58:33 This is now done by including them in FILE_LIST.
+ data = source_file.read()
+ replacements = {'VS_VERSION': vs_version, 'ADDIN_VERSION': version}
+ data = string.Template(data).substitute(replacements)
+ dest_file.write(data)
def Error(msg):
@@ -144,25 +148,41 @@ def CopyWithReplacement(src, dest, replacements):
os.makedirs(dest)
src_basename = os.path.basename(src)
dest_basename = os.path.basename(dest)
- for filename in os.listdir(src):
- srcfile = join(src, filename)
- # skip non-files, in particular .svn folders.
- if not os.path.isfile(srcfile):
- continue
- destfile = join(dest, filename.replace(src_basename, dest_basename))
- with open(srcfile, "rb") as f:
- data = f.read()
- for pat, subst in replacements.iteritems():
- data = data.replace(pat, subst)
- with open(destfile, "wb") as f:
- f.write(data)
+
+ olddir = os.getcwd()
+ try:
+ os.chdir(src)
binji 2013/05/25 00:02:55 why chdir?
Sam Clegg 2013/05/29 04:58:33 So that 'root' below is relative to 'src'. Altern
+ for root, dirs, filenames in os.walk('.'):
+ for filename in filenames:
+ srcfile = join(root, filename)
+ # skip non-files, in particular .svn folders.
+ if not os.path.isfile(srcfile):
+ continue
+
+ destdir = join(dest, root.replace(src_basename, dest_basename))
+ if not os.path.exists(destdir):
+ os.makedirs(destdir)
+
+ destfile = join(destdir, filename.replace(src_basename, dest_basename))
+ with open(srcfile, "rb") as f:
+ data = f.read()
+ for pat, subst in replacements.iteritems():
+ data = data.replace(pat, subst)
+ with open(destfile, "wb") as f:
+ f.write(data)
+ finally:
+ os.chdir(olddir)
def main():
if not os.path.exists(BUILD_DIR):
Error("build dir not found: %s" % BUILD_DIR)
+ CopyAddinFile(ADDIN_ASSEMBLY_2010, ASSEMBLY_DIRECTORY_2010, '10.0')
+ CopyAddinFile(ADDIN_ASSEMBLY_2012, ASSEMBLY_DIRECTORY_2012, '11.0')
+
archive = tarfile.open(OUTPUT_NAME, 'w:gz')
+
for source_dest in FILE_LIST:
file_name = os.path.basename(source_dest[0])
dest = join(source_dest[1], file_name)
@@ -203,7 +223,6 @@ def main():
CopyWithReplacement(src, dest, pnacl_replacements)
AddFolderToArchive(dest, archive, "PNaCl")
- AddVersionModifiedAddinFile(archive)
archive.close()

Powered by Google App Engine
This is Rietveld 408576698