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

Side by Side Diff: google_update/build.scons

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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
OLDNEW
(Empty)
1 #!/usr/bin/python2.4
2 # Copyright 2009 Google Inc.
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 # http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 # ========================================================================
16
17 # We always build the shell as GoogleUpdate_signed.exe.
18 # For official builds, we copy the saved constant shell to the output directory.
19 # For unofficial builds, we copy the built shell.
20 # Otherwise, the goopdate.dll certificate check fails.
21 #
22 # Changes to this executable will not appear in offical builds until they are
23 # included in an offical build and the resulting file is checked in to the
24 # saved constant shell location.
25
26
27 import omaha_version_utils
28
29 Import('env')
30
31 exe_env = env.Clone()
32
33 # Only build the first version. We don't need a test version.
34 omaha_version_info = exe_env['omaha_versions_info'][0]
35
36 # The shell contains languages not supported by the rest of Omaha.
37 # This is intended to allow us to add languages in the future without releasing
38 # a new shell.
39 shell_languages = omaha_version_utils.GetShellLanguagesForVersion(
40 omaha_version_info.GetVersion())
41
42 # TODO(omaha): While there is a precompile.h, it does not actually use PCH.
43 exe_env.Append(
44 CCFLAGS = [
45 '/wd4548',
46 '/wd4917',
47 '/wd4265',
48 '/FIgoogle_update/precompile.h',
49 ],
50 LIBS = [
51 'delayimp.lib',
52 'advapi32.lib',
53 'crypt32.lib',
54 'kernel32.lib',
55 'ole32.lib',
56 'shell32.lib',
57 'shlwapi.lib',
58 'user32.lib',
59 'wintrust.lib',
60 ('atls.lib', 'atlsd.lib')[exe_env.Bit('debug')],
61 ('libcmt.lib', 'libcmtd.lib')[exe_env.Bit('debug')],
62 ('libcpmt.lib', 'libcpmtd.lib')[exe_env.Bit('debug')],
63 ],
64 LINKFLAGS = [
65 '/NODEFAULTLIB',
66 '/MERGE:.rdata=.text'
67 '/DELAYLOAD:advapi32.dll',
68 '/DELAYLOAD:crypt32.dll',
69 '/DELAYLOAD:shell32.dll',
70 '/DELAYLOAD:shlwapi.dll',
71 '/DELAYLOAD:user32.dll',
72 '/DELAYLOAD:wintrust.dll',
73
74 # Forces the dependency on ole32.lib.
75 '/INCLUDE:_CoCreateGuid@4',
76 ],
77 RCFLAGS = [
78 '/DVERSION_MAJOR=%d' % omaha_version_info.version_major,
79 '/DVERSION_MINOR=%d' % omaha_version_info.version_minor,
80 '/DVERSION_BUILD=%d' % omaha_version_info.version_build,
81 '/DVERSION_PATCH=%d' % omaha_version_info.version_patch,
82 '/DVERSION_NUMBER_STRING=\\"%s\\"' % (
83 omaha_version_info.GetVersionString()),
84 ],
85 )
86
87
88 exe_inputs = [
89 'winmain.cc',
90 '../base/signaturevalidator.cc',
91 exe_env.RES('resource.rc'),
92 ]
93
94 # Compile .rc files, then add the resulting .res files to the exe inputs.
95 for language in shell_languages:
96 exe_inputs += exe_env.RES('generated_resources_%s.rc' % language)
97
98 # Force a rebuild when the version changes. The en file should be enough to
99 # rebuild all languages.
100 Depends(exe_env['OBJ_ROOT'] + '/google_update/generated_resources_en.res',
101 exe_env['MAIN_DIR'] + '/VERSION')
102
103 # Need to add custom suffix to avoid target conflict with
104 # common/signaturevalidator.obj
105 exe_env['OBJSUFFIX'] = '_gu' + exe_env['OBJSUFFIX']
106
107
108 # We disable runtime stack check to avoid increasing the code size.
109 # There is a compiler pragma to programmatically disable the stack checks
110 # but for some reason it did not work.
111 exe_env.FilterOut(CPPFLAGS = ['/GS'])
112
113 # Disable stack checks for VC80. Stack checks are on by default.
114 if exe_env['msc_ver'] >= 1400:
115 exe_env['CCFLAGS'] += ['/GS-']
116
117 unsigned_exe_output = exe_env.ComponentProgram(
118 prog_name='GoogleUpdate_unsigned',
119 source=exe_inputs,
120 )
121
122 sign_output = env.SignedBinary(
123 target='GoogleUpdate_signed.exe',
124 source=unsigned_exe_output,
125 )
126
127 env.Replicate('$STAGING_DIR', sign_output)
128
129 # Official builds should always use the checked in constant shell unless they
130 # are being built with the test certificate, in which case the saved constant
131 # shell would fail to validate the certificates in the build.
132 if env.Bit('build_server') and not env.Bit('test_certificate'):
133 # Copy the constant shell from its checked in location.
134 source_shell = ('$MAIN_DIR/google_update/bin/%s/GoogleUpdate.exe' %
135 ('opt', 'dbg')[env.Bit('debug')])
136 else:
137 # Use the version we just built.
138 source_shell = sign_output[0]
139
140 env.Replicate('$STAGING_DIR', source_shell, REPLICATE_REPLACE=[('_signed', '')])
141 env.Replicate(target='$STAGING_DIR',
142 source=sign_output[0],
143 REPLICATE_REPLACE=[('GoogleUpdate_signed', env['omaha_versions_inf o'][0].crash_handler_filename)]
144 )
OLDNEW
« no previous file with comments | « google_update/bin/opt/GoogleUpdate_unsigned.pdb ('k') | google_update/generated_resources_am.rc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698