Installation

Install Forge by building from source and then linking to the forge executable from a directory in your path.

Install to a location other than your home directory by passing prefix=${install-directory} on the command line. For example forge prefix=D:\\forge variant=shipping install or forge prefix=/usr/local/forge variant=shipping install.

Linux

From a shell with GCC installed and ~/bin in $PATH:

git clone git@github.com:cwbaker/forge.git forge
cd forge
git submodule update --init
bash ./bootstrap-linux.bash
./bootstrap/bin/forge variant=shipping install
ln -s ~/forge/bin/forge ~/bin/forge

macOS

From a shell with the Xcode command line tools installed and ~/bin in $PATH:

git clone git@github.com:cwbaker/forge.git forge
cd forge
git submodule update --init
bash ./bootstrap-macos.bash
./bootstrap/bin/forge variant=shipping install
ln -s ~/forge/bin/forge ~/bin/forge

Windows

From a Visual C++ x64 Native Tools command prompt with %USERPROFILE%\\bin in the %PATH%:

git clone git@github.com:cwbaker/forge.git forge
cd forge
git submodule update --init
bootstrap-windows.bat
.\bootstrap\bin\forge.exe variant=shipping install
mklink %USERPROFILE%\bin\forge.exe %USERPROFILE%\forge\bin\forge.exe

NOTE: Forge uses vswhere to find the Visual C++ compiler for Visual Studio 2015 and later and so requires Visual Studio 15.2 (26418.1 Preview) or later that install vswhere to a known location to work out of the box. Visual Studio 2013, 2012, and 2010 may work but aren’t tested.

Github Actions

To install and use Forge from Github Actions:

name: Build

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: $
    strategy:
      matrix:
        os: [macos-latest, windows-latest, ubuntu-latest]
    steps:
    - name: Checkout
      uses: actions/checkout@v1
    - name: Install Forge
      run: |
        OS=$(echo ${RUNNER_OS} |tr '[:upper:]' '[:lower:]')
        curl -L https://github.com/cwbaker/forge/releases/download/v0.9.0/forge-${OS}-v0.9.0.tar.gz > forge.tar.gz
        tar -xvf forge.tar.gz
      shell: bash
    - name: Build
      run: |
        forge/bin/forge variant=release
      shell: bash