Skip to content

deprecated: C++ sanctuary for small but powerful and frequently required, stand alone features.

License

Notifications You must be signed in to change notification settings

cginternals/libzeug

Repository files navigation

libzeug

Libzeug is a collection of C++ functions, classes and libraries that are too small to be standalone. It acts like a storage point for useful and reusable code for everyone using C++. Libzeug is a cross-platform library licenced under the MIT license.

The current modules in libzeug are:

The latest release is libzeug-v0.5.0.

Our wiki contains information to help you get started.

Service System Compiler Options Status
Jenkins Ubuntu 14.04 GCC 4.8 all, test Build Status
Jenkins Ubuntu 14.04 GCC 4.9 all, test Build Status
Jenkins Ubuntu 14.04 GCC 5.3 all, test Build Status
Jenkins Ubuntu 14.04 Clang 3.5 all Build Status
Jenkins OS X 10.10 Clang 3.5 - Build Status
Jenkins Windows 8.1 MSVC 2013 Update 5 all, test, install Build Status
Jenkins Windows 8.1 MSVC 2015 Update 1 all, test, install Build Status

ToDo

Documentation

A first basic libzeug documentation can be found here.

Dependencies

The following dev-libraries and programs need to be provided for correct CMake configuration:

iozeug

iozeug contains a function to read a file into an std::string.

loggingzeug

loggingzeug provides stream like logging functionality with customizable outputs (default output is to the console).

propertyguizeug

propertyguizeug contains the automatic generation of a GUI from a set of properties from reflectionzeug.

reflectionzeug

reflectionzeug allows the definition of properties that can be used to parameterize a program. It supports saving and loading properties to and from a file. The currently implemented property types are bool, float, double, std::string, FilePath, Color, every integral type, user-defined enums and glm types. Every prior type can be wrapped in an std::array. You can extend reflectionzeug and add your own types.

scriptzeug

scriptzeug offers a scripting environment to which one can register reflectionzeug objects that then can be manipulated within a scripting language. Currently implemented as scripting environment is Javascript, both with V8 (must be compiled and provided externally) and Duktape (default, included in scriptzeug).

signalzeug

signalzeug is a small library that provides classes for a simple signal system. Objects can define signals they can fire and other objects can register on those signals. Arbitrary parameters and even signal chaining are allowed.

threadingzeug

threadingzeug provides a parallel_for function that uses either OpenMP or the std::thread classes to execute a for loop concurrently.