From 7ab73da351c7140f06d727a8705bece4cf544cd9 Mon Sep 17 00:00:00 2001 From: Pieter Pas Date: Wed, 5 Jun 2024 00:11:18 +0200 Subject: [PATCH] Use pre-processed options in quirks --- src/py_build_cmake/config/options/string.py | 4 ++++ src/py_build_cmake/config/quirks.py | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/py_build_cmake/config/options/string.py b/src/py_build_cmake/config/options/string.py index 4c22a5b..9c8c455 100644 --- a/src/py_build_cmake/config/options/string.py +++ b/src/py_build_cmake/config/options/string.py @@ -19,6 +19,10 @@ class StringOption: prepend_path: str | None = None remove: list[str] | None = None + @classmethod + def create(cls, value: str): + return cls(value=value) + @classmethod def from_values(cls, values: ValueReference): # noqa: PLR0911 val = values.values diff --git a/src/py_build_cmake/config/quirks.py b/src/py_build_cmake/config/quirks.py index 0523805..3a52787 100644 --- a/src/py_build_cmake/config/quirks.py +++ b/src/py_build_cmake/config/quirks.py @@ -23,6 +23,7 @@ ) from .options.cmake_opt import CMakeOption from .options.config_path import ConfPath +from .options.string import StringOption from .options.value_reference import ValueReference logger = logging.getLogger(__name__) @@ -66,7 +67,7 @@ def cross_compile_win( assert not config.is_value_set("cross") cross_cfg = { "os": "windows", - "arch": platform_to_platform_tag(plat_name), + "arch": StringOption.create(platform_to_platform_tag(plat_name)), "cmake": { "options": { "CMAKE_SYSTEM_NAME": CMakeOption.create("Windows", "STRING"), @@ -167,12 +168,16 @@ def cross_compile_mac(config: ValueReference, archs): if plat_tag: cross_arch = get_platform_dashes().split("-") cross_arch[-1] = plat_tag - cross_cfg["arch"] = platform_to_platform_tag("_".join(cross_arch)) + cross_cfg["arch"] = StringOption.create( + platform_to_platform_tag("_".join(cross_arch)) + ) if sys.implementation.name == "cpython": version = "".join(map(str, sys.version_info[:2])) abi = getattr(sys, "abiflags", "") env = cross_cfg["cmake"]["env"] = {} - env["SETUPTOOLS_EXT_SUFFIX"] = f".cpython-{version}{abi}-darwin.so" + env["SETUPTOOLS_EXT_SUFFIX"] = StringOption.create( + f".cpython-{version}{abi}-darwin.so" + ) config.set_value("cross", cross_cfg)