Skip to content

Commit 4bfe356

Browse files
committed
Fix cmake path handling for installed dependdencies when using cpptrace_DIR, fixes #291
1 parent 4f2bb41 commit 4bfe356

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

cmake/InstallRules.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ install(
3939
)
4040

4141
# create config file that points to targets file
42-
configure_file(
42+
configure_package_config_file(
4343
"${PROJECT_SOURCE_DIR}/cmake/in/cpptrace-config-cmake.in"
4444
"${PROJECT_BINARY_DIR}/cmake/${package_name}-config.cmake"
45-
@ONLY
45+
INSTALL_DESTINATION "${CPPTRACE_INSTALL_CMAKEDIR}"
4646
)
4747

4848
# copy config file for find_package to find

cmake/in/cpptrace-config-cmake.in

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33

44
# Dependencies
55
include(CMakeFindDependencyMacro)
6-
set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
6+
7+
# Add install prefix to search path so co-installed dependencies are found
8+
# even when consumers use cpptrace_DIR instead of CMAKE_PREFIX_PATH
9+
set(_cpptrace_CMAKE_PREFIX_PATH_OLD "${CMAKE_PREFIX_PATH}")
10+
list(APPEND CMAKE_PREFIX_PATH "${PACKAGE_PREFIX_DIR}")
11+
12+
set(_cpptrace_CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
713
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
814

915
if(@CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF@)
@@ -21,8 +27,10 @@ if(@CPPTRACE_UNWIND_WITH_LIBUNWIND@)
2127
find_dependency(Libunwind)
2228
endif()
2329

24-
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}")
25-
unset(CMAKE_MODULE_PATH_OLD)
30+
set(CMAKE_MODULE_PATH "${_cpptrace_CMAKE_MODULE_PATH_OLD}")
31+
unset(_cpptrace_CMAKE_MODULE_PATH_OLD)
32+
set(CMAKE_PREFIX_PATH "${_cpptrace_CMAKE_PREFIX_PATH_OLD}")
33+
unset(_cpptrace_CMAKE_PREFIX_PATH_OLD)
2634

2735
# We cannot modify an existing IMPORT target
2836
if(NOT TARGET cpptrace::cpptrace)

0 commit comments

Comments
 (0)