# Basic toplevel package includes
include BuildStream.doap
include COMMITTERS.rst
include CONTRIBUTING.rst
include COPYING
include NEWS
include README.rst

# Cython files
recursive-include src/buildstream *.pyx
recursive-include src/buildstream *.pxd
recursive-include src/buildstream *.c

# Data files required by BuildStream's generic source tests
graft src/buildstream/_testing/_sourcetests/project

# Documentation package includes
include doc/Makefile
include doc/badges.py
include doc/bst2html.py
include doc/source/conf.py
include doc/source/plugin.rsttemplate
recursive-include doc/source *.rst
recursive-include doc/source *.py
recursive-include doc/source *.in
recursive-include doc/source *.html
recursive-include doc/source *.odg
recursive-include doc/source *.svg
recursive-include doc/examples *
recursive-include doc/sessions *.run

# Tests
graft tests
include tox.ini
include .coveragerc
include .pylintrc

# Protocol Buffers
recursive-include src/buildstream/_protos *.proto

# Requirements files
recursive-include requirements *.in
recursive-include requirements *.txt

# Versioneer
include versioneer.py

# setuptools.build_meta don't include setup.py by default. Add it
include setup.py
