Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / installer / mini_installer.gypi
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.
4 {
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     },
65     'VCManifestTool': {
66       'AdditionalManifestFiles': [
67         '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest',
68       ],
69     },
70   },
71   'configurations': {
72     'Debug_Base': {
73       'msvs_settings': {
74         'VCCLCompilerTool': {
75           'BasicRuntimeChecks': '0',
76           'BufferSecurityCheck': 'false',
77           'ExceptionHandling': '0',
78         },
79         'VCLinkerTool': {
80           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
81           'AdditionalOptions': [
82             '/safeseh:no',
83             '/dynamicbase:no',
84             '/ignore:4199',
85             '/ignore:4221',
86             '/nxcompat',
87           ],
88         },
89       },
90     },
91     'Release_Base': {
92       'includes': ['../../build/internal/release_defaults.gypi'],
93       'msvs_settings': {
94         'VCCLCompilerTool': {
95           'EnableIntrinsicFunctions': 'true',
96           'BasicRuntimeChecks': '0',
97           'BufferSecurityCheck': 'false',
98           'ExceptionHandling': '0',
99         },
100         'VCLinkerTool': {
101           'SubSystem': '2',  # Set /SUBSYSTEM:WINDOWS
102           'Profile': 'false',  # Conflicts with /FIXED
103           'AdditionalOptions': [
104             '/SAFESEH:NO',
105             '/NXCOMPAT',
106             '/DYNAMICBASE:NO',
107             '/FIXED',
108           ],
109         },
110       },
111     },
112   },
113   'rules': [
114     {
115       'rule_name': 'mini_installer_version',
116       'extension': 'version',
117       'variables': {
118         'template_input_path':
119             'mini_installer/mini_installer_exe_version.rc.version',
120       },
121       'inputs': [
122         '<(template_input_path)',
123         '<(version_path)',
124         '<(lastchange_path)',
125         '<(branding_dir)/BRANDING',
126       ],
127       'outputs': [
128         '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc',
129       ],
130       'action': [
131         'python', '<(version_py)',
132         '-f', '<(version_path)',
133         '-f', '<(lastchange_path)',
134         '-f', '<(branding_dir)/BRANDING',
135         '<(template_input_path)',
136         '<@(_outputs)',
137       ],
138       'process_outputs_as_sources': 1,
139       'message': 'Generating version information'
140     },
141     {
142       'rule_name': 'installer_archive',
143       'extension': 'release',
144       'variables': {
145         'create_installer_archive_py_path':
146           '../tools/build/win/create_installer_archive.py',
147       },
148       'conditions': [
149         ['enable_hidpi == 1', {
150           'variables': {
151             'enable_hidpi_flag': '--enable_hidpi=1',
152           },
153         }, {
154           'variables': {
155             'enable_hidpi_flag': '',
156           },
157         }],
158         ['target_arch=="x64"', {
159           'inputs!': [
160             '<(PRODUCT_DIR)/nacl64.exe',
161             '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
162           ],
163           'variables': {
164             'target_arch_flag': '--target_arch=x64',
165           },
166         }, {
167           'variables': {
168             'target_arch_flag': '--target_arch=x86',
169           },
170         }],
171         ['icu_use_data_file_flag == 0', {
172           'inputs': [
173             '<(PRODUCT_DIR)/icudt.dll',
174           ],
175         }, { # else icu_use_data_file_flag != 0
176           'inputs': [
177             '<(PRODUCT_DIR)/icudtl.dat',
178           ],
179         }],
180       ],
181       'inputs': [
182         '<(create_installer_archive_py_path)',
183         '<(PRODUCT_DIR)/chrome.exe',
184         '<@(chrome_dll_path)',
185         '<(PRODUCT_DIR)/nacl64.exe',
186         '<(PRODUCT_DIR)/ppGoogleNaClPluginChrome.dll',
187         '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe',
188         '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe',
189         '<(PRODUCT_DIR)/locales/en-US.pak',
190       ],
191       'outputs': [
192         'xxx.out',
193         '<(output_dir)/<(RULE_INPUT_NAME).7z',
194         '<(output_dir)/<(RULE_INPUT_NAME).packed.7z',
195         '<(output_dir)/setup.ex_',
196         '<(INTERMEDIATE_DIR)/packed_files.rc',
197       ],
198       'action': [
199         'python',
200         '<(create_installer_archive_py_path)',
201         '--build_dir=<(PRODUCT_DIR)',
202         '--output_dir=<(output_dir)',
203         '--staging_dir=<(INTERMEDIATE_DIR)',
204         '--input_file=<(RULE_INPUT_PATH)',
205         '--resource_file_path=<(INTERMEDIATE_DIR)/packed_files.rc',
206         '<(enable_hidpi_flag)',
207         '<(target_arch_flag)',
208         # TODO(sgk):  may just use environment variables
209         #'--distribution=$(CHROMIUM_BUILD)',
210         '--distribution=_google_chrome',
211         # Optional arguments to generate diff installer
212         #'--last_chrome_installer=C:/Temp/base',
213         #'--setup_exe_format=DIFF',
214         #'--diff_algorithm=COURGETTE',
215       ],
216       'message': 'Create installer archive',
217     },
218   ],
219   # TODO(mark):  <(branding_dir) should be defined by the
220   # global condition block at the bottom of the file, but
221   # this doesn't work due to the following issue:
222   #
223   #   http://code.google.com/p/gyp/issues/detail?id=22
224   #
225   # Remove this block once the above issue is fixed.
226   'conditions': [
227     [ 'branding == "Chrome"', {
228       'variables': {
229          'branding_dir': '../app/theme/google_chrome',
230       },
231     }, { # else branding!="Chrome"
232       'variables': {
233          'branding_dir': '../app/theme/chromium',
234       },
235     }],
236   ],
237 }