[Android] Added UMA for search by image context menu.
[chromium-blink-merge.git] / chrome / installer / mini_installer.gypi
blobee9403cab19261ff1d0bd5de2ad40f1afe6c7489
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5   'dependencies': [
6     '<@(chrome_dll_project)',
7     '../chrome.gyp:app_host',
8     '../chrome.gyp:chrome',
9     '../chrome.gyp:chrome_nacl_win64',
10     '../chrome.gyp:default_extensions',
11     '../chrome.gyp:setup',
12   ],
13   'include_dirs': [
14     '../..',
15     '<(INTERMEDIATE_DIR)',
16     '<(SHARED_INTERMEDIATE_DIR)/chrome',
17   ],
18   'sources': [
19     'mini_installer/appid.h',
20     'mini_installer/chrome.release',
21     'mini_installer/chrome_appid.cc',
22     'mini_installer/configuration.cc',
23     'mini_installer/configuration.h',
24     'mini_installer/decompress.cc',
25     'mini_installer/decompress.h',
26     'mini_installer/mini_installer.cc',
27     'mini_installer/mini_installer.h',
28     'mini_installer/mini_installer.ico',
29     'mini_installer/mini_installer.rc',
30     'mini_installer/mini_installer_exe_version.rc.version',
31     'mini_installer/mini_installer_resource.h',
32     'mini_installer/mini_string.cc',
33     'mini_installer/mini_string.h',
34     'mini_installer/pe_resource.cc',
35     'mini_installer/pe_resource.h',
36     '<(INTERMEDIATE_DIR)/packed_files.rc',
37   ],
38   # Disable precompiled headers for this project, to avoid
39   # linker errors when building with VS 2008.
40   'msvs_precompiled_header': '',
41   'msvs_precompiled_source': '',
42   'msvs_settings': {
43     'VCCLCompilerTool': {
44       'EnableIntrinsicFunctions': 'true',
45       'BufferSecurityCheck': 'false',
46       'BasicRuntimeChecks': '0',
47       'ExceptionHandling': '0',
48     },
49     'VCLinkerTool': {
50       'OutputFile': '<(output_dir)/mini_installer.exe',
51       'MapFileName': '<(output_dir)/mini_installer.map',
52       'RandomizedBaseAddress': '1',
53       'DataExecutionPrevention': '0',
54       'AdditionalLibraryDirectories': [
55         '<(PRODUCT_DIR)/lib'
56       ],
57       'DelayLoadDLLs': [],
58       'EntryPointSymbol': 'MainEntryPoint',
59       'GenerateMapFile': 'true',
60       'IgnoreAllDefaultLibraries': 'true',
61       'OptimizeForWindows98': '1',
62       'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
63       'AdditionalDependencies': [
64         'shlwapi.lib',
65         'setupapi.lib',
66       ],
67       'conditions': [
68         ['MSVS_VERSION=="2005e"', {
69           'AdditionalDependencies': [  # Must explicitly link in VC2005E
70             'advapi32.lib',
71             'shell32.lib',
72           ],
73         }],
74       ],
75     },
76     'VCManifestTool': {
77       'AdditionalManifestFiles': [
78         '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest',
79       ],
80     },
81   },
82   'configurations': {
83     'Debug_Base': {
84       'msvs_settings': {
85         'VCCLCompilerTool': {
86           'BasicRuntimeChecks': '0',
87           'BufferSecurityCheck': 'false',
88           'ExceptionHandling': '0',
89         },
90         'VCLinkerTool': {
91           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
92           'AdditionalOptions': [
93             '/safeseh:no',
94             '/dynamicbase:no',
95             '/ignore:4199',
96             '/ignore:4221',
97             '/nxcompat',
98           ],
99         },
100       },
101     },
102     'Release_Base': {
103       'includes': ['../../build/internal/release_defaults.gypi'],
104       'msvs_settings': {
105         'VCCLCompilerTool': {
106           'EnableIntrinsicFunctions': 'true',
107           'BasicRuntimeChecks': '0',
108           'BufferSecurityCheck': 'false',
109           'ExceptionHandling': '0',
110         },
111         'VCLinkerTool': {
112           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
113           'Profile': 'false',  # Conflicts with /FIXED
114           'AdditionalOptions': [
115             '/SAFESEH:NO',
116             '/NXCOMPAT',
117             '/DYNAMICBASE:NO',
118             '/FIXED',
119           ],
120         },
121       },
122     },
123   },
124   'rules': [
125     {
126       'rule_name': 'mini_installer_version',
127       'extension': 'version',
128       'variables': {
129         'template_input_path':
130             'mini_installer/mini_installer_exe_version.rc.version',
131       },
132       'inputs': [
133         '<(template_input_path)',
134         '<(version_path)',
135         '<(lastchange_path)',
136         '<(branding_dir)/BRANDING',
137       ],
138       'outputs': [
139         '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc',
140       ],
141       'action': [
142         'python', '<(version_py)',
143         '-f', '<(version_path)',
144         '-f', '<(lastchange_path)',
145         '-f', '<(branding_dir)/BRANDING',
146         '<(template_input_path)',
147         '<@(_outputs)',
148       ],
149       'process_outputs_as_sources': 1,
150       'message': 'Generating version information'
151     },
152     {
153       'rule_name': 'installer_archive',
154       'extension': 'release',
155       'variables': {
156         'create_installer_archive_py_path':
157           '../tools/build/win/create_installer_archive.py',
158       },
159       'conditions': [
160         ['enable_hidpi == 1', {
161           'variables': {
162             'enable_hidpi_flag': '--enable_hidpi=1',
163           },
164         }, {
165           'variables': {
166             'enable_hidpi_flag': '',
167           },
168         }],
169         ['enable_touch_ui == 1', {
170           'variables': {
171             'enable_touch_ui_flag': '--enable_touch_ui=1',
172           },
173         }, {
174           'variables': {
175             'enable_touch_ui_flag': '',
176           },
177         }],
178         ['target_arch=="x64"', {
179           'inputs!': [
180             '<(PRODUCT_DIR)/nacl64.exe',
181             '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
182           ],
183           'variables': {
184             'target_arch_flag': '--target_arch=x64',
185           },
186         }, {
187           'variables': {
188             'target_arch_flag': '--target_arch=x86',
189           },
190         }],
191       ],
192       'inputs': [
193         '<(create_installer_archive_py_path)',
194         '<(PRODUCT_DIR)/app_host.exe',
195         '<(PRODUCT_DIR)/chrome.exe',
196         '<@(chrome_dll_path)',
197         '<(PRODUCT_DIR)/nacl64.exe',
198         '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll',
199         '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
200         '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
201         '<(PRODUCT_DIR)/locales/en-US.pak',
202         '<(PRODUCT_DIR)/icudt.dll',
203       ],
204       'outputs': [
205         'xxx.out',
206         '<(output_dir)/<(RULE_INPUT_NAME).7z',
207         '<(output_dir)/<(RULE_INPUT_NAME).packed.7z',
208         '<(output_dir)/setup.ex_',
209         '<(INTERMEDIATE_DIR)/packed_files.rc',
210       ],
211       'action': [
212         'python',
213         '<(create_installer_archive_py_path)',
214         '--build_dir=<(PRODUCT_DIR)',
215         '--output_dir=<(output_dir)',
216         '--staging_dir=<(INTERMEDIATE_DIR)',
217         '--input_file=<(RULE_INPUT_PATH)',
218         '--resource_file_path=<(INTERMEDIATE_DIR)/packed_files.rc',
219         '<(enable_hidpi_flag)',
220         '<(enable_touch_ui_flag)',
221         '<(target_arch_flag)',
222         # TODO(sgk):  may just use environment variables
223         #'--distribution=$(CHROMIUM_BUILD)',
224         '--distribution=_google_chrome',
225         # Optional arguments to generate diff installer
226         #'--last_chrome_installer=C:/Temp/base',
227         #'--setup_exe_format=DIFF',
228         #'--diff_algorithm=COURGETTE',
229       ],
230       'message': 'Create installer archive'
231     },
232   ],
233   # TODO(mark):  <(branding_dir) should be defined by the
234   # global condition block at the bottom of the file, but
235   # this doesn't work due to the following issue:
236   #
237   #   http://code.google.com/p/gyp/issues/detail?id=22
238   #
239   # Remove this block once the above issue is fixed.
240   'conditions': [
241     [ 'branding == "Chrome"', {
242       'variables': {
243          'branding_dir': '../app/theme/google_chrome',
244       },
245     }, { # else branding!="Chrome"
246       'variables': {
247          'branding_dir': '../app/theme/chromium',
248       },
249     }],
250   ],