57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# Copyright (c) ONNX Project Contributors
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
"""PEP 517 build backend for onnx
|
|
|
|
This is a thin wrapper over setuptools' PEP 517 build backend that
|
|
automatically adds ``cmake`` to build dependencies if there is no CMake
|
|
executable in PATH. This approach ensures that the package uses system
|
|
CMake (that may contain downstream patches) when one is available,
|
|
and pulls in the CMake package from PyPI when it is not.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import shutil
|
|
|
|
from setuptools.build_meta import (
|
|
build_editable,
|
|
build_sdist,
|
|
build_wheel,
|
|
get_requires_for_build_sdist,
|
|
prepare_metadata_for_build_editable,
|
|
prepare_metadata_for_build_wheel,
|
|
)
|
|
from setuptools.build_meta import (
|
|
get_requires_for_build_editable as _get_requires_for_build_editable,
|
|
)
|
|
from setuptools.build_meta import (
|
|
get_requires_for_build_wheel as _get_requires_for_build_wheel,
|
|
)
|
|
|
|
__all__ = [
|
|
"build_editable",
|
|
"build_sdist",
|
|
"build_wheel",
|
|
"get_requires_for_build_editable",
|
|
"get_requires_for_build_sdist",
|
|
"get_requires_for_build_wheel",
|
|
"prepare_metadata_for_build_editable",
|
|
"prepare_metadata_for_build_wheel",
|
|
]
|
|
|
|
|
|
def _get_cmake_dep() -> list[str]:
|
|
if shutil.which("cmake3") or shutil.which("cmake"):
|
|
return []
|
|
return ["cmake>=3.18"]
|
|
|
|
|
|
def get_requires_for_build_editable(*args, **kwargs) -> list[str]:
|
|
return _get_requires_for_build_editable(*args, **kwargs) + _get_cmake_dep()
|
|
|
|
|
|
def get_requires_for_build_wheel(*args, **kwargs) -> list[str]:
|
|
return _get_requires_for_build_wheel(*args, **kwargs) + _get_cmake_dep()
|