Spitfire Builder script is a tool designed to automate the building, patching, packaging, and uploading of the Spitfire Browser, which is based on the Mozilla Firefox source code. It streamlines tasks like:
- Cloning and updating the Mozilla source repository.
- Applying patches for Spitfire.
- Building the browser for different platforms.
- Compressing and uploading builts to a remote server.
Below is a detailed description of all the flags supported by the Spitfire Builder script:
### **General Flags**
- **`-h`**:
Displays the help message and exits. Use this to see all available flags and their descriptions.
### **Build Process Flags**
- **`-a`**:
Perform all steps of the build process, including cleaning, updating the repository, building, and applying patches.
- **`-b`**:
Compiles the source code without cleaning or updating.
- **`--clean`**:
Cleans the build directory by removing temporary or cached files.
- **`-u`**:
Updates the Mozilla source repository to the latest revision using Mercurial (`hg pull`).
- **`--patches`**:
Applies custom patches to the source code.
- **`-r`**:
Runs the built project after the build process completes successfully.
### **Compression and Upload Flags**
- **`-c`**:
Compresses the build output into a `.tar.gz` file. Use with the `--upload-path` flag to specify the directory to compress.
- **`--upload`**:
Uploads the compressed build file to a remote server (e.g., SourceForge). Requires a configuration file (`sourceforge_config.json`) to define upload parameters.
- **`--upload-path=<path>`**:
Specifies the directory or file to upload. This is required for both compression and uploading.
### **Customization Flags**
- **`-p=<path>`**:
Specifies the build directory path. If not provided, the default path is used.
- **`-t=<target>`**:
Sets the target format for the build output. The format follows `component-arch-release-platform`.
- **`-v=<version>`**:
Defines the version of the package. For nightly builds, the current date is used by default.
- **`--component=<name>`**:
Sets the name of the component being built (default: 'browser').
- **`--arch=<architecture>`**:
Specifies the architecture for the build (default: system architecture, e.g., `amd64`).
- **`--release=<type>`**:
Specifies the release type (`stable`, `nightly`, etc.). Default is `nightly`.
- **`--platform=<platform>`**:
Sets the platform for the build (default: system platform, e.g., `linux`).