Skip to content

Commit af17772

Browse files
committed
update setup
1 parent bebc47b commit af17772

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

setup.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import pathlib
22
import re
33
import shutil
4-
import setuptools # type: ignore
5-
from setuptools.command import build_ext # type: ignore
64
import subprocess
75
import sys
86

7+
import setuptools # type: ignore
8+
from setuptools.command import build_ext # type: ignore
9+
from setuptools.extern.packaging import version # type: ignore
10+
911

1012
__version__ = "1.4.2"
1113

@@ -17,8 +19,6 @@ def __init__(self, name):
1719

1820
class CMakeBuild(build_ext.build_ext):
1921
def run(self):
20-
from packaging import version # type: ignore
21-
2222
if not self.inplace:
2323
try:
2424
out = subprocess.check_output(["cmake", "--version"])
@@ -28,9 +28,10 @@ def run(self):
2828
+ ", ".join(e.name for e in self.extensions)
2929
)
3030

31-
cmake_version = version.Version(
32-
re.search(r"version\s*([\d.]+)", out.decode()).group(1)
33-
)
31+
m = re.search(r"version\s*([\d.]+)", out.decode())
32+
if m is None:
33+
raise RuntimeError("Could not find CMake version.")
34+
cmake_version = version.Version(m.group(1))
3435
if cmake_version < version.Version("3.13.0"):
3536
raise RuntimeError(
3637
"CMake >= 3.13.0 is required. Install the latest CMake with 'pip install cmake'."
@@ -40,11 +41,19 @@ def run(self):
4041
self.build_extension(extension)
4142

4243
def build_extension(self, extension: setuptools.Extension):
43-
extension_dir = pathlib.Path(self.get_ext_fullpath(extension.name)).parent
44-
extension_dir.mkdir(parents=True, exist_ok=True)
44+
extension_dir = pathlib.Path(
45+
self.get_ext_fullpath(extension.name)
46+
).parent.absolute()
47+
48+
# Clean old build.
49+
for old_build in extension_dir.glob(
50+
"*.dylib" if sys.platform == "darwin" else "*.so"
51+
):
52+
old_build.unlink()
4553

54+
# Create new build folder.
4655
if self.inplace:
47-
build_dir = extension_dir / "build"
56+
build_dir = (pathlib.Path(__file__).parent / "build").absolute()
4857
else:
4958
build_dir = pathlib.Path(self.build_temp)
5059
build_dir.mkdir(parents=True, exist_ok=True)
@@ -66,6 +75,7 @@ def build_extension(self, extension: setuptools.Extension):
6675
"-DCMAKE_INSTALL_PREFIX=install",
6776
"-DCMAKE_INSTALL_RPATH=" + rpath_origin,
6877
]
78+
print(*cmake_command)
6979
self.spawn(cmake_command)
7080

7181
# Build and install.

0 commit comments

Comments
 (0)