### Install WiX Toolset and Extensions
Source: https://github.com/pencil2d/pencil/blob/master/docs/installer-development.md
Commands to install the WiX Toolset and its BootstrapperApplications and Util extensions globally using the dotnet CLI.
```bash
dotnet tool install -g wix
wix extension add -g Wix Toolset.Util.wixext Wix Toolset.BootstrapperApplications.wixext
```
--------------------------------
### Ubuntu Qt Creator Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install Qt Creator on Ubuntu.
```bash
sudo apt install qtcreator
```
--------------------------------
### Ubuntu Qt 5 Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install Qt 5 development components on Ubuntu.
```bash
sudo apt install qt5-default qtbase5-dev qtmultimedia5-dev qttools5-dev-tools libqt5svg5-dev
```
--------------------------------
### Install WiX Utility Libraries
Source: https://github.com/pencil2d/pencil/blob/master/docs/installer-development.md
Command to install WiX utility libraries using the nuget CLI, specifying an output directory.
```bash
nuget install -x -OutputDirectory path\to\util\installer Wix Toolset.WixStandardBootstrapperApplicationFunctionApi
```
--------------------------------
### Ubuntu Make and Clang Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install GNU Make and Clang on Ubuntu.
```bash
sudo apt install make clang
```
--------------------------------
### Common Build Configurations
Source: https://github.com/pencil2d/pencil/blob/master/docs/build-options.md
Examples of common build configurations using QMake.
```bash
qmake "CONFIG+=debug"
```
```bash
qmake "CONFIG+=release CONFIG+=PENCIL2D_NIGHTLY CONFIG+=GIT"
```
```bash
qmake "CONFIG+=release CONFIG+=PENCIL2D_RELEASE CONFIG+=GIT"
```
```bash
qmake "CONFIG+=release CONFIG+=PENCIL2D_RELEASE CONFIG+=WIN_LEGACY CONFIG+=NO_TESTS"
```
--------------------------------
### Ubuntu Make and GCC Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install GNU Make and GCC on Ubuntu.
```bash
sudo apt install make g++
```
--------------------------------
### Arch Linux Qt Creator Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install Qt Creator on Arch Linux.
```bash
sudo pacman -S --needed qtcreator
```
--------------------------------
### Project Setup
Source: https://github.com/pencil2d/pencil/blob/master/CMakeLists.txt
Sets the minimum CMake version, target architectures for macOS, and project details like name, version, description, and language.
```cmake
cmake_minimum_required(VERSION 3.21...3.31)
set(CMAKE_OSX_ARCHITECTURES x86_64;arm64)
# Set project name and version
project(Pencil2D
VERSION 0.7.0
DESCRIPTION "Pencil2D Animation Software"
LANGUAGES CXX
)
```
--------------------------------
### Ubuntu Qt 6 Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install Qt 6 development components on Ubuntu 22.04 or later.
```bash
sudo apt install qt6-base-dev qt6-l10n-tools qt6-multimedia-dev libqt6svg6-dev
```
--------------------------------
### Arch Linux Qt 5 Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install Qt 5 development components on Arch Linux.
```bash
sudo pacman -S --needed qt5-base qt5-multimedia qt5-svg qt5-tools gst-plugins-good
```
--------------------------------
### Install Xcode command-line tools
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_mac.md
Installs the necessary command-line developer tools for Xcode.
```bash
xcode-select --install
```
--------------------------------
### Install Qt Creator via Homebrew
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_mac.md
Installs Qt Creator using the Homebrew package manager.
```bash
brew tap homebrew/cask
brew install --cask qt-creator
```
--------------------------------
### Build the Bootstrapper
Source: https://github.com/pencil2d/pencil/blob/master/docs/installer-development.md
Command to build the Pencil2D bootstrapper executable using WiX.
```bash
wix build -arch x64 -sw1133 -b path\to\util\installer -b DISTDIR -ext WixToolset.Util.wixext -ext WixToolset.BootstrapperApplications.wixext -d Edition=Release -d Version=X.X.X -out pencil2d-win64-X.X.X.exe path\to\util\installer\pencil2d.bundle.wxs
```
--------------------------------
### Install Qt 5 framework via Homebrew
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_mac.md
Installs the Qt 5 framework using the Homebrew package manager.
```bash
brew install qt@5
```
--------------------------------
### Arch Linux Make and GCC Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install GNU Make and GCC on Arch Linux.
```bash
sudo pacman -S --needed make gcc
```
--------------------------------
### Arch Linux Make and Clang Installation
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Command to install GNU Make and Clang on Arch Linux.
```bash
sudo pacman -S --needed make clang
```
--------------------------------
### WiX Fragment for windeployqt
Source: https://github.com/pencil2d/pencil/blob/master/docs/installer-development.md
XML structure for a WiX fragment to include files deployed by windeployqt.
```xml
```
--------------------------------
### Exported SVG Example
Source: https://github.com/pencil2d/pencil/wiki/Icon-design-guideline
An example of an SVG file generated after optimizing for display.
```xml
```
--------------------------------
### SVG Icon Example
Source: https://github.com/pencil2d/pencil/wiki/Icon-design-guideline
An example of SVG code for an icon, suitable for export.
```svg
```
--------------------------------
### Build with QMake/GNU Make
Source: https://github.com/pencil2d/pencil/blob/master/docs/build_linux.md
Commands to configure the build using QMake and then compile with GNU Make.
```bash
mkdir build; pushd build; qmake -r -spec CONFIG+=debug ..; popd
```
```bash
make -C build
```
```bash
./build/bin/pencil2d
```