Home

Awesome

Introduction

UI framework that uses Skia as a low-level drawing toolkit. It uses the newest features of the C++ Standard library (currently targetting C++17).

Status

SkUI is in a pre-release development phase, and the API is definitely not stable.

Build Status Build status codecov Codacy Badge

Operating SystemCompilerSupportedNotes
WindowsVisual Studio 2019:heavy_check_mark:
WindowsVS 2019 Clang/LLVM 8.0+:heavy_check_mark:
WindowsVisual Studio 2017:heavy_check_mark:
WindowsVS 2017 Clang/LLVM 6.0+:heavy_check_mark:
WindowsMinGW-w64 GCC 7.3+:heavy_check_mark:Requires usable std::filesystem implementation.
WindowsMinGW-w64 Clang 6.0+:heavy_check_mark:Requires usable std::filesystem implementation.
WindowsIntel C++ 19:x:Lacks required C++17 features.
LinuxGCC 7.3+:heavy_check_mark:
LinuxClang 6.0+:heavy_check_mark:
LinuxIntel C++ 19:x:Lacks required C++17 features.
Mac OS X 10.15+XCode 11.6+ Clang:soon:Missing implementation of core window/application classes.
Mac OS X 10.15+Homebrew GCC 7.3+:soon:Missing implementation of core window/application classes.
Mac OS X 10.15+Homebrew Clang 6.0+:soon:Missing implementation of core window/application classes.

Components

SkUI is subdivided in several modules which can depend on other modules but shouldn't become a dependency mess:

This list will grow (and change) as the library's design takes shape.

How to get started

Clone this repository

git clone https://github.com/skui-org/skui.git

After cloning this repository, make sure the submodules are up to date

cd skui
git submodule update --init --recursive

Create and navigate to a seperate build directory, e.g.

mkdir ../skui-build
cd ../skui-build

Run CMake (here, the ninja build system is used, but any generator should work fine)

cmake ../skui -G Ninja

This step should inform you of any missing dependencies. Then build

cmake --build .

And run the tests to ensure nothing is wrong

ctest

Roadmap

0.0.x

0.1.x

0.x.x

1.x.x

x.x.x