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