Compiling Gorgon
This will cover how to compile the Gorgon library from source code.
Prequisites
To compile Gorgon you will need the following:
- Visual Studio 2022 17.0 or better.
- The C++ compiler and v143 C++ platform toolset from Visual Studio (for WPF support)
- .NET 8.0 or better.
- Windows 10 v1703 Build 15603 (Creators Update) or newer.
- The Graphics Tools optional feature.
Graphics Tools
Gorgon requires that the Graphics Tools optional feature be installed on your operating system. How to install it varies by operating system. This only needs to be done once.
Windows 11
- Go into the Settings.
- Go to the System category (on the left pane).
- At the bottom, on the right side, you will see Optional Features. Click that.
- Click View Features and type "Graphics" in the search bar.
- Select the Graphics Tools option, and click Next, then click Install.
Windows 10
- Go into the Settings.
- Double click the System icon.
- Go to the Apps & Features category (on the left pane).
- Click Manage Optional Features.
- Click Add a feature.
- Look for the Graphics Tools option and click Install.
Git Sub Modules
Gorgon has a few dependencies stored in other repos. These are linked as sub modules in Git. Before you attempt to compile Gorgon, you must retrieve these sub modules. Using the git command line you can refresh the sub modules as follows:
c:\Where_You_Copied_The_Source_Code>git submodule update --recursive
Note
Whenever the source for Gorgon is updated on Github, you should refresh the sub modules to ensure you have the latest version of the dependencies.
Compiling
One of the goals for Gorgon was to make it as painless as possible to build. Once you have the above pre-requisites completed, all you should need to do is open the Gorgon.sln
file in the root of the directory where the source code is located. Once loaded in Visual Studio, select Rebuild and that should be it.
Note
On occasion, you may receive a build error about Robocopy. Just build again and it should right itself. I have no idea why this happens, it doesn't seem to happen on DevOps ever.