diff --git a/CMakeLists.txt b/CMakeLists.txt index 2049351..91bb853 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -322,6 +322,13 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF) PRIVATE ${zstd_SOURCE_DIR}/lib ) + if(CPPTRACE_PROVIDE_EXPORT_SET_FOR_LIBDWARF) + export( + TARGETS dwarf + NAMESPACE libdwarf:: + FILE "${PROJECT_BINARY_DIR}/libdwarf-targets.cmake" + ) + endif() endif() if(CPPTRACE_CONAN) target_link_libraries(${target_name} PRIVATE libdwarf::libdwarf) diff --git a/cmake/InstallRules.cmake b/cmake/InstallRules.cmake index 529e51a..85aa69f 100644 --- a/cmake/InstallRules.cmake +++ b/cmake/InstallRules.cmake @@ -62,6 +62,14 @@ install( COMPONENT ${package_name}-development ) +if(CPPTRACE_PROVIDE_EXPORT_SET) + export( + TARGETS ${target_name} + NAMESPACE cpptrace:: + FILE "${PROJECT_BINARY_DIR}/${package_name}-targets.cmake" + ) +endif() + # Findzstd.cmake # vcpkg doesn't like anything being put in share/, which is where this goes apparently on their setup if(NOT CPPTRACE_VCPKG) diff --git a/cmake/OptionVariables.cmake b/cmake/OptionVariables.cmake index e4c7e47..d6af387 100644 --- a/cmake/OptionVariables.cmake +++ b/cmake/OptionVariables.cmake @@ -180,6 +180,8 @@ set(CPPTRACE_ZSTD_URL "https://github.com/facebook/zstd/releases/download/v1.5.6 set(CPPTRACE_LIBDWARF_REPO "https://github.com/jeremy-rifkin/libdwarf-lite.git" CACHE STRING "") set(CPPTRACE_LIBDWARF_TAG "97fd68c6026c0237943106d6bc3e83f3661d39e8" CACHE STRING "") # v0.11.0 set(CPPTRACE_LIBDWARF_SHALLOW "1" CACHE STRING "") +option(CPPTRACE_PROVIDE_EXPORT_SET "" ON) +option(CPPTRACE_PROVIDE_EXPORT_SET_FOR_LIBDWARF "" ON) mark_as_advanced( CPPTRACE_BACKTRACE_PATH @@ -197,4 +199,6 @@ mark_as_advanced( CPPTRACE_LIBDWARF_REPO CPPTRACE_LIBDWARF_TAG CPPTRACE_LIBDWARF_SHALLOW + CPPTRACE_PROVIDE_EXPORT_SET + CPPTRACE_PROVIDE_EXPORT_SET_FOR_LIBDWARF )