Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ Issues = "https://github.com/scikit-build/scikit-build-core/issues"
"distutils.commands".build_cmake = "scikit_build_core.setuptools.build_cmake:BuildCMake"
"distutils.setup_keywords".cmake_source_dir = "scikit_build_core.setuptools.build_cmake:cmake_source_dir"
"distutils.setup_keywords".cmake_args = "scikit_build_core.setuptools.build_cmake:cmake_args"
"distutils.setup_keywords".cmake_install_target = "scikit_build_core.setuptools.build_cmake:cmake_install_target"
"setuptools.finalize_distribution_options".scikit_build_entry = "scikit_build_core.setuptools.build_cmake:finalize_distribution_options"
"validate_pyproject.tool_schema".scikit-build = "scikit_build_core.settings.skbuild_schema:get_skbuild_schema"
hatch.scikit-build = "scikit_build_core.hatch.hooks"
Expand Down
18 changes: 16 additions & 2 deletions src/scikit_build_core/setuptools/build_cmake.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
__all__ = [
"BuildCMake",
"cmake_args",
"cmake_install_target",
"cmake_source_dir",
"finalize_distribution_options",
]
Expand Down Expand Up @@ -60,6 +61,7 @@
class BuildCMake(setuptools.Command):
source_dir: str | None = None
cmake_args: list[str] | str | None = None
cmake_install_target: str | None = None

build_lib: str | None
build_temp: str | None
Expand All @@ -74,8 +76,9 @@
("plat-name=", "p", "platform name to cross-compile for, if supported "),
("debug", "g", "compile/link with debugging information"),
("parallel=", "j", "number of parallel build jobs"),
("source-dir=", "j", "directory with CMakeLists.txt"),
("source-dir=", "s", "directory with CMakeLists.txt"),
("cmake-args=", "a", "extra arguments for CMake"),
("cmake-install-target=", "", "CMake target to install"),
]

def initialize_options(self) -> None:
Expand All @@ -87,6 +90,7 @@
self.plat_name = None
self.source_dir = get_source_dir_from_pyproject_toml()
self.cmake_args = None
self.cmake_install_target = None

def finalize_options(self) -> None:
self.set_undefined_options(
Expand Down Expand Up @@ -180,7 +184,7 @@
builder.build(build_args=build_args)
builder.install(install_dir=install_dir)

# def "get_source_file+ys"(self) -> list[str]:
# def "get_source_file"(self) -> list[str]:
# return ["CMakeLists.txt"]

# def get_outputs(self) -> list[str]:
Expand Down Expand Up @@ -260,3 +264,13 @@
if not Path(value).is_dir():
msg = "cmake_source_dir must be an existing directory"
raise setuptools.errors.SetupError(msg)


def cmake_install_target(
dist: Distribution, attr: Literal["cmake_install_target"], value: str
) -> None:
assert attr == "cmake_install_target"
assert value is not None
_cmake_extension(dist)
msg = "cmake_install_target is not supported - please use components and build targets instead"
raise setuptools.errors.SetupError(msg)

Check warning on line 276 in src/scikit_build_core/setuptools/build_cmake.py

View check run for this annotation

Codecov / codecov/patch

src/scikit_build_core/setuptools/build_cmake.py#L272-L276

Added lines #L272 - L276 were not covered by tests
Loading