from conan import ConanFile from conan.tools.microsoft import msvs_toolset, is_msvc from conan.tools.env import VirtualBuildEnv class OpenSSLConan(ConanFile): name = "openssl" version = "3.5.0" settings = "os", "compiler", "arch", "build_type" def generate(self): vs_version = None if is_msvc(self): # Получаем версию тулсета (v143 для VS2022) toolset = msvs_toolset(self) self.output.info(f"Detected toolset: {toolset}") # Сопоставляем тулсет с версией VS if "v143" in toolset: vs_version = "17" # VS2022 elif "v142" in toolset: vs_version = "16" # VS2019 if vs_version: # Правильный способ установки переменных окружения в Conan 2.x build_env = VirtualBuildEnv(self) build_env.environment().define("CONAN_VS_VERSION", vs_version) build_env.generate() self.output.info(f"Setting VS version to: {vs_version}")