| OLD | NEW | 
|---|
|  | 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  Loading... | 
| 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 } | 
| OLD | NEW | 
|---|