# Module wix

The `wix` module contains properties and rules for building MSI and EXE setup packages with the Windows Installer XML Toolset.

This module is only available on Windows.

## General Properties

### debugInformation

Type: | `bool`
Default: | `qbs.debugInformation`

Generate debug information. See `qbs.debugInformation`.

### defines

Type: | `stringList`
Default: | `undefined`

List of preprocessor macros that get passed to the compiler. To set macro values use the following syntax:

    wix.defines: ["USE_COLORS=1", 'COLOR_STR="blanched almond"']

### enableQbsDefines

Type: | `bool`
Default: | `true`

Whether to define preprocessor macros corresponding to values from the project and product objects. When building a 64-bit package, the preprocessor variable `Win64` will also be defined.

### visualStudioCompatibility

Type: | `bool`
Default: | `true`

Passes most of the same preprocessor macros to the compiler as Visual Studio does. This allows easier authoring WiX files that are compatible with both Qbs and MSBuild.

### includePaths

Type: | `pathList`
Default: | `undefined`

List of include paths. Relative paths are considered to be relative to the .qbs product file they are used in.

### treatWarningsAsErrors

Type: | `bool`
Default: | `false`

Warnings will be handled as errors and cause the build to fail.

### warningLevel

Type: | `string`
Allowed Values: | `"none"`, `"normal"`, `"pedantic"`
Default: | `"normal"`

Severity of warnings to emit. The higher the level, the more warnings will be shown.

### verboseOutput

Type: | `bool`
Default: | `false`

Whether to display verbose output from the compiler and linker.

### compilerFlags

Type: | `stringList`
Default: | undefined

Additional flags for the Candle compiler.

### linkerFlags

Type: | `stringList`
Default: | undefined

Additional flags for the Light linker.

### cultures

Type: | `stringList`
Default: | undefined

List of localizations to include in the MSI. Use `undefined` to include all localizations.

### extensions

Type: | `stringList`
Default: | `["WixBalExtension"]` if the product type is an EXE setup application, otherwise `undefined`.
Possible Values: | `"WixBalExtension"`, `"WixComPlusExtension"`, `"WixDependencyExtension"`, `"WixDifxAppExtension"`, `"WixDirectXExtension"`, `"WixFirewallExtension"`, `"WixGamingExtension"`, `"WixIisExtension"`, `"WixMsmqExtension"`, `"WixNetFxExtension"`, `"WixPSExtension"`, `"WixSqlExtension"`, `"WixTagExtension"`, `"WixUIExtension"`, `"WixUtilExtension"`, `"WixVSExtension"`, custom assemblies

List of extension assemblies to link into the output.

### version

Type: | `string`
Default: | `undefined`

The WiX version. Consists of four numbers separated by dots, for instance "3.7.1224.0".

### versionMajor

Type: | `int`
Default: | `versionParts[0]`

The WiX major version.

### versionMinor

Type: | `int`
Default: | `versionParts[1]`

The WiX minor version.

### versionParts

Type: | `list`
Default: | `empty`

The WiX version as a list. For instance, WiX version 3.7.1224.0 would correspond to a value of `[3, 7, 1224, 0]`.

### versionPatch

Type: | `int`
Default: | `versionParts[2]`

The WiX patch level.

### versionBuild

Type: | `int`
Default: | `versionParts[3]`

The fourth WiX version number component.

### toolchainInstallPath

Type: | `path`
Default: | determined automatically

WiX installation directory. Determined by searching the registry for the latest version. This should not normally need to be changed.

### toolchainInstallRoot

Type: | `path`
Default: | determined automatically

WiX binaries directory. Determined by searching the registry for the latest version. This should not normally need to be changed.

### compilerName

Type: | `string`
Default: | `"candle.exe"`

Name of the compiler binary. This should not normally need to be changed.

### compilerPath

Type: | `string`
Default: | `compilerName`

Directory where the compiler binary is located. This should not normally need to be changed.

### linkerName

Type: | `string`
Default: | `"light.exe"`

Name of the linker binary. This should not normally need to be changed.

### linkerPath

Type: | `string`
Default: | `linkerName`

Directory where the linker binary is located. This should not normally need to be changed.