Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: installer/installer.gyp

Issue 5394579117309952: Installer localization and new build system (Closed)
Patch Set: Created Dec. 10, 2013, 4:11 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « installer/emb.vbs ('k') | installer/msibuild.cmd » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #
2 # Expects command line definition for variable 'target_arch'
3 # Must be either 'ia32' or 'x64'
4 #
5 # This .gyp file sits in directory 'installer'.
6 # When gyp translates files locations, base them here.
7 #
8 # The solution file from this .gyp source lands in 'installer/build/<(target_arc h)'.
9 # When gyp does not translate file locations, base them here.
10 #
1 { 11 {
2 'includes': [ '../defaults.gypi' ], 12 'includes': [ '../defaults.gypi' ],
3
4 'variables': 13 'variables':
5 { 14 {
15 #
16 # Build directories, both common and architecture-specific
17 #
18 'build_dir_arch': 'build/<(target_arch)',
19 'build_dir_common': 'build/common',
20
21 #
22 # MSI file names.
23 # -- The base MSI is a single-language MSI as originally constructed.
24 # This is the one from which all transforms are derived.
25 # -- The interim MSI is the working copy of the multilanguage MSI during the build process.
26 # It starts off as a copy of the base MSI.
27 # Transforms are added to the MSI one at a time.
28 # -- The final MSI is the ultimate product of the build.
29 # It is simply the last interim MSI, after all the transforms have been embedded.
30 #
31 'base_msi': '<(build_dir_arch)/adblockplusie-BASE-<(target_arch).msi',
32 'interim_msi': '<(build_dir_arch)/adblockplusie-INTERIM-<(target_arch).msi',
33 'final_msi': '<(build_dir_arch)/adbblockplusie-multilanguage-<(target_arch). msi',
34
35 #
36 # WiX installer sources for the compiler, architecture-specific.
37 # The top source is what goes on the command line.
38 # All the sources are inputs.
39 # Note that locality sources (.wxl) are not present here because they're han dled at link time.
40 #
41 'installer_source_top_file': 'adblockplusie.wxs',
42 'installer_source_files':
43 [
44 '<(installer_source_top_file)',
45 'bho_registry_value.wxi',
46 'dll_class.wxi',
47 ],
48 'installer_object_file': '<(build_dir_arch)/adblockplusie.wixobj',
49
50 #
51 # WiX installer sources for the compiler, common to all architectures
52 #
53 'common_source_files': [ 'custom_WixUI_InstallDir.wxs' ],
54 'common_object_file': '<(build_dir_common)/common.wixobj',
55
56 #
57 # All the assets from the plug-in that are copied into the MSI file.
58 #
59 'payloads': [],
60
6 # The 'component' variable is required to use 'defaults.gypi'. 61 # The 'component' variable is required to use 'defaults.gypi'.
7 # It's value 'shared_library' is duplicated by the 'type' property of a target. 62 # It's value 'shared_library' is duplicated by the 'type' property of a target.
8 # We may want to migrate compiler settings for the CA library at some po int and stop using 'defaults.gypi' here 63 # We may want to migrate compiler settings for the CA library at some po int and stop using 'defaults.gypi' here
9 'component%': '', 64 'component%': '',
10 }, 65 },
11 66
12 'target_defaults': 67 'target_defaults':
13 { 68 {
14 'msvs_cygwin_shell': 0, 69 'msvs_cygwin_shell': 0,
70 'variables': {
71 #
72 # We don't really want a default 'locale_id', but we need one to avoid an "undefined variable" error when the ".wxl" rule is invoked.
73 # Note that the action in the rule uses later-phase substitution with ">", which occurs after the rule is merged with the target.
74 # Apparently, though, it's also being evaluated earlier, before 'local e_id' is defined in the target.
75 # Therefore, count this as a workaround for a gyp defect.
76 #
77 'locale_id%': '0',
78
79 #
80 # We do want a default 'msi_build_phase', because in all but the first MSI build we want the flag "additional"
81 #
82 'msi_build_phase%': 'additional',
83 },
84 'rules':
85 [ {
86 #
87 # Rule to build a single-language MSI as part of a chain to create a m ultiple-language MSI
88 # The rule runs a .cmd file to execute the commands; this chose arise s from gyp limitations and defects.
89 #
90 # gyp can only handle a single rule per extension.
91 # Since we have only one ".wxl" file, we need to run all the operation s (link MSI, diff to MST, embed MST into MSI) with a single action.
92 # gyp does not have syntax for multi-line actions.
93 # Including a newline as a token doesn't work because of the way gyp " fixes" path names; it treats the newline as a path, prefixes it, and quotes it a ll.
94 #
95 # Furthermore, there's the issue of overriding the rule for the first MSI, the one that generates the BASE against which transforms are generated.
96 # In order to override the rule, we'd need to duplicate most of this o ne, particularly all the file name expressions, violating the write-once princip le.
97 #
98 'rule_name': 'MSI Build',
99 'extension': 'wxl',
100 'message': 'Generating embedded transform for "<(RULE_INPUT_ROOT)"',
101 'inputs': [ 'emb.vbs', '<(base_msi)', '<@(payloads)' ],
102 'outputs': [ '<(build_dir_arch)/adblockplusie-<(RULE_INPUT_ROOT)-<(tar get_arch).msi', '<(build_dir_arch)/adblockplusie-<(RULE_INPUT_ROOT)-<(target_arc h).mst' ],
103 'action':
104 [
105 '..\..\msibuild.cmd >(msi_build_phase) >(locale_id)', '<(RULE_INPUT_ PATH)',
106 '<(build_dir_arch)/adblockplusie-<(RULE_INPUT_ROOT)-<(target_arc h).msi',
107 '<(build_dir_arch)/adblockplusie-<(RULE_INPUT_ROOT)-<(target_arc h).mst',
108 '<(build_dir_arch)/adblockplusie-BASE-<(target_arch).msi',
109 '<(build_dir_arch)/adblockplusie-INTERIM-<(target_arch).msi',
110 '<(installer_object_file)', '<(common_object_file)',
111 ]
112 } ],
15 }, 113 },
16 114
17 'targets': 115 'targets':
18 [ 116 [
19 ############# 117 #############
118 # Compile common WiX source.
119 # All the WiX-linked sources that depend neither on architecture nor confi guration.
120 # Principally for user interface.
121 #############
122 {
123 'target_name': 'Installer, common WiX',
124 'type': 'none',
125 'actions':
126 [ {
127 'action_name': 'WiX compile common',
128 'message': 'Compiling common WiX sources',
129 'inputs':
130 [
131 '<@(common_source_files)'
132 ],
133 'outputs':
134 [
135 # List must contain only a single element so that "-out" argument works correctly.
136 '<(common_object_file)'
137 ],
138 'action':
139 [ 'candle -nologo -dNoDefault ', '-out', '<@(_outputs)', '<@(_inputs)' ]
140 } ]
141 },
142
143 #############
144 # Compile installer WiX source.
145 # Platform-specific.
146 #############
147 {
148 'target_name': 'Installer, architecture-specific WiX',
149 'type': 'none',
150 'actions':
151 [ {
152 'action_name': 'Compile WiX installer',
153 'message': 'Compiling installer WiX sources',
154 'inputs':
155 [
156 '<@(installer_source_files)'
157 ],
158 'outputs':
159 [
160 # List must contain only a single element so that "-out" argument works correctly.
161 '<(installer_object_file)'
162 ],
163 'action':
164 [ 'candle -nologo -dNoDefault -dVersion=91.0 -dConfiguration=Release ', '-out', '<@(_outputs)', '<(installer_source_top_file)' ]
165 } ]
166 },
167
168 ##################################
169 # MSI targets
170 #
171 # Building a multiple-language MSI requires embedding a transform for each lan guage into a single MSI database.
172 # Each step requires a locale identifier (Microsoft LCID) as a parameter and a WiX localization file (.wxl) as a source.
173 # gyp does not support per-source-file parameters, so we're stuck with one pro ject per step.
174 # The naming convention for projects:
175 # - The token "MSI". Projects appear in dictionary order in the resulting solu tion file. A common initial token groups them.
176 # - The language tag. These are mostly just the two-letter language codes. The re are a few sublanguage tags, though.
177 # - The LCID of the language in four digit hexadecimal form, zero-padded if ne cessary.
178 # Note: This supports Traditional Chinese (used in Taiwan) with LCID 0x7C0 4.
179 # Exception: The BASE MSI is named so that it appears first.
180 #
181 # These steps are arranged as a linked list, starting with the BASE version of the MSI,
182 # which is simply a single-language MSI whose language will be the default l anguage for the final installer.
183 # The list is singly-linked by the 'dependencies' element.
184 # For sanity (and code audit), the project declarations appear below in the sa me order as they will appear in the compiled solution file.
185 #
186 # The naming convention for WiX localization files (.wxl) is a combination of the language ID and the sublanguage ID.
187 # It can be thought of as a text representation of the LCID as the Windows API sees it.
188 # Mostly these agree with IETF-style two-part identifiers, but they're not alw ays the same.
189 # For many languages, there is only a single sublanguage defined; these langua ges still use a two-part name for consistency.
190 # Generic languages, that is, those with no sublanguage ID (it's zero), use na mes of only a single part.
191 # The generic languages currently used are these: ar, de, en, fr, it, ms, nl.
192 # We currently don't have generic "es" (Spanish), nor a specific "es-MX" (Span ish - Mexico).
193 #
194 # Adding a new language consists of three steps.
195 # 1. Create a '.wxl' localization file in 'src\msi\locale'.
196 # This file contains an XML element <String Id="LANG"> that specifies the LCID.
197 # Set the codepage element also, if needed.
198 # 2. In the <Package> element inside 'adblockplusie.wxs', the attribute "langu ages" contains a comma-separated list of all languages supported by the installe r.
199 # Add the LCID to this list.
200 # If this isn't done, the build will succeed but the embedded transform w ill be ignored at run-time.
201 # 3. Create a target for the language.
202 # Define the gyp variable 'locale_id' as the LCID.
203 # Add the target to the linked project list by setting the gyp variable ' dependencies' of both the new project and the one following it.
204 #
205 # Reference: MSDN "Language Identifier Constants and Strings" http://msdn.micr osoft.com/en-us/library/dd318693%28v=vs.85%29.aspx
206 # Many languages have only a single sublanguage. For these, we use the sublang uage-specific LCID (usually starting with 0x04).
207 # For languages with more than one sublanguage (English, German, French, etc.) , we use the generic LCID (sublanguage code equals zero).
208 # Exception: Spanish is currently es-ES, and the sublanguage-specific LCID is used.
209 #
210 # We use Alpha-3 codes (from ISO 693-2): fil.
211 # Filipino (fil) doesn't have a two-letter code.
212 #
213 # Warning: The Windows Installer still (as of 2013) does not fully support Uni code.
214 # Strings remain encoded by code page specification.
215 # Certain languages are Unicode-only, such as Hindi (hi), do not have code pag e assignments.
216 # Such languages might not work if localized, either partially or completely.
217 # These languages _need_ testing before publication, not just a wish and a pra yer.
218 #
219 # Warning Continued: The issue is that Win32 ANSI entry points (those ending i n "A") will fail for such languages.
220 # Wide-character entry points (those ending in "W") should work.
221 # The issue is that much of the interior of the installer is opaque, and it's not possible to know if any ANSI calls remain enabled.
222 # The WiX user interface code (generally) uses wide characters, but it calls s ome default error notifications that may not behave correctly.
223 #
224 # Another warning, the .wxl files are all XML files, whose declared encoding i s "utf-8".
225 # This encoding may need to be changed for certain files to ensure that charac ter input is correct.
226 #
227 # Reference: MSDN "Code Page Identifiers" http://msdn.microsoft.com/en-us/libr ary/dd317756%28VS.85%29.aspx
228 #
229 ##################################
230 #############
231 # Link WiX objects and payloads, creating base MSI.
232 # Platform-specific.
233 # Generates the reference MSI upon which all transforms are based.
234 #############
235 {
236 'target_name': 'MSI @ de 7 (German) [BASE]',
237 'type': 'none',
238 'dependencies' :
239 [
240 'Installer, architecture-specific WiX',
241 'Installer, common WiX',
242 'installer-ca'
243 ],
244 'variables': {
245 # Only define 'msi_build_phase' once as 'initial', here in the BASE ta rget. All others use the default value.
246 'msi_build_phase': 'initial',
247 'locale_id': '7',
248 },
249 'sources': [ 'src/msi/locale/de.wxl' ],
250 },
251
252 #############
253 # MSI ar 1 (Arabic - generic)
254 #############
255 {
256 'target_name': 'MSI ar 1 (Arabic - generic)',
257 'type': 'none',
258 'dependencies' : [ 'MSI @ de 7 (German) [BASE]' ],
259 'variables': { 'locale_id': '1' },
260 'sources': [ 'src/msi/locale/ar.wxl' ],
261 },
262
263 #############
264 # MSI bg-BG 1026 (Bulgarian - Bulgaria)
265 #############
266 {
267 'target_name': 'MSI bg-BG 1026 (Bulgarian - Bulgaria)',
268 'type': 'none',
269 'dependencies' : [ 'MSI ar 1 (Arabic - generic)' ],
270 'variables': { 'locale_id': '1026' },
271 'sources': [ 'src/msi/locale/bg-BG.wxl' ],
272 },
273
274 #############
275 # MSI ca-ES 1027 (Catalan - Spain)
276 #############
277 {
278 'target_name': 'MSI ca-ES 1027 (Catalan - Spain)',
279 'type': 'none',
280 'dependencies' : [ 'MSI bg-BG 1026 (Bulgarian - Bulgaria)' ],
281 'variables': { 'locale_id': '1027' },
282 'sources': [ 'src/msi/locale/ca-ES.wxl' ],
283 },
284
285 #############
286 # MSI cs-CZ 1029 (Czech - Czech Republic)
287 #############
288 {
289 'target_name': 'MSI cs-CZ 1029 (Czech - Czech Republic)',
290 'type': 'none',
291 'dependencies' : [ 'MSI ca-ES 1027 (Catalan - Spain)' ],
292 'variables': { 'locale_id': '1029' },
293 'sources': [ 'src/msi/locale/cs-CZ.wxl' ],
294 },
295
296 #############
297 # MSI da-DK 1030 (Danish - Denmark)
298 #############
299 {
300 'target_name': 'MSI da-DK 1030 (Danish - Denmark)',
301 'type': 'none',
302 'dependencies' : [ 'MSI cs-CZ 1029 (Czech - Czech Republic)' ],
303 'variables': { 'locale_id': '1030' },
304 'sources': [ 'src/msi/locale/da-DK.wxl' ],
305 },
306
307 #############
308 # MSI el-GR 1032 (Greek - Greece)
309 #############
310 {
311 'target_name': 'MSI el-GR 1032 (Greek - Greece)',
312 'type': 'none',
313 'dependencies' : [ 'MSI da-DK 1030 (Danish - Denmark)' ],
314 'variables': { 'locale_id': '1032' },
315 'sources': [ 'src/msi/locale/el-GR.wxl' ],
316 },
317
318 #############
319 # MSI en 9 (English - generic)
320 #############
321 {
322 'target_name': 'MSI en 9 (English - generic)',
323 'type': 'none',
324 'dependencies' : [ 'MSI el-GR 1032 (Greek - Greece)' ],
325 'variables': { 'locale_id': '9' },
326 'sources': [ 'src/msi/locale/en.wxl' ],
327 },
328
329 #############
330 # MSI es-ES 1034 (Spanish - Spain)
331 #############
332 {
333 'target_name': 'MSI es-ES 1034 (Spanish - Spain)',
334 'type': 'none',
335 'dependencies' : [ 'MSI en 9 (English - generic)' ],
336 'variables': { 'locale_id': '1034' },
337 'sources': [ 'src/msi/locale/es-ES.wxl' ],
338 },
339
340 #############
341 # MSI et-EE 1061 (Estonian - Estonia)
342 #############
343 {
344 'target_name': 'MSI et-EE 1061 (Estonian - Estonia)',
345 'type': 'none',
346 'dependencies' : [ 'MSI es-ES 1034 (Spanish - Spain)' ],
347 'variables': { 'locale_id': '1061' },
348 'sources': [ 'src/msi/locale/et-EE.wxl' ],
349 },
350
351 #############
352 # MSI fi 1035 (Finnish - Finland)
353 #############
354 {
355 'target_name': 'MSI fi 1035 (Finnish - Finland)',
356 'type': 'none',
357 'dependencies' : [ 'MSI et-EE 1061 (Estonian - Estonia)' ],
358 'variables': { 'locale_id': '1035' },
359 'sources': [ 'src/msi/locale/fi-FI.wxl' ],
360 },
361
362 #############
363 # MSI fil-PH 1124 (Filipino - Philippines)
364 #############
365 {
366 'target_name': 'MSI fil-PH 1124 (Filipino - Philippines)',
367 'type': 'none',
368 'dependencies' : [ 'MSI fi 1035 (Finnish - Finland)' ],
369 'variables': { 'locale_id': '1124' },
370 'sources': [ 'src/msi/locale/fil-PH.wxl' ],
371 },
372
373 #############
374 # MSI fr 12 (French - generic)
375 #############
376 {
377 'target_name': 'MSI fr 12 (French - generic)',
378 'type': 'none',
379 'dependencies' : [ 'MSI fil-PH 1124 (Filipino - Philippines)' ],
380 'variables': { 'locale_id': '12' },
381 'sources': [ 'src/msi/locale/fr.wxl' ],
382 },
383
384 #############
385 # MSI he-IL 1037 (Hebrew - Israel)
386 #############
387 {
388 'target_name': 'MSI he-IL 1037 (Hebrew - Israel)',
389 'type': 'none',
390 'dependencies' : [ 'MSI fr 12 (French - generic)' ],
391 'variables': { 'locale_id': '1037' },
392 'sources': [ 'src/msi/locale/he-IL.wxl' ],
393 },
394
395 #############
396 # MSI hi-IN 1081 (Hindi - India)
397 #############
398 {
399 'target_name': 'MSI hi-IN 1081 (Hindi - India)',
400 'type': 'none',
401 'dependencies' : [ 'MSI he-IL 1037 (Hebrew - Israel)' ],
402 'variables': { 'locale_id': '1081' },
403 'sources': [ 'src/msi/locale/hi-IN.wxl' ],
404 },
405
406 #############
407 # MSI hr-HR 1050 (Croatian - Croatia)
408 #############
409 {
410 'target_name': 'MSI hr-HR 1050 (Croatian - Croatia)',
411 'type': 'none',
412 'dependencies' : [ 'MSI hi-IN 1081 (Hindi - India)' ],
413 'variables': { 'locale_id': '1050' },
414 'sources': [ 'src/msi/locale/hr-HR.wxl' ],
415 },
416
417 #############
418 # MSI hu-HU 1038 (Hungarian - Hungary)
419 #############
420 {
421 'target_name': 'MSI hu-HU 1038 (Hungarian - Hungary)',
422 'type': 'none',
423 'dependencies' : [ 'MSI hr-HR 1050 (Croatian - Croatia)' ],
424 'variables': { 'locale_id': '1038' },
425 'sources': [ 'src/msi/locale/hu-HU.wxl' ],
426 },
427
428 #############
429 # MSI it 16 (Italian - generic)
430 #############
431 {
432 'target_name': 'MSI it 16 (Italian - generic)',
433 'type': 'none',
434 'dependencies' : [ 'MSI hu-HU 1038 (Hungarian - Hungary)' ],
435 'variables': { 'locale_id': '16' },
436 'sources': [ 'src/msi/locale/it.wxl' ],
437 },
438
439 #############
440 # MSI ja-JP 1041 (Japanese - Japan)
441 #############
442 {
443 'target_name': 'MSI ja-JP 1041 (Japanese - Japan)',
444 'type': 'none',
445 'dependencies' : [ 'MSI it 16 (Italian - generic)' ],
446 'variables': { 'locale_id': '1041' },
447 'sources': [ 'src/msi/locale/ja-JP.wxl' ],
448 },
449
450 #############
451 # MSI kn-IN 1099 (Kannada - India)
452 #############
453 {
454 'target_name': 'MSI kn-IN 1099 (Kannada - India)',
455 'type': 'none',
456 'dependencies' : [ 'MSI ja-JP 1041 (Japanese - Japan)' ],
457 'variables': { 'locale_id': '1099' },
458 'sources': [ 'src/msi/locale/kn-IN.wxl' ],
459 },
460
461 #############
462 # MSI mr-IN 1102 (Marathi - India)
463 #############
464 {
465 'target_name': 'MSI mr-IN 1102 (Marathi - India)',
466 'type': 'none',
467 'dependencies' : [ 'MSI kn-IN 1099 (Kannada - India)' ],
468 'variables': { 'locale_id': '1102' },
469 'sources': [ 'src/msi/locale/mr-IN.wxl' ],
470 },
471
472 #############
473 # MSI ms 62 (Malay - generic)
474 #############
475 {
476 'target_name': 'MSI ms 62 (Malay - generic)',
477 'type': 'none',
478 'dependencies' : [ 'MSI mr-IN 1102 (Marathi - India)' ],
479 'variables': { 'locale_id': '62' },
480 'sources': [ 'src/msi/locale/ms.wxl' ],
481 },
482
483 #############
484 # MSI nb-NO 1044 (Norwegian - Bokmål, Norway)
485 # Target name has a vowel change to work around a character encoding problem in gyp/MSVS.
486 #############
487 {
488 'target_name': 'MSI nb-NO 1044 (Norwegian - Bokmal, Norway)',
489 'type': 'none',
490 'dependencies' : [ 'MSI ms 62 (Malay - generic)' ],
491 'variables': { 'locale_id': '1044' },
492 'sources': [ 'src/msi/locale/nb-NO.wxl' ],
493 },
494
495 #############
496 # MSI nl 19 (Dutch - generic)
497 #############
498 {
499 'target_name': 'MSI nl 19 (Dutch - generic)',
500 'type': 'none',
501 'dependencies' : [ 'MSI nb-NO 1044 (Norwegian - Bokmal, Norway)' ],
502 'variables': { 'locale_id': '19' },
503 'sources': [ 'src/msi/locale/nl.wxl' ],
504 },
505
506 #############
507 # MSI nn-NO 2068 (Norwegian - Nynorsk, Norway)
508 #############
509 {
510 'target_name': 'MSI nn-NO 2068 (Norwegian - Nynorsk, Norway)',
511 'type': 'none',
512 'dependencies' : [ 'MSI nl 19 (Dutch - generic)' ],
513 'variables': { 'locale_id': '2068' },
514 'sources': [ 'src/msi/locale/nn-NO.wxl' ],
515 },
516
517 #############
518 # MSI pl-PL 1045 (Polish - Poland)
519 #############
520 {
521 'target_name': 'MSI pl-PL 1045 (Polish - Poland)',
522 'type': 'none',
523 'dependencies' : [ 'MSI nn-NO 2068 (Norwegian - Nynorsk, Norway)' ],
524 'variables': { 'locale_id': '1045' },
525 'sources': [ 'src/msi/locale/pl-PL.wxl' ],
526 },
527
528 #############
529 # MSI pt-BR 1046 (Portuguese - Brazil)
530 #############
531 {
532 'target_name': 'MSI pt-BR 1046 (Portuguese - Brazil)',
533 'type': 'none',
534 'dependencies' : [ 'MSI pl-PL 1045 (Polish - Poland)' ],
535 'variables': { 'locale_id': '1046' },
536 'sources': [ 'src/msi/locale/pt-BR.wxl' ],
537 },
538
539 #############
540 # MSI pt-PT 2070 (Portuguese - Portugal)
541 #############
542 {
543 'target_name': 'MSI pt-PT 2070 (Portuguese - Portugal)',
544 'type': 'none',
545 'dependencies' : [ 'MSI pt-BR 1046 (Portuguese - Brazil)' ],
546 'variables': { 'locale_id': '2070' },
547 'sources': [ 'src/msi/locale/pt-PT.wxl' ],
548 },
549
550 #############
551 # MSI ro-RO 1048 (Romanian - Romania)
552 #############
553 {
554 'target_name': 'MSI ro-RO 1048 (Romanian - Romania)',
555 'type': 'none',
556 'dependencies' : [ 'MSI pt-PT 2070 (Portuguese - Portugal)' ],
557 'variables': { 'locale_id': '1048' },
558 'sources': [ 'src/msi/locale/ro-RO.wxl' ],
559 },
560
561 #############
562 # MSI ru-RU 1049 (Russian - Russia)
563 #############
564 {
565 'target_name': 'MSI ru-RU 1049 (Russian - Russia)',
566 'type': 'none',
567 'dependencies' : [ 'MSI ro-RO 1048 (Romanian - Romania)' ],
568 'variables': { 'locale_id': '1049' },
569 'sources': [ 'src/msi/locale/ru-RU.wxl' ],
570 },
571
572 #############
573 # MSI sk-SK 1051 (Slovak - Slovakia)
574 #############
575 {
576 'target_name': 'MSI sk-SK 1051 (Slovak - Slovakia)',
577 'type': 'none',
578 'dependencies' : [ 'MSI ru-RU 1049 (Russian - Russia)' ],
579 'variables': { 'locale_id': '1051' },
580 'sources': [ 'src/msi/locale/sk-SK.wxl' ],
581 },
582
583 #############
584 # MSI sv-SE 1053 (Swedish - Sweden)
585 #############
586 {
587 'target_name': 'MSI sv-SE 1053 (Swedish - Sweden)',
588 'type': 'none',
589 'dependencies' : [ 'MSI sk-SK 1051 (Slovak - Slovakia)' ],
590 'variables': { 'locale_id': '1053' },
591 'sources': [ 'src/msi/locale/sv-SE.wxl' ],
592 },
593
594 #############
595 # MSI th-TH 1054 (Thai - Thailand)
596 #############
597 {
598 'target_name': 'MSI th-TH 1054 (Thai - Thailand)',
599 'type': 'none',
600 'dependencies' : [ 'MSI sv-SE 1053 (Swedish - Sweden)' ],
601 'variables': { 'locale_id': '1054' },
602 'sources': [ 'src/msi/locale/th-TH.wxl' ],
603 },
604
605 #############
606 # MSI tr-TR 1055 (Turkish - Turkey)
607 #############
608 {
609 'target_name': 'MSI tr-TR 1055 (Turkish - Turkey)',
610 'type': 'none',
611 'dependencies' : [ 'MSI th-TH 1054 (Thai - Thailand)' ],
612 'variables': { 'locale_id': '1055' },
613 'sources': [ 'src/msi/locale/tr-TR.wxl' ],
614 },
615
616 #############
617 # MSI uk-UA 1058 (Ukrainian - Ukraine)
618 #############
619 {
620 'target_name': 'MSI uk-UA 1058 (Ukrainian - Ukraine)',
621 'type': 'none',
622 'dependencies' : [ 'MSI tr-TR 1055 (Turkish - Turkey)' ],
623 'variables': { 'locale_id': '1058' },
624 'sources': [ 'src/msi/locale/uk-UA.wxl' ],
625 },
626
627 #############
628 # MSI ur-PK 1056 (Urdu - Pakistan)
629 #############
630 {
631 'target_name': 'MSI ur-PK 1056 (Urdu - Pakistan)',
632 'type': 'none',
633 'dependencies' : [ 'MSI uk-UA 1058 (Ukrainian - Ukraine)' ],
634 'variables': { 'locale_id': '1056' },
635 'sources': [ 'src/msi/locale/ur-PK.wxl' ],
636 },
637
638 #####################
639 # Note: The locale codes for Chinese differ between the usage in the .NET libr ary and the Windows OS.
640 # Mostly these are the same, but there are some places where LCID's are list ed that use the .NET values.
641 # The Windows Installer is a laggard in i18n issues, so we're taking the pre cautionary approach to use Windows API values for the LCID.
642 # The .NET version has the notion of culture hierarchies, an invariant cultu re, and a neutral culture.
643 # The .NET neutral culture ID for Traditional Chinese is 0x7C04, but this is not supported in the Windows API.
644 # The .NET neutral culture ID for Simplified Chinese 0x0004, but this is the neutral/invariant LCID for the Windows API.
645 # As a result, we're using sublanguage codes 0x01 and 0x02 for Taiwan and Ch ina, respectively, in the LCID's below.
646 #####################
647 #############
648 # MSI zh-CN 2052 (Chinese - China)
649 #############
650 {
651 'target_name': 'MSI zh-CN 2052 (Chinese - China)',
652 'type': 'none',
653 'dependencies' : [ 'MSI ur-PK 1056 (Urdu - Pakistan)' ],
654 'variables': { 'locale_id': '2052' },
655 'sources': [ 'src/msi/locale/zh-CN.wxl' ],
656 },
657
658 #############
659 # MSI zh-TW 1028 (Chinese - Taiwan)
660 #############
661 {
662 'target_name': 'MSI zh-TW 1028 (Chinese - Taiwan)',
663 'type': 'none',
664 'dependencies' : [ 'MSI zh-CN 2052 (Chinese - China)' ],
665 'variables': { 'locale_id': '1028' },
666 'sources': [ 'src/msi/locale/zh-TW.wxl' ],
667 },
668
669 ##################################
670 # END of MSI section
671 ##################################
672
673 #############
20 # Custom Action library for the installer 674 # Custom Action library for the installer
21 ############# 675 #############
22 { 676 {
23 'target_name': 'installer-ca', 677 'target_name': 'installer-ca',
24 'type': 'shared_library', 678 'type': 'shared_library',
25 'component': 'shared_library', 679 'component': 'shared_library',
26 'sources': 680 'sources':
27 [ 681 [
28 # 682 #
29 # Custom Action 683 # Custom Action
(...skipping 26 matching lines...) Expand all
56 { 710 {
57 'libraries': [ 'user32.lib', 'Shell32.lib', 'advapi32.lib', 'msi.lib', 'Ve rsion.lib' ] 711 'libraries': [ 'user32.lib', 'Shell32.lib', 'advapi32.lib', 'msi.lib', 'Ve rsion.lib' ]
58 }, 712 },
59 'msvs_settings': 713 'msvs_settings':
60 { 714 {
61 'VCLinkerTool': {} 715 'VCLinkerTool': {}
62 } 716 }
63 }, 717 },
64 ] 718 ]
65 } 719 }
OLDNEW
« no previous file with comments | « installer/emb.vbs ('k') | installer/msibuild.cmd » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld