mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-08 14:43:27 -04:00
dev-cpp/cpptrace: fix missing zstd
Signed-off-by: David Roman <davidroman96@gmail.com>
This commit is contained in:
27
dev-cpp/cpptrace/cpptrace-0.5.2-r1.ebuild
Normal file
27
dev-cpp/cpptrace/cpptrace-0.5.2-r1.ebuild
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake
|
||||
|
||||
DESCRIPTION="Simple, portable, and self-contained stacktrace library for C++"
|
||||
HOMEPAGE="https://github.com/jeremy-rifkin/cpptrace"
|
||||
SRC_URI="https://github.com/jeremy-rifkin/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DEPEND="dev-libs/libdwarf"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-fix-zstd.patch" )
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DCPPTRACE_USE_EXTERNAL_LIBDWARF=On
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
177
dev-cpp/cpptrace/files/cpptrace-fix-zstd.patch
Normal file
177
dev-cpp/cpptrace/files/cpptrace-fix-zstd.patch
Normal file
@@ -0,0 +1,177 @@
|
||||
From c73b3faf73c51c2c3bfe0e971e3ca527e4e5e5c7 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com>
|
||||
Date: Sun, 28 Apr 2024 20:18:13 -0500
|
||||
Subject: [PATCH 1/3] Remove find_dependency(zstd)
|
||||
|
||||
---
|
||||
cmake/in/cpptrace-config-cmake.in | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/in/cpptrace-config-cmake.in b/cmake/in/cpptrace-config-cmake.in
|
||||
index 412a9d0..0b25aac 100644
|
||||
--- a/cmake/in/cpptrace-config-cmake.in
|
||||
+++ b/cmake/in/cpptrace-config-cmake.in
|
||||
@@ -4,7 +4,6 @@
|
||||
# Dependencies
|
||||
if(@CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF@)
|
||||
include(CMakeFindDependencyMacro)
|
||||
- find_dependency(zstd REQUIRED)
|
||||
find_dependency(libdwarf REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
From 8d66998a67fcdfbf362aca39c8cc67060cf7a6d1 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com>
|
||||
Date: Sun, 28 Apr 2024 22:38:45 -0500
|
||||
Subject: [PATCH 2/3] Provide a Findzstd script
|
||||
|
||||
---
|
||||
cmake/Findzstd.cmake | 51 +++++++++++++++++++++++++++++++
|
||||
cmake/InstallRules.cmake | 3 ++
|
||||
cmake/in/cpptrace-config-cmake.in | 5 +++
|
||||
3 files changed, 59 insertions(+)
|
||||
create mode 100644 cmake/Findzstd.cmake
|
||||
|
||||
diff --git a/cmake/Findzstd.cmake b/cmake/Findzstd.cmake
|
||||
new file mode 100644
|
||||
index 0000000..fc8eb52
|
||||
--- /dev/null
|
||||
+++ b/cmake/Findzstd.cmake
|
||||
@@ -0,0 +1,51 @@
|
||||
+# Libdwarf needs zstd, cpptrace doesn't, and libdwarf has its own Findzstd but it doesn't define zstd::libzstd_static /
|
||||
+# zstd::libzstd_shared targets which leads to issues, necessitating a find_dependency(zstd) in cpptrace's cmake config
|
||||
+# and in order to support non-cmake-module installs we need to provide a Findzstd script.
|
||||
+# https://github.com/jeremy-rifkin/cpptrace/issues/112
|
||||
+
|
||||
+# This will define
|
||||
+# zstd_FOUND
|
||||
+# zstd_INCLUDE_DIR
|
||||
+# zstd_LIBRARY
|
||||
+
|
||||
+find_path(zstd_INCLUDE_DIR NAMES zstd.h)
|
||||
+
|
||||
+find_library(zstd_LIBRARY_DEBUG NAMES zstdd zstd_staticd)
|
||||
+find_library(zstd_LIBRARY_RELEASE NAMES zstd zstd_static)
|
||||
+
|
||||
+include(SelectLibraryConfigurations)
|
||||
+SELECT_LIBRARY_CONFIGURATIONS(zstd)
|
||||
+
|
||||
+include(FindPackageHandleStandardArgs)
|
||||
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(
|
||||
+ zstd DEFAULT_MSG
|
||||
+ zstd_LIBRARY zstd_INCLUDE_DIR
|
||||
+)
|
||||
+
|
||||
+if(zstd_FOUND)
|
||||
+ message(STATUS "Found Zstd: ${zstd_LIBRARY}")
|
||||
+endif()
|
||||
+
|
||||
+mark_as_advanced(zstd_INCLUDE_DIR zstd_LIBRARY)
|
||||
+
|
||||
+if(zstd_FOUND)
|
||||
+ # just defining them the same... cmake will figure it out
|
||||
+ if(NOT TARGET zstd::libzstd_static)
|
||||
+ add_library(zstd::libzstd_static UNKNOWN IMPORTED)
|
||||
+ set_target_properties(
|
||||
+ zstd::libzstd_static
|
||||
+ PROPERTIES
|
||||
+ IMPORTED_LOCATION "${zstd_LIBRARIES}"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
|
||||
+ )
|
||||
+ endif()
|
||||
+ if(NOT TARGET zstd::libzstd_shared)
|
||||
+ add_library(zstd::libzstd_shared UNKNOWN IMPORTED)
|
||||
+ set_target_properties(
|
||||
+ zstd::libzstd_shared
|
||||
+ PROPERTIES
|
||||
+ IMPORTED_LOCATION "${zstd_LIBRARIES}"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
|
||||
+ )
|
||||
+ endif()
|
||||
+endif()
|
||||
diff --git a/cmake/InstallRules.cmake b/cmake/InstallRules.cmake
|
||||
index b35c4d7..5087cbb 100644
|
||||
--- a/cmake/InstallRules.cmake
|
||||
+++ b/cmake/InstallRules.cmake
|
||||
@@ -62,6 +62,9 @@ install(
|
||||
COMPONENT ${package_name}-development
|
||||
)
|
||||
|
||||
+# Findzstd.cmake
|
||||
+install(FILES "${PROJECT_SOURCE_DIR}/cmake/Findzstd.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}")
|
||||
+
|
||||
# support packaging library
|
||||
if(PROJECT_IS_TOP_LEVEL)
|
||||
include(CPack)
|
||||
diff --git a/cmake/in/cpptrace-config-cmake.in b/cmake/in/cpptrace-config-cmake.in
|
||||
index 0b25aac..a128d52 100644
|
||||
--- a/cmake/in/cpptrace-config-cmake.in
|
||||
+++ b/cmake/in/cpptrace-config-cmake.in
|
||||
@@ -4,6 +4,11 @@
|
||||
# Dependencies
|
||||
if(@CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF@)
|
||||
include(CMakeFindDependencyMacro)
|
||||
+ set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
|
||||
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}")
|
||||
+ find_dependency(zstd)
|
||||
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}")
|
||||
+ unset(CMAKE_MODULE_PATH_OLD)
|
||||
find_dependency(libdwarf REQUIRED)
|
||||
endif()
|
||||
|
||||
|
||||
From 27438a34eb3534a9efe3733c67e629ed611facb2 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com>
|
||||
Date: Sun, 28 Apr 2024 23:13:12 -0500
|
||||
Subject: [PATCH 3/3] Update handling in vcpkg
|
||||
|
||||
---
|
||||
cmake/InstallRules.cmake | 8 +++++++-
|
||||
cmake/in/cpptrace-config-cmake.in | 15 ++++++++++-----
|
||||
2 files changed, 17 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/cmake/InstallRules.cmake b/cmake/InstallRules.cmake
|
||||
index 5087cbb..529e51a 100644
|
||||
--- a/cmake/InstallRules.cmake
|
||||
+++ b/cmake/InstallRules.cmake
|
||||
@@ -63,7 +63,13 @@ install(
|
||||
)
|
||||
|
||||
# Findzstd.cmake
|
||||
-install(FILES "${PROJECT_SOURCE_DIR}/cmake/Findzstd.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}")
|
||||
+# vcpkg doesn't like anything being put in share/, which is where this goes apparently on their setup
|
||||
+if(NOT CPPTRACE_VCPKG)
|
||||
+ install(
|
||||
+ FILES "${PROJECT_SOURCE_DIR}/cmake/Findzstd.cmake"
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}"
|
||||
+ )
|
||||
+endif()
|
||||
|
||||
# support packaging library
|
||||
if(PROJECT_IS_TOP_LEVEL)
|
||||
diff --git a/cmake/in/cpptrace-config-cmake.in b/cmake/in/cpptrace-config-cmake.in
|
||||
index a128d52..fc017ad 100644
|
||||
--- a/cmake/in/cpptrace-config-cmake.in
|
||||
+++ b/cmake/in/cpptrace-config-cmake.in
|
||||
@@ -4,11 +4,16 @@
|
||||
# Dependencies
|
||||
if(@CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF@)
|
||||
include(CMakeFindDependencyMacro)
|
||||
- set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
|
||||
- set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}")
|
||||
- find_dependency(zstd)
|
||||
- set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}")
|
||||
- unset(CMAKE_MODULE_PATH_OLD)
|
||||
+ # we don't go the Findzstd.cmake route on vcpkg
|
||||
+ if(@CPPTRACE_VCPKG@)
|
||||
+ find_dependency(zstd CONFIG REQUIRED)
|
||||
+ else()
|
||||
+ set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
|
||||
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}")
|
||||
+ find_dependency(zstd)
|
||||
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}")
|
||||
+ unset(CMAKE_MODULE_PATH_OLD)
|
||||
+ endif()
|
||||
find_dependency(libdwarf REQUIRED)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user