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