feat: add the ability to declare safe tools in a cross-build environment. (#2317)
* Add the ability to declare safe tools in a cross-build environment. * Add an xfail if cmake isn't available on the test machine. * Placate linter regarding positional args. * Rework test to provide more robust confirmation of safe tools. * Remove a test skip condition that is no longer needed. Co-authored-by: Joe Rickerby <joerick@mac.com> * Rename the setting to xbuild-tools. * Add docs to clarify that xbuild-tools is transitive. * Raise a warning if xbuild-tools isn't defined. * Correct a bad copy-paste in the schema generator. * .. and now fix the indentation. * Move sentinel handling earlier into the parsing process. * Remove serialization from tests that won't start a test suite. --------- Co-authored-by: Joe Rickerby <joerick@mac.com>
This commit is contained in:
co-authored by
Joe Rickerby
parent
2aaa489371
commit
830e79e11c
@@ -618,3 +618,31 @@ def test_get_build_frontend_extra_flags_warning(
|
||||
)
|
||||
assert args == ["-Ca", "-Cb", "-1"]
|
||||
mock_warning.assert_called_once()
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("definition", "expected"),
|
||||
[
|
||||
("", None),
|
||||
("xbuild-tools = []", []),
|
||||
('xbuild-tools = ["cmake", "rustc"]', ["cmake", "rustc"]),
|
||||
],
|
||||
)
|
||||
def test_xbuild_tools_handling(tmp_path: Path, definition: str, expected: list[str] | None) -> None:
|
||||
args = CommandLineArguments.defaults()
|
||||
args.package_dir = tmp_path
|
||||
|
||||
pyproject_toml: Path = tmp_path / "pyproject.toml"
|
||||
pyproject_toml.write_text(
|
||||
textwrap.dedent(
|
||||
f"""\
|
||||
[tool.cibuildwheel]
|
||||
{definition}
|
||||
"""
|
||||
)
|
||||
)
|
||||
|
||||
options = Options(platform="ios", command_line_arguments=args, env={})
|
||||
|
||||
local = options.build_options("cp313-ios_13_0_arm64_iphoneos")
|
||||
assert local.xbuild_tools == expected
|
||||
|
||||
Reference in New Issue
Block a user