Skip to content

Commit 6290690

Browse files
cpptrace: Relax dependency on libdwarf and stop publishing revisions for old versions (conan-io#29407)
* cpptrace: Relax dependency on libdwarf This change aims to reflect the fact that cpptrace>=0.4.0 supports all libdwarf versions from 0.11.0 up to the 2.x series, and will enable consumers to update libdwarf at their discretion. An upper bound of version <3 is added as a conservative guard rail. * Remove old versions from config.yml and conandata.yml Signed-off-by: Uilian Ries <uilianr@jfrog.com> * Avoid logic regarding old version in the recipe Signed-off-by: Uilian Ries <uilianr@jfrog.com> * Simplify test package according to the latest version Signed-off-by: Uilian Ries <uilianr@jfrog.com> * Simplify test package Signed-off-by: Uilian Ries <uilianr@jfrog.com> * Require Conan 2.x by default Signed-off-by: Uilian Ries <uilianr@jfrog.com> --------- Signed-off-by: Uilian Ries <uilianr@jfrog.com> Co-authored-by: Uilian Ries <uilianr@jfrog.com>
1 parent 14f6a3a commit 6290690

File tree

7 files changed

+7
-200
lines changed

7 files changed

+7
-200
lines changed

recipes/cpptrace/all/conandata.yml

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,3 @@ sources:
22
"1.0.4":
33
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v1.0.4.tar.gz"
44
sha256: 5c9f5b301e903714a4d01f1057b9543fa540f7bfcc5e3f8bd1748e652e24f9ea
5-
"1.0.3":
6-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v1.0.3.tar.gz"
7-
sha256: d9145f3ca2b828a984477fbfb49616b1541aa249af945615f9c2abad573a71cc
8-
"0.8.3":
9-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.8.3.tar.gz"
10-
sha256: "34f186741a84716edc1b64b372aa1a5b9ec2629d38ab97e5c2a5284b58a8dee8"
11-
"0.8.2":
12-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.8.2.tar.gz"
13-
sha256: "618fb746174f76eb03c7ece059ebdcfe39b7b6adca6a5da0c9f9bc6a4764d7f9"
14-
"0.7.5":
15-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.5.tar.gz"
16-
sha256: "7df0cae3d7da9be2dc82616292cc86a4a08a8209898716231aef80477a8ca35d"
17-
"0.7.4":
18-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.4.tar.gz"
19-
sha256: "1241790cace5d59ddf21ce5d046f71cd26448a3c8c15d123157498ba81e3543d"
20-
"0.7.3":
21-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.3.tar.gz"
22-
sha256: "8b83200860db148a7fd0b2594e7affc6a55809da256e132d6f0d5b202b2e26dd"
23-
"0.7.2":
24-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.2.tar.gz"
25-
sha256: "62835abfd91a840e4d212c850695b576523fe6f9036bc5c3e52183b6eb9905c5"
26-
"0.7.1":
27-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.1.tar.gz"
28-
sha256: "63df54339feb0c68542232229777df057e1848fc8294528613971bbf42889e83"
29-
"0.7.0":
30-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.7.0.tar.gz"
31-
sha256: "b5c1fbd162f32b8995d9b1fefb1b57fac8b1a0e790f897b81cdafe3625d12001"
32-
"0.6.3":
33-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.6.3.tar.gz"
34-
sha256: "665bf76645ec7b9e6d785a934616f0138862c36cdb58b0d1c9dd18dd4c57395a"
35-
"0.6.2":
36-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.6.2.tar.gz"
37-
sha256: "02a0540b5b1be0788565f48b065b456d3eab81ae2323a50e75ed36449a0143ed"
38-
"0.6.1":
39-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.6.1.tar.gz"
40-
sha256: "4bb478eedbe4b2c0093ef7af4f64795304850e03312e658076b25ef8d6019c75"
41-
# 0.6.0 is required by libassert v2
42-
"0.6.0":
43-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.6.0.tar.gz"
44-
sha256: "7c2996f03d15f61016bc81fe7fa5220b1cc42498333c5c0e699ad2f96b918b96"
45-
# 0.3.1 is required by libassert v1
46-
"0.3.1":
47-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.3.1.tar.gz"
48-
sha256: "3c4c5b3406c2b598e5cd2a8cb97f9e8e1f54d6df087a0e62564e6fb68fed852d"
49-
# 0.2.1 is required by libassert v1
50-
"0.2.1":
51-
url: "https://github.com/jeremy-rifkin/cpptrace/archive/refs/tags/v0.2.1.tar.gz"
52-
sha256: "3184f404c61b6b8ba6fe7c64fc40d1c3d6d87df59bcacf1845d846101bc22f9a"
53-
patches:
54-
"0.2.1":
55-
- patch_file: "patches/0.2.1/0001-to_uintptr.patch"
56-
patch_type: "bugfix"
57-
patch_source: "https://github.com/jeremy-rifkin/cpptrace/commit/bda3e2b169796f2e9c7e751b27306aac6b4a7c26"
58-
patch_description: "Fix for to_uintptr"
59-
- patch_file: "patches/0.2.1/0002-conan-libdwarf.patch"
60-
patch_type: "conan"
61-
patch_description: "Tweaks to use libdwarf provided by conan"

recipes/cpptrace/all/conanfile.py

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@
33
from conan.tools.files import get, copy, rmdir, replace_in_file
44
from conan.tools.build import check_min_cppstd
55
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
6-
from conan.tools.files import apply_conandata_patches, export_conandata_patches
7-
from conan.tools.scm import Version
86
import os
97

10-
required_conan_version = ">=1.53.0"
8+
required_conan_version = ">=2.1"
119

1210
class CpptraceConan(ConanFile):
1311
name = "cpptrace"
@@ -45,10 +43,7 @@ def layout(self):
4543
cmake_layout(self, src_folder="src")
4644

4745
def requirements(self):
48-
if Version(self.version) >= "0.4.0":
49-
self.requires("libdwarf/0.11.1")
50-
else:
51-
self.requires("libdwarf/0.8.0")
46+
self.requires("libdwarf/[>=0.11.0 <3]")
5247
if self.options.unwind == "libunwind":
5348
self.requires("libunwind/1.8.0", transitive_libs=True)
5449

@@ -62,25 +57,15 @@ def source(self):
6257
self._patch_sources()
6358

6459
def _patch_sources(self):
65-
apply_conandata_patches(self)
66-
if Version(self.version) >= "0.7.5":
67-
replace_in_file(self, os.path.join(self.source_folder, "cmake", "Autoconfig.cmake"),
68-
"set(CMAKE_CXX_STANDARD 11)", "")
69-
70-
def export_sources(self):
71-
export_conandata_patches(self)
60+
replace_in_file(self, os.path.join(self.source_folder, "cmake", "Autoconfig.cmake"),
61+
"set(CMAKE_CXX_STANDARD 11)", "")
7262

7363
def generate(self):
7464
tc = CMakeToolchain(self)
7565
if is_msvc(self):
7666
tc.variables["USE_MSVC_RUNTIME_LIBRARY_DLL"] = not is_msvc_static_runtime(self)
77-
if Version(self.version) >= "0.3.0":
78-
tc.variables["CPPTRACE_USE_EXTERNAL_LIBDWARF"] = True
79-
tc.variables["CPPTRACE_CONAN"] = True
80-
else:
81-
if not self.options.shared:
82-
tc.variables["CPPTRACE_STATIC"] = True
83-
tc.variables["CPPTRACE_USE_SYSTEM_LIBDWARF"] = True
67+
tc.variables["CPPTRACE_USE_EXTERNAL_LIBDWARF"] = True
68+
tc.variables["CPPTRACE_CONAN"] = True
8469
if self.options.unwind == "libunwind":
8570
tc.variables["CPPTRACE_UNWIND_WITH_LIBUNWIND"] = True
8671
tc.cache_variables["CPPTRACE_POSITION_INDEPENDENT_CODE"] = self.options.get_safe("fPIC", True)
@@ -118,9 +103,3 @@ def package_info(self):
118103

119104
if not self.options.shared:
120105
self.cpp_info.defines.append("CPPTRACE_STATIC_DEFINE")
121-
122-
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
123-
self.cpp_info.filenames["cmake_find_package"] = "CPPTRACE"
124-
self.cpp_info.filenames["cmake_find_package_multi"] = "cpptrace"
125-
self.cpp_info.names["cmake_find_package"] = "CPPTRACE"
126-
self.cpp_info.names["cmake_find_package_multi"] = "cpptrace"

recipes/cpptrace/all/patches/0.2.1/0001-to_uintptr.patch

Lines changed: 0 additions & 13 deletions
This file was deleted.

recipes/cpptrace/all/patches/0.2.1/0002-conan-libdwarf.patch

Lines changed: 0 additions & 62 deletions
This file was deleted.

recipes/cpptrace/all/test_package/CMakeLists.txt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,3 @@ find_package(cpptrace REQUIRED CONFIG)
55

66
add_executable(${PROJECT_NAME} test_package.cpp)
77
target_link_libraries(${PROJECT_NAME} PRIVATE cpptrace::cpptrace)
8-
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
9-
10-
if(${cpptrace_VERSION} VERSION_GREATER_EQUAL "0.4.0")
11-
target_compile_definitions(${PROJECT_NAME} PRIVATE CTRACE)
12-
endif()

recipes/cpptrace/all/test_package/test_package.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,11 @@
22
#include <iostream>
33
#include <limits.h>
44
#include <cpptrace/cpptrace.hpp>
5-
#ifdef CTRACE
65
#include <ctrace/ctrace.h>
7-
#endif
86

97
int main() {
10-
cpptrace::generate_trace().print();
11-
12-
#ifdef CTRACE
138
ctrace_stacktrace c_trace = ctrace_generate_trace(0, SIZE_MAX);
14-
#endif
9+
std::cout << "Stack trace generated with " << c_trace.count << " frames." << std::endl;
1510

1611
return EXIT_SUCCESS;
1712
}

recipes/cpptrace/config.yml

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,3 @@
11
versions:
22
"1.0.4":
33
folder: all
4-
"1.0.3":
5-
folder: all
6-
"0.8.3":
7-
folder: all
8-
"0.8.2":
9-
folder: all
10-
"0.7.5":
11-
folder: all
12-
"0.7.4":
13-
folder: all
14-
"0.7.3":
15-
folder: all
16-
"0.7.2":
17-
folder: all
18-
"0.7.1":
19-
folder: all
20-
"0.7.0":
21-
folder: all
22-
"0.6.3":
23-
folder: all
24-
"0.6.2":
25-
folder: all
26-
"0.6.1":
27-
folder: all
28-
"0.6.0":
29-
folder: all
30-
"0.3.1":
31-
folder: all
32-
"0.2.1":
33-
folder: all

0 commit comments

Comments
 (0)