# Basic toplevel package includes
include BuildStream.doap
include COPYING
include CONTRIBUTING.rst
include MAINTAINERS
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
recursive-include 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
recursive-include tests *
include tox.ini
include .coveragerc
include .pylintrc

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

# Requirements files
include requirements/requirements.in
include requirements/requirements.txt
include requirements/dev-requirements.in
include requirements/dev-requirements.txt
include requirements/plugin-requirements.in
include requirements/plugin-requirements.txt

# Versioneer
include versioneer.py

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