A little refactoring and reorganization. Remove relative includes.

This commit is contained in:
Jeremy Rifkin 2024-08-18 11:58:49 -05:00
parent 0bb5aa2318
commit 164cc75681
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4
46 changed files with 156 additions and 144 deletions

View File

@ -243,6 +243,12 @@ target_include_directories(
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/cpptrace/>
)
target_include_directories(
${target_name}
PRIVATE
src
)
set(
warning_options
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wall -Wextra -Werror=return-type -Wundef>

View File

@ -1,4 +1,4 @@
#include "elf.hpp"
#include "binary/elf.hpp"
#if IS_LINUX

View File

@ -1,8 +1,8 @@
#ifndef ELF_HPP
#define ELF_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#if IS_LINUX

View File

@ -1,7 +1,7 @@
#include "mach-o.hpp"
#include "binary/mach-o.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#if IS_APPLE

View File

@ -1,8 +1,8 @@
#ifndef MACHO_HPP
#define MACHO_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#if IS_APPLE

View File

@ -1,7 +1,7 @@
#include "module_base.hpp"
#include "binary/module_base.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <string>
#include <vector>
@ -12,13 +12,13 @@
#include <unistd.h>
#include <dlfcn.h>
#if IS_APPLE
#include "mach-o.hpp"
#include "binary/mach-o.hpp"
#else
#include "elf.hpp"
#include "binary/elf.hpp"
#endif
#elif IS_WINDOWS
#include <windows.h>
#include "pe.hpp"
#include "binary/pe.hpp"
#endif
namespace cpptrace {

View File

@ -1,8 +1,8 @@
#ifndef IMAGE_MODULE_BASE_HPP
#define IMAGE_MODULE_BASE_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <cstdint>
#include <string>

View File

@ -1,8 +1,8 @@
#include "object.hpp"
#include "binary/object.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "module_base.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "binary/module_base.hpp"
#include <string>
#include <vector>

View File

@ -1,9 +1,9 @@
#ifndef OBJECT_HPP
#define OBJECT_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "module_base.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "binary/module_base.hpp"
#include <string>
#include <vector>

View File

@ -1,8 +1,8 @@
#include "pe.hpp"
#include "binary/pe.hpp"
#include "../utils/common.hpp"
#include "../utils/error.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#if IS_WINDOWS
#include <array>

View File

@ -1,8 +1,8 @@
#ifndef PE_HPP
#define PE_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#if IS_WINDOWS
#include <cstdint>

View File

@ -1,8 +1,8 @@
#include "safe_dl.hpp"
#include "binary/safe_dl.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "../utils/program_name.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "platform/program_name.hpp"
#include <string>
#include <vector>

View File

@ -1,7 +1,7 @@
#ifndef SAFE_DL_HPP
#define SAFE_DL_HPP
#include "../utils/common.hpp"
#include "utils/common.hpp"
namespace cpptrace {
namespace detail {

View File

@ -14,7 +14,7 @@
#include "symbols/symbols.hpp"
#include "unwind/unwind.hpp"
#include "demangle/demangle.hpp"
#include "utils/exception_type.hpp"
#include "platform/exception_type.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "binary/object.hpp"

View File

@ -5,7 +5,7 @@
#include "symbols/symbols.hpp"
#include "unwind/unwind.hpp"
#include "demangle/demangle.hpp"
#include "utils/exception_type.hpp"
#include "platform/exception_type.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "binary/object.hpp"

View File

@ -1,6 +1,6 @@
#ifdef CPPTRACE_DEMANGLE_WITH_CXXABI
#include "demangle.hpp"
#include "demangle/demangle.hpp"
#include <cxxabi.h>

View File

@ -1,6 +1,6 @@
#ifdef CPPTRACE_DEMANGLE_WITH_NOTHING
#include "demangle.hpp"
#include "demangle/demangle.hpp"
#include <string>

View File

@ -1,6 +1,6 @@
#ifdef CPPTRACE_DEMANGLE_WITH_WINAPI
#include "demangle.hpp"
#include "demangle/demangle.hpp"
#include <string>

View File

@ -1,8 +1,8 @@
#ifndef DBGHELP_SYMINIT_MANAGER_HPP
#define DBGHELP_SYMINIT_MANAGER_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <unordered_set>

View File

@ -8,7 +8,7 @@
#include <cxxabi.h>
#endif
#include "../demangle/demangle.hpp"
#include "demangle/demangle.hpp"
namespace cpptrace {
namespace detail {

View File

@ -1,7 +1,7 @@
#ifndef PATH_HPP
#define PATH_HPP
#include "common.hpp"
#include "utils/common.hpp"
#if IS_WINDOWS
#include <windows.h>

38
src/platform/platform.hpp Normal file
View File

@ -0,0 +1,38 @@
#ifndef PLATFORM_HPP
#define PLATFORM_HPP
#define IS_WINDOWS 0
#define IS_LINUX 0
#define IS_APPLE 0
#if defined(_WIN32)
#undef IS_WINDOWS
#define IS_WINDOWS 1
#elif defined(__linux)
#undef IS_LINUX
#define IS_LINUX 1
#elif defined(__APPLE__)
#undef IS_APPLE
#define IS_APPLE 1
#else
#error "Unexpected platform"
#endif
#define IS_CLANG 0
#define IS_GCC 0
#define IS_MSVC 0
#if defined(__clang__)
#undef IS_CLANG
#define IS_CLANG 1
#elif defined(__GNUC__) || defined(__GNUG__)
#undef IS_GCC
#define IS_GCC 1
#elif defined(_MSC_VER)
#undef IS_MSVC
#define IS_MSVC 1
#else
#error "Unsupported compiler"
#endif
#endif

View File

@ -1,4 +1,4 @@
#include "snippet.hpp"
#include "snippets/snippet.hpp"
#include <algorithm>
#include <cstdint>
@ -8,8 +8,8 @@
#include <fstream>
#include <iostream>
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
namespace cpptrace {
namespace detail {

View File

@ -1,14 +1,14 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF
#include "resolver.hpp"
#include "symbols/dwarf/resolver.hpp"
#include <cpptrace/cpptrace.hpp>
#include "../symbols.hpp"
#include "../../utils/common.hpp"
#include "../../utils/error.hpp"
#include "../../binary/object.hpp"
#include "../../binary/mach-o.hpp"
#include "../../utils/utils.hpp"
#include "symbols/symbols.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "binary/object.hpp"
#include "binary/mach-o.hpp"
#include "utils/utils.hpp"
#include <algorithm>
#include <cstdint>

View File

@ -2,8 +2,8 @@
#define DWARF_HPP
#include <cpptrace/cpptrace.hpp>
#include "../utils/error.hpp"
#include "../utils/utils.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#include <functional>
#include <stdexcept>

View File

@ -1,16 +1,16 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF
#include "resolver.hpp"
#include "symbols/dwarf/resolver.hpp"
#include <cpptrace/cpptrace.hpp>
#include "../symbols.hpp"
#include "../../utils/common.hpp"
#include "../../utils/dwarf.hpp" // has dwarf #includes
#include "../../utils/error.hpp"
#include "../../utils/utils.hpp"
#include "../../utils/path.hpp"
#include "../../utils/program_name.hpp" // For CPPTRACE_MAX_PATH
#include "../../binary/mach-o.hpp"
#include "symbols/dwarf/dwarf.hpp" // has dwarf #includes
#include "symbols/symbols.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#include "platform/path.hpp"
#include "platform/program_name.hpp" // For CPPTRACE_MAX_PATH
#include "binary/mach-o.hpp"
#include <algorithm>
#include <cstdint>

View File

@ -2,8 +2,8 @@
#define SYMBOL_RESOLVER_HPP
#include <cpptrace/cpptrace.hpp>
#include "../symbols.hpp"
#include "../../utils/common.hpp"
#include "symbols/symbols.hpp"
#include "utils/common.hpp"
#include <memory>

View File

@ -7,7 +7,7 @@
#include <vector>
#include <unordered_map>
#include "../binary/object.hpp"
#include "binary/object.hpp"
namespace cpptrace {
namespace detail {

View File

@ -1,10 +1,10 @@
#include "symbols.hpp"
#include "symbols/symbols.hpp"
#include <vector>
#include <unordered_map>
#include "../utils/common.hpp"
#include "../binary/object.hpp"
#include "utils/common.hpp"
#include "binary/object.hpp"
namespace cpptrace {
namespace detail {

View File

@ -1,9 +1,9 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE
#include <cpptrace/cpptrace.hpp>
#include "symbols.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "symbols/symbols.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <cstdint>
#include <cstdio>
@ -20,7 +20,7 @@
#include <sys/wait.h>
#endif
#include "../binary/object.hpp"
#include "binary/object.hpp"
namespace cpptrace {
namespace detail {

View File

@ -1,8 +1,8 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_DBGHELP
#include <cpptrace/cpptrace.hpp>
#include "symbols.hpp"
#include "../utils/dbghelp_syminit_manager.hpp"
#include "symbols/symbols.hpp"
#include "utils/dbghelp_syminit_manager.hpp"
#include <memory>
#include <mutex>

View File

@ -1,7 +1,7 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDL
#include <cpptrace/cpptrace.hpp>
#include "symbols.hpp"
#include "symbols/symbols.hpp"
#include <cstdint>
#include <memory>

View File

@ -1,8 +1,8 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE
#include <cpptrace/cpptrace.hpp>
#include "symbols.hpp"
#include "../utils/program_name.hpp"
#include "symbols/symbols.hpp"
#include "platform/program_name.hpp"
#include <cstdint>
#include <cstdio>

View File

@ -1,12 +1,12 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF
#include "symbols.hpp"
#include "symbols/symbols.hpp"
#include <cpptrace/cpptrace.hpp>
#include "dwarf/resolver.hpp"
#include "../utils/common.hpp"
#include "../utils/error.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#include <cstdint>
#include <cstdio>

View File

@ -1,7 +1,7 @@
#ifdef CPPTRACE_GET_SYMBOLS_WITH_NOTHING
#include <cpptrace/cpptrace.hpp>
#include "symbols.hpp"
#include "symbols/symbols.hpp"
#include <vector>

View File

@ -1,8 +1,8 @@
#ifndef UNWIND_HPP
#define UNWIND_HPP
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <cstddef>
#include <vector>

View File

@ -1,10 +1,10 @@
#ifdef CPPTRACE_UNWIND_WITH_DBGHELP
#include <cpptrace/cpptrace.hpp>
#include "unwind.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "../utils/dbghelp_syminit_manager.hpp"
#include "unwind/unwind.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include "utils/dbghelp_syminit_manager.hpp"
#include <algorithm>
#include <cstdint>

View File

@ -1,8 +1,8 @@
#ifdef CPPTRACE_UNWIND_WITH_EXECINFO
#include "unwind.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "unwind/unwind.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <algorithm>
#include <climits>

View File

@ -1,9 +1,9 @@
#ifdef CPPTRACE_UNWIND_WITH_LIBUNWIND
#include "unwind.hpp"
#include "../utils/common.hpp"
#include "../utils/error.hpp"
#include "../utils/utils.hpp"
#include "unwind/unwind.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#include <algorithm>
#include <cassert>

View File

@ -1,6 +1,6 @@
#ifdef CPPTRACE_UNWIND_WITH_NOTHING
#include "unwind.hpp"
#include "unwind/unwind.hpp"
#include <cstddef>
#include <vector>

View File

@ -1,9 +1,9 @@
#ifdef CPPTRACE_UNWIND_WITH_UNWIND
#include "unwind.hpp"
#include "../utils/common.hpp"
#include "../utils/error.hpp"
#include "../utils/utils.hpp"
#include "unwind/unwind.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/utils.hpp"
#include <algorithm>
#include <cassert>

View File

@ -1,9 +1,9 @@
#ifdef CPPTRACE_UNWIND_WITH_WINAPI
#include <cpptrace/cpptrace.hpp>
#include "unwind.hpp"
#include "../utils/common.hpp"
#include "../utils/utils.hpp"
#include "unwind/unwind.hpp"
#include "utils/common.hpp"
#include "utils/utils.hpp"
#include <algorithm>
#include <cstdint>

View File

@ -1,46 +1,14 @@
#ifndef COMMON_HPP
#define COMMON_HPP
#define IS_WINDOWS 0
#define IS_LINUX 0
#define IS_APPLE 0
#if defined(_WIN32)
#undef IS_WINDOWS
#define IS_WINDOWS 1
#elif defined(__linux)
#undef IS_LINUX
#define IS_LINUX 1
#elif defined(__APPLE__)
#undef IS_APPLE
#define IS_APPLE 1
#else
#error "Unexpected platform"
#endif
#define IS_CLANG 0
#define IS_GCC 0
#define IS_MSVC 0
#if defined(__clang__)
#undef IS_CLANG
#define IS_CLANG 1
#elif defined(__GNUC__) || defined(__GNUG__)
#undef IS_GCC
#define IS_GCC 1
#elif defined(_MSC_VER)
#undef IS_MSVC
#define IS_MSVC 1
#else
#error "Unsupported compiler"
#endif
#include <cstdio>
#include <stdexcept>
#include <string>
#include <cpptrace/cpptrace.hpp>
#include "platform/platform.hpp"
#define ESC "\033["
#define RESET ESC "0m"
#define RED ESC "31m"

View File

@ -6,8 +6,8 @@
#include <string>
#include <utility>
#include "common.hpp"
#include "microfmt.hpp"
#include "utils/common.hpp"
#include "utils/microfmt.hpp"
#if IS_MSVC
#define CPPTRACE_PFUNC __FUNCSIG__

View File

@ -18,9 +18,9 @@
#include <utility>
#include <vector>
#include "common.hpp"
#include "error.hpp"
#include "microfmt.hpp"
#include "utils/common.hpp"
#include "utils/error.hpp"
#include "utils/microfmt.hpp"
#if IS_WINDOWS
#include <windows.h>