# Copyright 1999-2013 Gentoo Foundation.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/desc/calligra_features.desc,v 1.5 2013/04/27 12:22:40 scarabeus Exp $

# This file contains descriptions of CALLIGRA_FEATURES USE_EXPAND flags.

# Keep it sorted.
author - CALLIGRA_FEATURES option to build minimalistic word processor application
braindump - CALLIGRA_FEATURES option to build mindmap note collection application
flow - CALLIGRA_FEATURES option to build flowcharting application
karbon - CALLIGRA_FEATURES option to build vector image editor
kexi - CALLIGRA_FEATURES option to build database manager
krita - CALLIGRA_FEATURES option to build raster image editor
plan - CALLIGRA_FEATURES option to build project planning component
sheets - CALLIGRA_FEATURES option to build spreadsheet processor
stage - CALLIGRA_FEATURES option to build presentation processor
tables - CALLIGRA_FEATURES option to build spreadsheet processor (up to 2.3beta)
words - CALLIGRA_FEATURES option to build word processor
