mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-04-07 11:20:48 -04:00
178 lines
5.9 KiB
Diff
178 lines
5.9 KiB
Diff
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()
|
|
|