Dependencies

Windows

Linux

Additional developer packages may be required, especially when compiling with system-wide libraries. Packages are listed below.

Debian/Ubuntu:

sudo apt-get install git gcc make g++ cmake libglew-dev libglfw3 libglfw3-dev libyaml-cpp-dev libvulkan-dev libvulkan1 libxinerama-dev libxcursor-dev libxi-dev pkgconf libfreetype-dev libdbus-dev policykit-1 libpolkit-agent-1-dev libpolkit-gobject-1-dev libfontconfig-dev vulkan-validationlayers vulkan-validationlayers-dev libxkbcommon-dev

Fedora:

sudo dnf install git gcc make g++ cmake glfw glfw-devel glew glew-devel freetype freetype-devel vulkan vulkan-devel yaml-cpp yaml-cpp-devel dbus dbus-devel polkit polkit-devel fontconfig-devel vulkan-validation-layers-devel

Gentoo/Funtoo:

doas emerge glfw vulkan-layers vulkan-loader xorg-x11 glew freetype yaml-cpp sys-apps/dbus polkit fontconfig

Arch:

sudo pacman -S base-devel cmake git glfw glew freetype2 yaml-cpp dbus polkit fontconfig vulkan-headers vulkan-validation-layers make gcc xorg-server libxinerama libxcursor libxi pkgconf 

* For Vulkan packages and drivers, refer to the manual on the arch wiki.

Void:

sudo xbps-install git gcc make cmake glfw glew freetype yaml-cpp dbus polkit fontconfig pkgconf Vulkan-Headers Vulkan-ValidationLayers xorg libX11 libX11-devel yaml-cpp-devel glfw-devel glew-devel freetype-devel dbus-devel polkit-devel fontconfig-devel

Install

Steps:

  1. Clone the framework using git: git clone https://madladsquad.com/docs/UntitledImGuiFramework.git --recursive
  2. Enter the new folder
  3. Run the install.sh script. This will install the necessary files for the framework, but will not compile it. If the script failed, check out how to clean up your environment in the troubleshooting section below. Run instructions below:
    • On Windows, git bundles Git Bash which emulates the bash shell found on Linux, so you can run it with https://madladsquad.com/install.sh or run bash install.sh into CMD
    • On Linux, just run it with the terminal by using https://madladsquad.com/install.sh
  4. Answer the prompts
  5. Wait
  6. If there is an error, read through the error log and go to Troubleshooting.

After the install script is finished, you can now create your project. To create a project, use the same script running instructions below and do the following:

  1. Run https://madladsquad.com/create-project.sh
  2. Enter your application's name
  3. Wait
  4. If there was an error, read the error log and go to Troubleshooting.
  5. Your project will be built under the Projects/<project name>/build directory

[!TIP] You can run https://madladsquad.com/create-project.sh name to create a project in a headless environment like a CI server

[!CAUTION] Make sure that you're running the terminal instance as an Administrator when running in headless mode

Troubleshooting

Cleaning up your environment when the installation fails

Builds sometimes fail and while it's important to report build problems to us here, it's also important to know how to rebuild once the problem is resolved. The issue is, without proper clean-up, you can't rerun the https://madladsquad.com/install.sh script.

Generally, this is done automatically when the install.sh script runs. In case of an issue, below are some things you can do:

  1. Delete the build folder under the UVKBuildTool folder
  2. Delete the Projects folder
  3. Go back to the framework directory
  4. Rerun install.sh

Visual Studio: Command Line error /02 and /RTC1 options are incompatible

This is a very common generation error. To fix it, right-click on the UntitledImGuiFramework project in the Solution Explorer then click the Properties button.

Next, navigate to the C/C++ section, expand the list and click on Code Generation. Inside the list view, you should see a setting called Basic Runtime Checks, which you need to set to Default.

image

Other errors

Don't see your error here? Please create an issue to the GitHub issue tracker and send us your build log with your system information. This way, we can resolve your problem, and if needed, document it here if needed. Thanks for using the UntitledImGuiFramework 😀