OLD | NEW |
| (Empty) |
1 #!/usr/bin/python2.4 | |
2 # | |
3 # Copyright 2009 Google Inc. | |
4 # | |
5 # Licensed under the Apache License, Version 2.0 (the "License"); | |
6 # you may not use this file except in compliance with the License. | |
7 # You may obtain a copy of the License at | |
8 # | |
9 # http://www.apache.org/licenses/LICENSE-2.0 | |
10 # | |
11 # Unless required by applicable law or agreed to in writing, software | |
12 # distributed under the License is distributed on an "AS IS" BASIS, | |
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 # See the License for the specific language governing permissions and | |
15 # limitations under the License. | |
16 # ======================================================================== | |
17 | |
18 # Note: The localized ClickOnce deployment manifest is generated in | |
19 # installers/build.scons. | |
20 | |
21 | |
22 Import('env') | |
23 | |
24 clickonce_name = 'clickonce_bootstrap' | |
25 clickonce_binary = clickonce_name + '.exe' | |
26 clickonce_res = clickonce_name + '.res' | |
27 | |
28 | |
29 # | |
30 # Build the .res file. | |
31 # | |
32 env.RES(target=clickonce_res, source='clickonce_bootstrap.rc') | |
33 | |
34 | |
35 # | |
36 # Generate the executable. | |
37 # | |
38 exe_action = 'csc.exe /target:winexe /platform:x86 /out:$TARGET /win32res:%s '\ | |
39 '$SOURCES' % (env.File(clickonce_res).path) | |
40 | |
41 exe_output = env.Command( | |
42 target=clickonce_binary, | |
43 source='clickonce_bootstrap.cs', | |
44 action=exe_action | |
45 ) | |
46 | |
47 # Inform Hammer that the .res file must be built before the executeable | |
48 env.Requires(exe_output, clickonce_res) | |
49 | |
50 clickonce_deploy_dir = '$TARGET_ROOT/Clickonce_Deployment' | |
51 clickonce_deploy_bin_dir = clickonce_deploy_dir + '/bin' | |
52 | |
53 # Copy executable into Clickonce deployment directory. | |
54 replicate_output = env.Replicate(clickonce_deploy_bin_dir, exe_output) | |
55 | |
56 | |
57 # | |
58 # Generate the application manifest. | |
59 # | |
60 | |
61 omaha_versions_info = env['omaha_versions_info'] | |
62 version_string = omaha_versions_info[0].GetVersionString() | |
63 | |
64 generate_manifest_action = ('@mage -New Application -ToFile $TARGET -Name %s' | |
65 ' -Version %s -FromDirectory %s -Processor x86 -TrustLevel FullTrust' % ( | |
66 clickonce_name, version_string, env.Dir(clickonce_deploy_bin_dir).abspath)) | |
67 | |
68 unsigned_manifest = env.Command( | |
69 target=clickonce_binary + '.manifest', | |
70 source=replicate_output, | |
71 action=generate_manifest_action | |
72 ) | |
73 | |
74 # Sign the application manifest. | |
75 manifest_target = '%s/%s.manifest' % (clickonce_deploy_dir, clickonce_binary) | |
76 signed_manifest = env.SignDotNetManifest(manifest_target, unsigned_manifest) | |
77 | |
78 | |
79 # Instruct Hammer to regenerate the manifests when either of these | |
80 # executables change | |
81 env.Depends( | |
82 target = [ | |
83 unsigned_manifest, | |
84 signed_manifest, | |
85 ], | |
86 dependency = [ | |
87 '%s/%s' % (clickonce_deploy_bin_dir, clickonce_binary), | |
88 '%s/GoogleUpdateSetup.exe' % (clickonce_deploy_bin_dir), | |
89 ] | |
90 ) | |
OLD | NEW |