diff --git a/.gitignore b/.gitignore index 1d9210d1..a1dd7a12 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,10 @@ __pycache__/ # C extensions *.so +# Cython +*.c +*.html + # Distribution / packaging .Python build/ diff --git a/MANIFEST.in b/MANIFEST.in index b5d987e1..850be450 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,10 @@ graft amulet_map_editor -include README.md include requirements.txt include versioneer.py include icon.ico prune */__pycache__/* global-exclude *.py[cod] +global-exclude *.c +global-exclude *.html +global-exclude *.log +global-exclude *.md diff --git a/pyproject.toml b/pyproject.toml index 240f8759..704833eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ requires = [ "setuptools >= 42", "wheel", "cython >= 0.29.13", - "versioneer-518" + "versioneer-518", + "numpy" ] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index b0b9a60b..9fd4a434 100644 --- a/setup.py +++ b/setup.py @@ -1,9 +1,11 @@ from typing import List from setuptools import setup, find_packages +from Cython.Build import cythonize import os import glob import shutil import sys +import numpy try: import versioneer @@ -51,19 +53,18 @@ try: except: pass -package_data = [ - os.path.relpath(path, "amulet_map_editor") - for path in set( - glob.glob(os.path.join("amulet_map_editor", "**", "*.*"), recursive=True) - ) - - set( - glob.glob(os.path.join("amulet_map_editor", "**", "*.py[cod]"), recursive=True) - ) -] +if next(glob.iglob("amulet_map_editor/**/*.pyx", recursive=True), None): + # This throws an error if it does not match any files + ext = cythonize("amulet_map_editor/**/*.pyx") +else: + ext = () + setup( install_requires=required_packages, packages=find_packages(), - package_data={"amulet_map_editor": package_data}, + include_package_data=True, cmdclass=versioneer.get_cmdclass(), + ext_modules=ext, + include_dirs=[numpy.get_include()], )