= EZGL - An Easy Graphics Library

image:https://codedocs.xyz/mariobadr/ezgl.svg[link="https://codedocs.xyz/mariobadr/ezgl"]

EZGL is a library for use in ece297 as a simple way to create a GUI application.
The library provides a thin wrapper around GTK and drawing functionality.

== Dependencies

The library currently depends on GTK 3 and cairo.

== Compilation

This project uses CMake for compiling and works with CMake version 3.0.2 (the version available on the UG machines).
CMake can configure the project for different build systems and IDEs (type `cmake --help` for a list of generators available for your platform).
We recommend you create a build directory before invoking CMake to configure the project (`cmake -B`).
For example, we can perform the configuration step from the project root directory:

  cmake -H. -Bcmake-build-release -DCMAKE_BUILD_TYPE=Release
  cmake -H. -Bcmake-build-debug -DCMAKE_BUILD_TYPE=Debug

After the configuration step, you can ask CMake to build the project.

  cmake --build cmake-build-release/ --target all
  cmake --build cmake-build-debug/ --target all

=== Build Options

Build options can be found in `options.cmake`.
Simply specify the build option during the configuration step in CMake.
Using the already generated `cmake-build-release` directory from the previous section, we can:

  cmake -H. -Bcmake-build-release -DEZGL_BUILD_EXAMPLES=ON

Your IDE or Makefile should now include additional targets when you turn these options on.
For example, enabling `EZGL_BUILD_EXAMPLES` should provide access to the `basic-application` target, which you can build:

  cmake --build cmake-build-release/ --target basic-application
