Harvest Almanac is composed of two components:
libharvest-glib
harvest-almanac
libharvest-glib
is an API wrapper around the Harvest API V2. It makes use of
the GObject type system around its entities.
harvest-almanac
is the GUI application written in GTK to interact with
Harvest. It uses libharvest-glib
to do this.
This project has only been tested with gcc
. The build system for the
project is Meson. Make sure that is installed on your system.
CC=gcc meson build
This project has been configured to use Meson's WrapDB if development libraries are not found on the host system. If you want to use WrapDB-provided dependencies, simply run the command
meson configure -Dwrap_mode=forcefallback build
This project includes support for flatpak and snap in addition to a regular application.
Unfortunately the version of GTK in the core18
snap is incompatible with
libhandy
. A workaround could be using the GTK wrap supplied in this repo. It
would take time to figure out if versions of packages in core18
work with
GTK 3.24. This is doable if someone commits to it.
ninja -C build
flatpak-builder --verbose --sandbox --force-clean --repo=.flatpak-repo --ccache --user --install-deps-from=flathub --install .flatpak dist/flatpak/io.partin.tristan.HarvestAlmanac.json
./build/src/harvest-almanac
flatpak run io.partin.tristan.HarvestAlmanac
Make sure the following environment variables are set:
HARVEST_API_ACCESS_TOKEN
HARVEST_API_CONTACT_EMAIL
HARVEST_API_ACCOUNT_ID
HARVEST_SOUP_MAX_CONNECTIONS
HARVEST_SOUP_LOG_LEVEL
Then run
ninja test -C build