| OLD | NEW |
| (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 Import('env') | |
| 18 | |
| 19 | |
| 20 local_env = env.Clone( | |
| 21 PRECOMPILE_STOPFILE = '', | |
| 22 PRECOMPILE_BUILDER = '', | |
| 23 COMPONENT_STATIC = False, | |
| 24 ) | |
| 25 | |
| 26 # We disable runtime stack check to avoid increasing the code size. | |
| 27 # There is a compiler pragma to programmatically disable the stack checks | |
| 28 # but for some reason it did not work. | |
| 29 local_env.FilterOut(CPPFLAGS = ['/GS']) | |
| 30 | |
| 31 # Disable stack checks for VC80. Stack checks are on by default. | |
| 32 if local_env['msc_ver'] >= 1400: | |
| 33 local_env['CCFLAGS'] += ['/GS-'] | |
| 34 | |
| 35 | |
| 36 for omaha_version_info in local_env['omaha_versions_info']: | |
| 37 prefix = omaha_version_info.filename_prefix | |
| 38 | |
| 39 for lang in omaha_version_info.GetSupportedLanguages(): | |
| 40 lang_env = local_env.Clone() | |
| 41 lang_env.Append( | |
| 42 RCFLAGS = [ | |
| 43 '/DVERSION_MAJOR=%d' % omaha_version_info.version_major, | |
| 44 '/DVERSION_MINOR=%d' % omaha_version_info.version_minor, | |
| 45 '/DVERSION_BUILD=%d' % omaha_version_info.version_build, | |
| 46 '/DVERSION_PATCH=%d' % omaha_version_info.version_patch, | |
| 47 '/DVERSION_NUMBER_STRING=\\"%s\\"' % ( | |
| 48 omaha_version_info.GetVersionString()), | |
| 49 '/DLANGUAGE_STRING=\\"%s\\"' % lang | |
| 50 ], | |
| 51 CPPPATH = [ | |
| 52 '$OBJ_ROOT/goopdate', # Needed for the tlb | |
| 53 ], | |
| 54 LINKFLAGS = [ | |
| 55 '/NODEFAULTLIB', | |
| 56 '/ENTRY:DllEntry', | |
| 57 '/MERGE:.rdata=.text', | |
| 58 '/BASE:0x19000000', | |
| 59 ], | |
| 60 ) | |
| 61 | |
| 62 # Avoid conflicts in obj targets | |
| 63 lang_env['OBJSUFFIX'] = '_' + lang + lang_env['OBJSUFFIX'] | |
| 64 lang_env['OBJPREFIX'] = '%s/%s' % (lang, prefix) + lang_env['OBJPREFIX'] | |
| 65 | |
| 66 lang_base_name = 'generated_resources_' + lang | |
| 67 lang_res = lang_env.RES( | |
| 68 target='%s%s.res' % (prefix, lang_base_name), | |
| 69 source='goopdateres/%s.rc' % (lang_base_name), | |
| 70 ) | |
| 71 | |
| 72 # Force a rebuild when the version changes. | |
| 73 lang_env.Depends(lang_res, '$MAIN_DIR/VERSION') | |
| 74 | |
| 75 lang_inputs = [ | |
| 76 'resdll_main.cc', | |
| 77 lang_res, | |
| 78 # Needed to prevent rebuilding of the lib. | |
| 79 'resource_only_dll.def' | |
| 80 ] | |
| 81 | |
| 82 # Build the (unsigned) DLL | |
| 83 unsigned_dll = lang_env.ComponentLibrary( | |
| 84 lib_name='%s/%sgoopdateres_unsigned_%s' % (lang, prefix, lang), | |
| 85 source=lang_inputs | |
| 86 ) | |
| 87 | |
| 88 signed_dll = lang_env.SignedBinary( | |
| 89 target='%s/%sgoopdateres_%s.dll' % (lang, prefix, lang), | |
| 90 source=unsigned_dll, | |
| 91 ) | |
| 92 | |
| 93 env.Replicate('$STAGING_DIR', signed_dll) | |
| OLD | NEW |