Use the same Conan CMake target setup for Conan v1 and v2.

This requires Conan v1 in version 1.53.0 or greater, but that
should not pose a problem in practice.
This commit is contained in:
Martin Hořeňovský 2024-02-17 22:30:26 +01:00
parent 62d4aecb8c
commit 562f31029a
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A

View File

@ -6,6 +6,7 @@ import os
import shutil
import re
required_conan_version = ">=1.53.0"
class CatchConan(ConanFile):
name = "catch2"
@ -68,22 +69,6 @@ class CatchConan(ConanFile):
def package_info(self):
lib_suffix = "d" if self.settings.build_type == "Debug" else ""
if conan_version < scm.Version("2.0.0"):
self.cpp_info.names["cmake_find_package"] = "Catch2"
self.cpp_info.names["cmake_find_package_multi"] = "Catch2"
# Catch2
self.cpp_info.components["catch2base"].names["cmake_find_package"] = "Catch2"
self.cpp_info.components["catch2base"].names["cmake_find_package_multi"] = "Catch2"
self.cpp_info.components["catch2base"].names["pkg_config"] = "catch2"
self.cpp_info.components["catch2base"].libs = ["Catch2" + lib_suffix]
self.cpp_info.components["catch2base"].builddirs.append("lib/cmake/Catch2")
# Catch2WithMain
self.cpp_info.components["catch2main"].names["cmake_find_package"] = "Catch2WithMain"
self.cpp_info.components["catch2main"].names["cmake_find_package_multi"] = "Catch2WithMain"
self.cpp_info.components["catch2main"].names["pkg_config"] = "Catch2WithMain"
self.cpp_info.components["catch2main"].libs = ["Catch2Main" + lib_suffix]
self.cpp_info.components["catch2main"].requires = ["catch2base"]
else:
self.cpp_info.set_property("cmake_file_name", "Catch2")
self.cpp_info.set_property("cmake_target_name", "Catch2::Catch2WithMain")
self.cpp_info.set_property("pkg_config_name", "catch2-with-main")