# NotesTK

Notes Toolkit (NotesTK) is a set of tools for building applications focused on taking and organising notes, like study or research materials.

## Project Goals

* Cross-platform
* Low third-party dependencies
* Permissive licensing
* Simplicity over performance

## Project Status

🚨🚨🚨 The codebase is at a very early/prototype stage and under heavy active development🚨🚨🚨 

In addition to feature development I've been using it to get up-to-speed on various media formats and desktop and rendering APIs. It is strongly recommended to only use it as a reading reference. 

Expect:

* No Docs or tagged releases
* Large commits and significant breaking changes
* Unreliable/untested APIs
* Naive/low-performance implementations

The only currently recommended use case is if you are implementing some element of the library functionality and want to see how someone else has tackled it, maybe you will see something useful.

# Building 

Many project features (e.g. Wayland integration) only build if suitable third-party dependencies are found on the system, otherwise they will be automatically disabled. You can find dependency requirements in the `README.md` file in each module's `src`directory.

A minimal set of dependencies for each platform are included below.

## Linux

Install dependencies:

```bash
sudo apt-get install build-essential pkg-config cmake 
```

Build:

```bash
mkdir build
cd build
cmake $PATH_TO_SOURCE
make
apps/$NAME_OF_APP
```

## Windows

Tested with Visual Studio 17 with 'Desktop Development with C++' tooling, including ATL and Windows SDK 10 (10.0.19041.0). Additionally, install `cmake`. 

```bash
mkdir build
cd build
cmake $PATH_TO_SOURCE
```

You can open the resulting `NotesTK.sln`in Visual Studio and build.
