From fa2a71670b1bd8bbcba4605cd3a22c041006a62e Mon Sep 17 00:00:00 2001 From: Yunus Berndt Date: Fri, 20 Mar 2026 17:50:10 +1100 Subject: [PATCH] Build config fixes: setup.py clean compat, setuptools pin, venv build env --- requirements_dev.txt | 1 + setup.py | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/requirements_dev.txt b/requirements_dev.txt index d58a5029862ab..a348cd8222fbf 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,4 +1,5 @@ cmake<4.0.0 +setuptools<82 colorama coverage Pillow diff --git a/setup.py b/setup.py index 45166bbf20d23..be41dd120645e 100644 --- a/setup.py +++ b/setup.py @@ -6,6 +6,7 @@ # extra cmake args for C++ taichi_python extension. import glob +import inspect import multiprocessing import os import platform @@ -82,7 +83,7 @@ def run(self): super().run() self.build_temp = os.path.join(root_dir, "_skbuild") if os.path.exists(self.build_temp): - remove_tree(self.build_temp, dry_run=self.dry_run) + self._remove_tree_compat(self.build_temp) generated_folders = ( "bin", "dist", @@ -95,7 +96,7 @@ def run(self): ) for d in generated_folders: if os.path.exists(d): - remove_tree(d, dry_run=self.dry_run) + self._remove_tree_compat(d) generated_files = ["taichi/common/commit_hash.h", "taichi/common/version.h"] generated_files += glob.glob("taichi/runtime/llvm/runtime_*.bc") generated_files += glob.glob("python/taichi/_lib/core/*.so") @@ -106,6 +107,13 @@ def run(self): if not self.dry_run: os.remove(f) + def _remove_tree_compat(self, path): + # setuptools/distutils changed remove_tree() signature across versions. + if "dry_run" in inspect.signature(remove_tree).parameters: + remove_tree(path, dry_run=self.dry_run) + elif not self.dry_run: + remove_tree(path) + def get_cmake_args(): import shlex