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