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

Side by Side Diff: visual_studio/NativeClientVSAddIn/InstallerResources/install.py

Issue 10831030: NaCl settings and completed install scripts. (Closed) Base URL: https://nativeclient-sdk.googlecode.com/svn/trunk/src
Patch Set: Created 8 years, 4 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 | 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 """Copies necessary add-in files into place to install the add-in. 6 """Copies necessary add-in files into place to install the add-in.
7 7
8 This script will copy the necessary files for the Visual Studio add-in 8 This script will copy the necessary files for the Visual Studio add-in
9 to where Visual Studio can find them. It assumes the current directory 9 to where Visual Studio can find them. It assumes the current directory
10 contains the necessary files to copy. 10 contains the necessary files to copy.
11 """ 11 """
12 12
13 import create_ppapi_platform
14 import ctypes
13 import os 15 import os
14 import platform 16 import platform
15 import shutil 17 import shutil
16 18
19 NACL_PLATFORM_NAME = 'NaCl'
20 PEPPER_PLATFORM_NAME = 'PPAPI'
21
22 DEFAULT_ADD_IN_DIRECTORY = os.path.expandvars(
23 '%USERPROFILE%\\My Documents\\Visual Studio 2010\\Addins')
24
25 DEFAULT_MS_BUILD_DIRECTORY = os.path.expandvars('%ProgramFiles(x86)%\\MSBuild')
26 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
27
17 def main(): 28 def main():
18 if platform.system() != 'Windows': 29 if platform.system() != 'Windows':
19 raise Exception('Must install to Windows system') 30 raise Exception('Must install to Windows system')
20 31
21 # Ensure environment variables are set 32 # Admin is needed to write to the default platform directory.
33 if ctypes.windll.shell32.IsUserAnAdmin() != 1:
34 raise Exception("Not running as administrator. The install script needs "
35 + "write access to protected Visual Studio directories.")
36
37 # Ensure environment variables are set.
22 nacl_sdk_root = os.getenv('NACL_SDK_ROOT', None) 38 nacl_sdk_root = os.getenv('NACL_SDK_ROOT', None)
noelallen1 2012/07/27 00:17:41 This is somewhat dubious... Admin and normal user
tysand 2012/07/28 01:13:11 Good catch, but I've verified that running python
23 chrome_path = os.getenv('CHROME_PATH', None) 39 chrome_path = os.getenv('CHROME_PATH', None)
24 if nacl_sdk_root is None: 40 if nacl_sdk_root is None:
25 raise Exception('Environment Variable NACL_SDK_ROOT is not set') 41 raise Exception('Environment Variable NACL_SDK_ROOT is not set')
26 if chrome_path is None: 42 if chrome_path is None:
27 raise Exception('Environment Variable CHROME_PATH is not set') 43 raise Exception('Environment Variable CHROME_PATH is not set')
28 44
29 # Copy the necessary files into place 45 # Ensure add-in directory exists otherwise ask user for correct path.
30 add_in_directory = os.path.expandvars( 46 add_in_directory = DEFAULT_ADD_IN_DIRECTORY
31 '%USERPROFILE%\My Documents\Visual Studio 2010\Addins') 47 if not os.path.exists(add_in_directory):
32 shutil.copy('./NativeClientVSAddIn.AddIn', add_in_directory) 48 print "Could not find Visual Studio add-in directory:"
33 shutil.copy('./NativeClientVSAddIn.dll', add_in_directory) 49 print add_in_directory
50 print "Please enter path: "
51 add_in_directory = raw_input().strip()
binji 2012/07/26 23:32:17 use command line args instead of raw_input
tysand 2012/07/28 01:13:11 Done.
52 if not os.path.exists(add_in_directory):
53 raise Exception("Add-in directory did not exist")
54
55 # Ensure MS Build directory exists otherwise ask user for correct path.
56 ms_build_directory = DEFAULT_MS_BUILD_DIRECTORY
57 if not os.path.exists(ms_build_directory):
58 print "Could not find MS Build directory:"
59 print ms_build_directory
60 print "Please enter path: "
61 ms_build_directory = raw_input().strip()
62 if not os.path.exists(ms_build_directory):
63 raise Exception("MS Build directory did not exist")
64
65 platform_directory = os.path.join(
66 ms_build_directory,
67 'Microsoft.Cpp\\v4.0\\Platforms')
68 nacl_directory = os.path.join(platform_directory, NACL_PLATFORM_NAME)
69 pepper_directory = os.path.join(platform_directory, PEPPER_PLATFORM_NAME)
70
71 # Remove existing installation.
72 if os.path.exists(nacl_directory) or os.path.exists(pepper_directory):
73 print "Warning: Pre-existing add-in installation will be overwritten."
74 print "Continue? ((Yes))/((No))"
75 remove_answer = raw_input().strip()
76
77 if remove_answer.lower() == "yes" or remove_answer.lower() == "y":
78 if os.path.exists(nacl_directory):
79 shutil.rmtree(nacl_directory)
80 if os.path.exists(pepper_directory):
81 shutil.rmtree(pepper_directory)
82 else:
83 raise Exception('User did not allow overwrite of existing install.')
84
85 print "Installing..."
86
87 # Copy the necessary files into place.
88 shutil.copy(
binji 2012/07/26 23:32:17 Make sure to clean up copied files if an exception
tysand 2012/07/28 01:13:11 Done.
89 os.path.join(SCRIPT_DIR, 'NativeClientVSAddIn.AddIn'),
90 add_in_directory)
91 shutil.copy(
92 os.path.join(SCRIPT_DIR, 'NativeClientVSAddIn.dll'),
93 add_in_directory)
94 print "Add-in installed."
95
96 shutil.copytree(os.path.join(SCRIPT_DIR, 'NaCl'), nacl_directory)
97 print "NaCl platform installed."
98
99 # Ask user before installing PPAPI template.
100 print "\n"
101 print "Set up configuration to enable Pepper development with Visual Studio?"
102 print ("((Yes)) - I want to create and copy relevant files into a"
103 + " Pepper subdirectory")
104 print "((No)) - I am not interested or will set up the configuration later"
105 ppapi_answer = raw_input().strip()
106 if ppapi_answer.lower() == "yes" or ppapi_answer.lower() == "y":
107 create_ppapi_platform.CreatePPAPI(ms_build_directory)
108 print "PPAPI platform installed."
109 else:
110 print "Not installing PPAPI platform."
111
112 print "\nInstallation complete!\n"
34 113
35 if __name__ == '__main__': 114 if __name__ == '__main__':
36 main() 115 main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698