Note about install commands:
- for Windows, we use choco.
- for MacOS, we use brew.
- In case of an error in cmake, make sure that the dependencies are on the PATH.
This is a really long list of dependencies, and it's easy to mess up. That's why:
We have a Docker image that's already set up for you. See the Docker instructions.
We have setup-cpp that is a cross-platform tool to install all the compilers and dependencies on the system.
Please check the setup-cpp documentation for more information.
For example, on Windows, you can run the following to install llvm, cmake, ninja, ccache, conan, and cppcheck.
# windows example (open shell as admin)
curl -LJO "https://github.com/aminya/setup-cpp/releases/download/v0.5.7/setup_cpp_windows.exe"
./setup_cpp_windows --compiler llvm --cmake true --ninja true --ccache true --conan true --cppcheck true
RefreshEnv.cmd # reload the environment
- A C++ compiler that supports C++17. See cppreference.com to see which features are supported by each compiler. The following compilers should work:
-
Install command
-
Debian/Ubuntu:
sudo apt install build-essential
-
Windows:
choco install mingw -y
-
MacOS:
brew install gcc
-
-
Install command
-
Debian/Ubuntu:
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
-
Windows:
Visual Studio 2019 ships with LLVM (see the Visual Studio section). However, to install LLVM separately:
choco install llvm -y
llvm-utils for using external LLVM with Visual Studio generator:
git clone https://github.com/zufuliu/llvm-utils.git cd llvm-utils/VS2017 .\install.bat
-
MacOS:
brew install llvm
-
-
Install command + Environment setup
On Windows, you need to install Visual Studio 2019 because of the SDK and libraries that ship with it.
Visual Studio IDE - 2019 Community (installs Clang too):
choco install -y visualstudio2019community --package-parameters "add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended --includeOptional --passive --locale en-US"
Put MSVC compiler, Clang compiler, and vcvarsall.bat on the path:
choco install vswhere -y refreshenv # change to x86 for 32bit $clpath = vswhere -products * -latest -prerelease -find **/Hostx64/x64/* $clangpath = vswhere -products * -latest -prerelease -find **/Llvm/bin/* $vcvarsallpath = vswhere -products * -latest -prerelease -find **/Auxiliary/Build/* $path = [System.Environment]::GetEnvironmentVariable("PATH", "User") [Environment]::SetEnvironmentVariable("Path", $path + ";$clpath" + ";$clangpath" + ";$vcvarsallpath", "User") refreshenv
-
Install Command
-
Via pip - https://docs.conan.io/en/latest/installation.html#install-with-pip-recommended
pip install --user conan
-
Windows:
choco install conan -y
-
MacOS:
brew install conan
-
-
Install Command
-
Debian/Ubuntu:
sudo apt-get install cmake
-
Windows:
choco install cmake -y
-
MacOS:
brew install cmake
-
-
Install Command
-
Debian/Ubuntu:
sudo apt-get install doxygen sudo apt-get install graphviz
-
Windows:
choco install doxygen.install -y choco install graphviz -y
-
MacOS:
brew install doxygen brew install graphviz
-
-
Install Command
-
Debian/Ubuntu:
sudo apt-get install ccache
-
Windows:
choco install ccache -y
-
MacOS:
brew install ccache
-
-
Install Command
-
Debian/Ubuntu:
sudo apt-get install cppcheck
-
Windows:
choco install cppcheck -y
-
MacOS:
brew install cppcheck
-
-
Install Command
Follow instructions here: https://github.com/include-what-you-use/include-what-you-use#how-to-install
This project can be made to work with several optional GUI frameworks.
If desired, you should install the following optional dependencies as directed by their documentation, linked here:
The following dependencies can be downloaded automatically by CMake and Conan. All you need to do to install them is to turn on a CMake flag during configuration. If you run into difficulty using them, please refer to their documentation, linked here:
- NANA
- SDL
- IMGUI: This framework depends on SFML, and if you are using Linux, you may need to install several of SFML's dependencies using your package manager. See the SFML build tutorial for specifics.