Skip to content

Commit 8397b4e

Browse files
Lijiachen1018lijiachen
andauthored
[build]build sparse only if enabled (#470)
build sparse only if enabled Co-authored-by: lijiachen <lijiachen19@huawei.com>
1 parent 6d25397 commit 8397b4e

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
77
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
88

99
option(BUILD_UCM_STORE "build ucm store module." ON)
10-
option(BUILD_UCM_SPARSE "build ucm sparse module." ON)
10+
option(BUILD_UCM_SPARSE "build ucm sparse module." OFF)
1111
option(BUILD_UNIT_TESTS "build all unit test suits." OFF)
1212
option(BUILD_NUMA "build numactl library." OFF)
1313
option(DOWNLOAD_DEPENDENCE "download dependence by cmake." ON)

setup.py

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@
3737
ROOT_DIR = os.path.abspath(os.path.dirname(__file__))
3838
PLATFORM = os.getenv("PLATFORM")
3939

40+
ENABLE_SPARSE = os.getenv("ENABLE_SPARSE")
41+
42+
43+
def _enable_sparse() -> bool:
44+
return ENABLE_SPARSE is not None and ENABLE_SPARSE.lower() == "true"
45+
4046

4147
def _is_cuda() -> bool:
4248
return PLATFORM == "cuda"
@@ -97,6 +103,9 @@ def build_cmake(self, ext: CMakeExtension):
97103
"Please ensure either CUDA/MUSA or NPU is available."
98104
)
99105

106+
if _enable_sparse():
107+
cmake_args.append("-DBUILD_UCM_SPARSE=ON")
108+
100109
cmake_args.append(ext.sourcedir)
101110

102111
print(f"[INFO] Building {ext.name} module with CMake")
@@ -111,9 +120,18 @@ def build_cmake(self, ext: CMakeExtension):
111120
)
112121

113122

114-
def _get_package_data_with_so():
115-
"""Automatically discover all packages and include .so files."""
123+
def _get_packages():
124+
"""Discover Python packages, optionally filtering out sparse-related ones."""
116125
packages = find_packages()
126+
if not _enable_sparse():
127+
packages = [pkg for pkg in packages if not pkg.startswith("ucm.sparse")]
128+
return packages
129+
130+
131+
def _get_package_data_with_so(packages=None):
132+
"""Automatically discover all packages and include .so files."""
133+
if packages is None:
134+
packages = _get_packages()
117135
package_data = {}
118136

119137
for package in packages:
@@ -133,15 +151,17 @@ def _get_package_data_with_so():
133151
ext_modules = []
134152
ext_modules.append(CMakeExtension(name="ucm", sourcedir=ROOT_DIR))
135153

154+
packages = _get_packages()
155+
136156
setup(
137157
name="uc-manager",
138158
version="0.1.0",
139159
description="Unified Cache Management",
140160
author="Unified Cache Team",
141-
packages=find_packages(),
161+
packages=packages,
142162
python_requires=">=3.10",
143163
ext_modules=ext_modules,
144164
cmdclass={"build_ext": CMakeBuild},
145-
package_data=_get_package_data_with_so(),
165+
package_data=_get_package_data_with_so(packages),
146166
zip_safe=False,
147167
)

0 commit comments

Comments
 (0)