diff --git a/extensions/generators/VirtualPythonEnv.py b/extensions/generators/VirtualPythonEnv.py index 65b4993..b847d9c 100644 --- a/extensions/generators/VirtualPythonEnv.py +++ b/extensions/generators/VirtualPythonEnv.py @@ -153,7 +153,26 @@ class VirtualPythonEnv: if hasattr(conanfile, "conan_data") and conanfile.conan_data is not None and data_key in conanfile.conan_data: pip_requirements_data = conanfile.conan_data[data_key] - for system in (system for system in pip_requirements_data if system in ("any_os", actual_os)): + + # Build list of applicable system keys: any_os, OS name, and OS_architecture combinations + actual_arch = str(conanfile.settings.arch) if hasattr(conanfile.settings, "arch") else None + system_keys = ["any_os", actual_os] + + # Add architecture-specific keys (e.g., "Windows_x64", "Linux_x86_64") + if actual_arch: + # Map Conan architecture names to common naming conventions + arch_mapping = { + "x86_64": "x64", + "armv8": "arm64", + "armv8_32": "arm", + } + normalized_arch = arch_mapping.get(actual_arch, actual_arch) + system_keys.append(f"{actual_os}_{normalized_arch}") + # Also try with original arch name + if normalized_arch != actual_arch: + system_keys.append(f"{actual_os}_{actual_arch}") + + for system in (system for system in pip_requirements_data if system in system_keys): for package_name, package_desc in pip_requirements_data[system].items(): try: