= EZGL - An Easy Graphics Library

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
