Remove CPPTRACE_CONDA_LIBDWARF_WEIRDNESS bodge and better support libdwarf via pkgconfig, resolves #131

This commit is contained in:
Jeremy 2024-05-28 21:32:54 -05:00
parent 2499fa4a67
commit 9d1c592f0c
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4
3 changed files with 6 additions and 14 deletions

View File

@ -466,13 +466,12 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
# it's libdwarf/libdwarf.h and libdwarf/dwarf.h or just libdwarf.h and dwarf.h
include(CheckIncludeFileCXX)
# libdwarf's cmake doesn't properly set variables to indicate where its libraries live
if(NOT CPPTRACE_CONDA_LIBDWARF_WEIRDNESS)
get_target_property(LIBDWARF_INTERFACE_INCLUDE_DIRECTORIES ${LIBDWARF_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
set(CMAKE_REQUIRED_INCLUDES ${LIBDWARF_INTERFACE_INCLUDE_DIRECTORIES})
if(NOT CPPTRACE_FIND_LIBDWARF_WITH_PKGCONFIG)
get_target_property(LIBDWARF_INCLUDE_DIRS ${LIBDWARF_LIBRARIES} INTERFACE_INCLUDE_DIRECTORIES)
else()
set(CMAKE_REQUIRED_INCLUDES ${LIBDWARF_INCLUDE_DIRS})
target_compile_definitions(${target_name} PRIVATE CPPTRACE_CONDA_LIBDWARF_WEIRDNESS)
target_include_directories(${target_name} PRIVATE ${LIBDWARF_INCLUDE_DIRS})
endif()
set(CMAKE_REQUIRED_INCLUDES ${LIBDWARF_INCLUDE_DIRS})
CHECK_INCLUDE_FILE_CXX("libdwarf/libdwarf.h" LIBDWARF_IS_NESTED)
CHECK_INCLUDE_FILE_CXX("libdwarf.h" LIBDWARF_IS_NOT_NESTED)
# check_include_file("libdwarf/libdwarf.h" LIBDWARF_IS_NESTED)

View File

@ -163,7 +163,6 @@ option(CPPTRACE_FIND_LIBDWARF_WITH_PKGCONFIG "" OFF)
option(CPPTRACE_USE_EXTERNAL_ZSTD "" OFF)
option(CPPTRACE_CONAN "" OFF)
option(CPPTRACE_VCPKG "" OFF)
option(CPPTRACE_CONDA_LIBDWARF_WEIRDNESS "" OFF)
option(CPPTRACE_SANITIZER_BUILD "" OFF)
option(CPPTRACE_WERROR_BUILD "" OFF)
option(CPPTRACE_POSITION_INDEPENDENT_CODE "" ON)
@ -178,7 +177,6 @@ mark_as_advanced(
CPPTRACE_WERROR_BUILD
CPPTRACE_CONAN
CPPTRACE_VCPKG
CPPTRACE_CONDA_LIBDWARF_WEIRDNESS
CPPTRACE_IS_GH_ACTIONS
CPPTRACE_USE_EXTERNAL_GTEST
)

View File

@ -13,13 +13,8 @@
#include <libdwarf/libdwarf.h>
#include <libdwarf/dwarf.h>
#else
#ifndef CPPTRACE_CONDA_LIBDWARF_WEIRDNESS
#include <libdwarf.h>
#include <dwarf.h>
#else
#include <libdwarf.h>
#include <libdwarf-0/dwarf.h>
#endif
#include <libdwarf.h>
#include <dwarf.h>
#endif
namespace cpptrace {