Do not announce robot account token before account ID is available
[chromium-blink-merge.git] / chrome / installer / mini_installer.gyp
blobb1d7dd800cecff6b2b764499828831f0ce0eec57
2   'variables': {
3     'version_py': '<(DEPTH)/build/util/version.py',
4     'version_path': '../../chrome/VERSION',
5     'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE',
6     # 'branding_dir' is set in the 'conditions' section at the bottom.
7     'msvs_use_common_release': 0,
8     'msvs_use_common_linker_extras': 0,
9     'mini_installer_internal_deps%': 0,
10     'mini_installer_official_deps%': 0,
11   },
12   'includes': [
13     '../../build/win_precompile.gypi',
14   ],
15   'conditions': [
16     ['OS=="win"', {
17       'targets': [
18         {
19           'target_name': 'mini_installer',
20           'type': 'executable',
22           'dependencies': [
23             '../chrome.gyp:chrome',
24             '../chrome.gyp:chrome_nacl_win64',
25             '../chrome.gyp:chrome_dll',
26             '../chrome.gyp:default_extensions',
27             '../chrome.gyp:setup',
28           ],
29           'include_dirs': [
30             '../..',
31             '<(INTERMEDIATE_DIR)',
32             '<(SHARED_INTERMEDIATE_DIR)/chrome',
33           ],
34           'sources': [
35             'mini_installer/appid.h',
36             'mini_installer/chrome.release',
37             'mini_installer/chrome_appid.cc',
38             'mini_installer/configuration.cc',
39             'mini_installer/configuration.h',
40             'mini_installer/decompress.cc',
41             'mini_installer/decompress.h',
42             'mini_installer/exit_code.h',
43             'mini_installer/mini_installer.cc',
44             'mini_installer/mini_installer.ico',
45             'mini_installer/mini_installer.rc',
46             'mini_installer/mini_installer_constants.cc',
47             'mini_installer/mini_installer_constants.h',
48             'mini_installer/mini_installer_exe_version.rc.version',
49             'mini_installer/mini_installer_resource.h',
50             'mini_installer/mini_string.cc',
51             'mini_installer/mini_string.h',
52             'mini_installer/pe_resource.cc',
53             'mini_installer/pe_resource.h',
54             '<(INTERMEDIATE_DIR)/packed_files.rc',
55           ],
56           'msvs_settings': {
57             'VCCLCompilerTool': {
58               'EnableIntrinsicFunctions': 'true',
59               'BufferSecurityCheck': 'false',
60               'BasicRuntimeChecks': '0',
61               'ExceptionHandling': '0',
62             },
63             'VCLinkerTool': {
64               'RandomizedBaseAddress': '1',
65               'DataExecutionPrevention': '0',
66               'AdditionalLibraryDirectories': [
67                 '<(PRODUCT_DIR)/lib'
68               ],
69               'DelayLoadDLLs': [],
70               'EntryPointSymbol': 'MainEntryPoint',
71               'IgnoreAllDefaultLibraries': 'true',
72               'OptimizeForWindows98': '1',
73               'SubSystem': '2',     # Set /SUBSYSTEM:WINDOWS
74               'AdditionalDependencies': [
75                 'shlwapi.lib',
76                 'setupapi.lib',
77               ],
78             },
79             'VCManifestTool': {
80               'AdditionalManifestFiles': [
81                 '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest',
82               ],
83             },
84           },
85           'configurations': {
86             'Debug_Base': {
87               'msvs_settings': {
88                 'VCCLCompilerTool': {
89                   'BasicRuntimeChecks': '0',
90                   'BufferSecurityCheck': 'false',
91                   'ExceptionHandling': '0',
92                 },
93                 'VCLinkerTool': {
94                   'SubSystem': '2',     # Set /SUBSYSTEM:WINDOWS
95                   'AdditionalOptions': [
96                     '/safeseh:no',
97                     '/dynamicbase:no',
98                     '/ignore:4199',
99                     '/ignore:4221',
100                     '/nxcompat',
101                   ],
102                 },
103               },
104             },
105             'Release_Base': {
106               'includes': ['../../build/internal/release_defaults.gypi'],
107               'msvs_settings': {
108                 'VCCLCompilerTool': {
109                   'EnableIntrinsicFunctions': 'true',
110                   'BasicRuntimeChecks': '0',
111                   'BufferSecurityCheck': 'false',
112                   'ExceptionHandling': '0',
113                 },
114                 'VCLinkerTool': {
115                   'SubSystem': '2',     # Set /SUBSYSTEM:WINDOWS
116                   'Profile': 'false',   # Conflicts with /FIXED
117                   'AdditionalOptions': [
118                     '/SAFESEH:NO',
119                     '/NXCOMPAT',
120                     '/DYNAMICBASE:NO',
121                     '/FIXED',
122                   ],
123                 },
124               },
125             },
126           },
128           # Disable precompiled headers for this project, to avoid
129           # linker errors when building with VS 2008.
130           'msvs_precompiled_header': '',
131           'msvs_precompiled_source': '',
133           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
134           'msvs_disabled_warnings': [ 4267, ],
136           'variables': {
137             # Opt out the common compatibility manifest to work around
138             # crbug.com/272660.
139             # TODO(yukawa): Enable the common compatibility manifest again.
140             'win_exe_compatibility_manifest': '',
141           },
142           'rules': [
143             {
144               'rule_name': 'mini_installer_version',
145               'extension': 'version',
146               'variables': {
147                 'template_input_path': 'mini_installer/mini_installer_exe_version.rc.version',
148               },
149               'inputs': [
150                 '<(template_input_path)',
151                 '<(version_path)',
152                 '<(lastchange_path)',
153                 '<(branding_dir)/BRANDING',
154               ],
155               'outputs': [
156                 '<(PRODUCT_DIR)/mini_installer_exe_version.rc',
157               ],
158               'action': [
159                 'python', '<(version_py)',
160                 '-f', '<(version_path)',
161                 '-f', '<(lastchange_path)',
162                 '-f', '<(branding_dir)/BRANDING',
163                 '<(template_input_path)',
164                 '<@(_outputs)',
165               ],
166               'process_outputs_as_sources': 1,
167               'message': 'Generating version information'
168             },
169           ],
170           'actions': [
171             {
172               'action_name': 'installer_archive',
173               'variables': {
174                 'create_installer_archive_py_path':
175                   '../tools/build/win/create_installer_archive.py',
176               },
177               'conditions': [
178                 ['enable_hidpi == 1', {
179                   'variables': {
180                     'enable_hidpi_flag': '--enable_hidpi=1',
181                   },
182                 }, {
183                   'variables': {
184                     'enable_hidpi_flag': '',
185                   },
186                 }],
187                 ['component == "shared_library"', {
188                   'variables': {
189                     'component_build_flag': '--component_build=1',
190                   },
191                 }, {
192                   'variables': {
193                     'component_build_flag': '',
194                   },
195                   'outputs': [
196                     '<(PRODUCT_DIR)/chrome.packed.7z',
197                   ],
198                 }],
199                 ['disable_nacl==1', {
200                   'inputs!': [
201                     '<(PRODUCT_DIR)/nacl64.exe',
202                     '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
203                     '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
204                   ],
205                 }],
206                 ['target_arch=="x64"', {
207                   'inputs!': [
208                     '<(PRODUCT_DIR)/nacl64.exe',
209                     '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
210                   ],
211                   'variables': {
212                     'target_arch_flag': '--target_arch=x64',
213                   },
214                 }, {
215                   'variables': {
216                     'target_arch_flag': '--target_arch=x86',
217                   },
218                 }],
219                 ['icu_use_data_file_flag == 0', {
220                   'inputs': [
221                     '<(PRODUCT_DIR)/icudt.dll',
222                   ],
223                 }, { # else icu_use_data_file_flag != 0
224                   'inputs': [
225                     '<(PRODUCT_DIR)/icudtl.dat',
226                   ],
227                 }],
228                 ['v8_use_external_startup_data == 1', {
229                   'inputs': [
230                     '<(PRODUCT_DIR)/natives_blob.bin',
231                     '<(PRODUCT_DIR)/snapshot_blob.bin',
232                   ],
233                 }],
234               ],
235               'inputs': [
236                 '<(create_installer_archive_py_path)',
237                 '<(PRODUCT_DIR)/chrome.exe',
238                 '<(PRODUCT_DIR)/chrome.dll',
239                 '<(PRODUCT_DIR)/nacl64.exe',
240                 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
241                 '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
242                 '<(PRODUCT_DIR)/locales/en-US.pak',
243                 'mini_installer/chrome.release',
244               ],
245               'outputs': [
246                 # Also note that chrome.packed.7z is defined as an output in a
247                 # conditional above.
248                 '<(PRODUCT_DIR)/chrome.7z',
249                 '<(PRODUCT_DIR)/setup.ex_',
250                 '<(INTERMEDIATE_DIR)/packed_files.rc',
251               ],
252               'depfile': '<(INTERMEDIATE_DIR)/installer_archive.d',
253               'action': [
254                 'python',
255                 '<(create_installer_archive_py_path)',
256                 '--build_dir', '<(PRODUCT_DIR)',
257                 '--staging_dir', '<(INTERMEDIATE_DIR)',
258                 '--input_file', 'mini_installer/chrome.release',
259                 '--resource_file_path', '<(INTERMEDIATE_DIR)/packed_files.rc',
260                 '--depfile', '<(INTERMEDIATE_DIR)/installer_archive.d',
261                 '<(enable_hidpi_flag)',
262                 '<(component_build_flag)',
263                 '<(target_arch_flag)',
264                 # TODO(sgk):  may just use environment variables
265                 #'--distribution=$(CHROMIUM_BUILD)',
266                 '--distribution=_google_chrome',
267                 # Optional arguments to generate diff installer
268                 #'--last_chrome_installer=C:/Temp/base',
269                 #'--setup_exe_format=DIFF',
270                 #'--diff_algorithm=COURGETTE',
271               ],
272               'message': 'Create installer archive',
273             },
274           ],
275           # TODO(mark):  <(branding_dir) should be defined by the
276           # global condition block at the bottom of the file, but
277           # this doesn't work due to the following issue:
278           #
279           #   http://code.google.com/p/gyp/issues/detail?id=22
280           #
281           # Remove this block once the above issue is fixed.
282           'conditions': [
283             [ 'branding == "Chrome"', {
284               'variables': {
285                  'branding_dir': '../app/theme/google_chrome',
286               },
287             }, { # else branding!="Chrome"
288               'variables': {
289                  'branding_dir': '../app/theme/chromium',
290               },
291             }],
292           ],
293         },
294       ],
295       'conditions': [
296         ['test_isolation_mode != "noop"', {
297           'targets': [
298             {
299               'target_name': 'mini_installer_tests_run',
300               'type': 'none',
301               'dependencies': [
302                 'mini_installer',
303               ],
304               'includes': [
305                 '../../build/isolate.gypi',
306               ],
307               'sources': [
308                 'mini_installer_tests.isolate',
309               ],
310             },
311           ],
312         }],
313       ],
314     }],
315     [ 'branding == "Chrome"', {
316       'variables': {
317          'branding_dir': '../app/theme/google_chrome',
318       },
319     }, { # else branding!="Chrome"
320       'variables': {
321          'branding_dir': '../app/theme/chromium',
322       },
323     }],
324   ],