From f174071b1e873360c644b401e61a66bd3c8f9aac Mon Sep 17 00:00:00 2001 From: Martin Valgur Date: Mon, 8 Jan 2024 08:43:28 +0200 Subject: [PATCH] (#21933) plf_list: add v2.70 * plf_list: add v2.70 * plf_list: C++17 is required for latest version --- recipes/plf_list/all/conandata.yml | 3 ++ recipes/plf_list/all/conanfile.py | 31 +++++++++++++++++-- .../plf_list/all/test_package/CMakeLists.txt | 3 ++ recipes/plf_list/config.yml | 2 ++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/recipes/plf_list/all/conandata.yml b/recipes/plf_list/all/conandata.yml index 69ea21b761e16..6f1a0b798e6f8 100644 --- a/recipes/plf_list/all/conandata.yml +++ b/recipes/plf_list/all/conandata.yml @@ -1,4 +1,7 @@ sources: + "2.70": + url: "https://github.com/mattreecebentley/plf_list/archive/c48d271caad535a783a37e418e1f146040934a30.tar.gz" + sha256: "d6bd1dfb4e7e02804ad91c5a06c9d6f3a3512499ce5c3c0a633eba5e67e90930" "2.57": url: "https://github.com/mattreecebentley/plf_list/archive/d7a06d7497dc01261dd2c2fe675a8b605acb7a56.tar.gz" sha256: "4297c7578fe5ea2c6346541b28a57d87ec311522fa55bc8a5ab069921fc073e9" diff --git a/recipes/plf_list/all/conanfile.py b/recipes/plf_list/all/conanfile.py index 93c3eafa9a2e2..a5286712197f8 100644 --- a/recipes/plf_list/all/conanfile.py +++ b/recipes/plf_list/all/conanfile.py @@ -1,8 +1,12 @@ from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd from conan.tools.files import copy, get, apply_conandata_patches, export_conandata_patches from conan.tools.layout import basic_layout +from conan.tools.scm import Version import os + required_conan_version = ">=1.50.0" @@ -15,6 +19,20 @@ class PlflistConan(ConanFile): homepage = "https://github.com/mattreecebentley/plf_list" settings = "os", "arch", "compiler", "build_type" + @property + def _min_cppstd(self): + return 17 + + @property + def _minimum_compilers_version(self): + return { + "gcc": "7", + "clang": "5", + "apple-clang": "9", + "msvc": "191", + "Visual Studio": "15", + } + def export_sources(self): export_conandata_patches(self) @@ -24,9 +42,18 @@ def package_id(self): def layout(self): basic_layout(self, src_folder="src") + def validate(self): + if Version(self.version) >= "2.70": + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + minimum_version = self._minimum_compilers_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support.", + ) + def source(self): - get(self, **self.conan_data["sources"][self.version], - destination=self.source_folder, strip_root=True) + get(self, **self.conan_data["sources"][self.version], strip_root=True) def build(self): apply_conandata_patches(self) diff --git a/recipes/plf_list/all/test_package/CMakeLists.txt b/recipes/plf_list/all/test_package/CMakeLists.txt index 9871eca4a6f1f..0ca253af213ab 100644 --- a/recipes/plf_list/all/test_package/CMakeLists.txt +++ b/recipes/plf_list/all/test_package/CMakeLists.txt @@ -5,3 +5,6 @@ find_package(plf_list REQUIRED CONFIG) add_executable(${PROJECT_NAME} test_package.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE plf_list::plf_list) +if (plf_list_VERSION VERSION_GREATER_EQUAL 2.70) + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) +endif() diff --git a/recipes/plf_list/config.yml b/recipes/plf_list/config.yml index ca1f4fbf159c4..2dc3d36de7cf2 100644 --- a/recipes/plf_list/config.yml +++ b/recipes/plf_list/config.yml @@ -1,4 +1,6 @@ versions: + "2.70": + folder: all "2.57": folder: all "2.52":