build: MSVC version handling fixed

This commit is contained in:
Mateusz Pusz
2022-03-14 19:25:59 +01:00
parent 2198c8a403
commit 627b2fb6d0

View File

@@ -67,7 +67,7 @@ class UnitsConan(ConanFile):
version = Version(self.settings.compiler.version) version = Version(self.settings.compiler.version)
std_support = \ std_support = \
(compiler == "Visual Studio" and version >= "17" and compiler.cppstd == 23) or \ (compiler == "Visual Studio" and version >= "17" and compiler.cppstd == 23) or \
(compiler == "msvc" and (version == "19.3" or version >= "19.30") and compiler.cppstd == 23) (compiler == "msvc" and version >= 193 and compiler.cppstd == 23)
return not std_support return not std_support
@property @property
@@ -76,6 +76,14 @@ class UnitsConan(ConanFile):
version = Version(self.settings.compiler.version) version = Version(self.settings.compiler.version)
return ("clang" in compiler and compiler.libcxx == "libc++" and version < "14.0") return ("clang" in compiler and compiler.libcxx == "libc++" and version < "14.0")
@property
def _msvc_version(self):
compiler = self.settings.compiler
if (compiler.update):
return int(f"{compiler.version}{compiler.update}")
else:
return int(f"{compiler.version}0")
def set_version(self): def set_version(self):
content = tools.load(os.path.join(self.recipe_folder, "src/CMakeLists.txt")) content = tools.load(os.path.join(self.recipe_folder, "src/CMakeLists.txt"))
version = re.search(r"project\([^\)]+VERSION (\d+\.\d+\.\d+)[^\)]*\)", content).group(1) version = re.search(r"project\([^\)]+VERSION (\d+\.\d+\.\d+)[^\)]*\)", content).group(1)
@@ -111,7 +119,7 @@ class UnitsConan(ConanFile):
if version < "16": if version < "16":
raise ConanInvalidConfiguration("mp-units requires at least Visual Studio 16.9") raise ConanInvalidConfiguration("mp-units requires at least Visual Studio 16.9")
elif compiler == "msvc": elif compiler == "msvc":
if version < "1928": if self._msvc_version < 1928:
raise ConanInvalidConfiguration("mp-units requires at least MSVC 19.28") raise ConanInvalidConfiguration("mp-units requires at least MSVC 19.28")
else: else:
raise ConanInvalidConfiguration("Unsupported compiler") raise ConanInvalidConfiguration("Unsupported compiler")