diff --git a/pyproject.toml b/pyproject.toml index 5e95e22..8f0e157 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,8 +9,6 @@ requires = [ "scikit-build>=0.13.1", "Cython>=0.24", "scipy>=0.16", - "cmake>=3.18", - "ninja" ] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index 547c3db..f974c9d 100644 --- a/setup.py +++ b/setup.py @@ -1,5 +1,6 @@ import io import os.path +import shutil from setuptools import find_packages from skbuild import setup @@ -18,6 +19,13 @@ def exclude_non_implicit_cmake_files(cmake_manifest): return [f for f in cmake_manifest if "implicit" in f] +setup_requires = [] +if shutil.which("cmake") is None: + setup_requires += ["cmake>=3.18"] +if shutil.which("ninja") is None: + setup_requires += ["ninja"] + + setup( name="implicit", version="0.7.2", @@ -44,6 +52,7 @@ def exclude_non_implicit_cmake_files(cmake_manifest): "Collaborative Filtering, Recommender Systems" ), packages=find_packages(), + setup_requires=setup_requires, install_requires=["numpy>=1.17.0", "scipy>=0.16", "tqdm>=4.27", "threadpoolctl"], cmake_process_manifest_hook=exclude_non_implicit_cmake_files, )