[][src]Crate wix

wix Library

The goal of the cargo-wix project and the wix library is to make it easy to create a Windows installer (msi) for any Rust project. The cargo-wix project is primarily implemented as a cargo subcommand, but its core functionality has been organized into a separate library. Documentation for the binary and Command Line Interface (CLI) are provided in the module-level documentation for the binary and the cargo wix --help command.

Table of Contents

Usage

First, add this to your Cargo.toml:

[dependencies]
wix = "0.1"

Next, add this to the lib.rs or main.rs file for your project:

This example is not tested
extern crate wix;

Organization

Each subcommand is organized into a separate module. So, there is a create, inititalize, print, etc. module within the crate. Some of the modules are in a single Rust source file, while others are organized into sub-folders. Each module follows the Builder design pattern, so there is a Builder and Execution struct for each module/subcommand. The Builder struct is used to customize the execution of the subcommand and builds an Execution struct. The Execution struct is responsible for actually executing the subcommand, which generally involves executing a process with the std::process::Command struct, but not always. Each method for the Builder struct generally corresponds to a CLI option or argument found in the cargo wix subcommand and binary.

Modules

clean

The implementation for the clean command. This command is focused on cleaning up build output, similar to the cargo clean subcommand.

create

The implementation for the create, or default, command. The default command, cargo wix, is focused on creating, or building, the installer using the WiX Toolset.

initialize

The implementation for the init command. The init command for the cargo wix subcommand is focused on creating a WiX Source file (wxs) based on the contents of the Cargo manifest file (Cargo.toml) for the project and any run-time based settings.

print

The implementation for the print command. This command is focused on printing various templates based on a package's manifest (Cargo.toml) or end-user input.

purge

The implementation for the purge command. This command is focused on removing all files associated with cargo wix subcommand.

sign

The implementation for the sign command. This command focuses on signing installers using the Windows SDK signtool application.

Enums

Cultures

The various culture codes for localization.

Error

The error type for wix-related operations and associated traits.

Platform

The different values for the Platform attribute of the Package element.

Template

The different templates that can be printed or written to a file.

TimestampServer

The aliases for the URLs to different Microsoft Authenticode timestamp servers.

Constants

BINARY_FOLDER_NAME

The name of the folder where binaries are typically stored.

CARGO

The name of the builder application for a Rust project.

CARGO_MANIFEST_FILE

The file name with extension for a package's manifest.

EXE_FILE_EXTENSION

The file extension for an executable.

LICENSE_FILE_NAME

The file name without an extension when generating a license.

MSI_FILE_EXTENSION

The file extension for a Windows installer.

RTF_FILE_EXTENSION

The file extension for a Rich Text Format (RTF) file.

SIGNTOOL

The name of the signer application from the Windows SDK.

SIGNTOOL_PATH_KEY

The name of the environment variable to specify the path to the signer application.

TARGET_FOLDER_NAME

The name of the folder where output from the builder, compiler, linker, and signer.

WIX

The default name of the folder for output from this subcommand.

WIX_COMPILER

The application name without the file extension of the compiler for the Windows installer.

WIX_LINKER

The application name without the file extension of the linker for the Windows installer.

WIX_OBJECT_FILE_EXTENSION

The file extension for a WiX Toolset object file, which is the output from the WiX compiler.

WIX_PATH_KEY

The name of the environment variable created by the WiX Toolset installer that points to the bin folder for the WiX Toolet's compiler (candle.exe) and linker (light.exe).

WIX_SOURCE_FILE_EXTENSION

The file extension of the WiX Source file, which is the input to the WiX Toolset compiler.

WIX_SOURCE_FILE_NAME

The default file name for the WiX Source file, which is the input to the WiX Toolset compiler.

Type Definitions

Result

A specialized Result type for wix operations.