From c477773e5a58e929427107f7891d38763adc5950 Mon Sep 17 00:00:00 2001 From: oltolm Date: Mon, 13 Oct 2025 21:08:35 +0200 Subject: [PATCH 1/3] add addr2line to CMakeLists.txt --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba2d0df..e6ae46d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,3 +95,7 @@ target_include_directories(${TARGET_NAME} PRIVATE PUBLIC include ) + +add_executable(a2l examples/addr2line/a2l.c) +target_link_libraries(a2l PRIVATE ${TARGET_NAME}) +target_link_options(a2l PRIVATE -municode) From 9af14f9202e6d4f82d985b4114ecfa539c163ff5 Mon Sep 17 00:00:00 2001 From: oltolm Date: Wed, 10 Dec 2025 20:33:40 +0100 Subject: [PATCH 2/3] CMake: support shared and static DLLs --- CMakeLists.txt | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e6ae46d..016655d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 4.1.1) +cmake_minimum_required(VERSION 3.28) project(dwarfstack VERSION 2.4.0 LANGUAGES C CXX) @@ -7,13 +7,7 @@ set(DWST_VER_NUM 2,4,0,99) set(DWST_PRERELEASE 1) set(DWST_COPYRIGHT_YEARS "2013-2025") -if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(TARGET_NAME dwarfstack64) -else() - set(TARGET_NAME dwarfstack32) -endif() - -add_library(${TARGET_NAME} SHARED +add_library(dwarfstack src/dwst-exception-dialog.c src/dwst-exception.c src/dwst-file.c @@ -70,32 +64,37 @@ set_source_files_properties(dwarfstack-ver.rc PROPERTIES COMPILE_DEFINITIONS "DWST_VER_STR=\\\"${DWST_VERSION}\\\";DWST_VER_NUM=${DWST_VER_NUM};DWST_PRERELEASE=${DWST_PRERELEASE};DWST_COPYRIGHT_YEARS=\\\"${DWST_COPYRIGHT_YEARS}\\\"" ) -target_compile_options(${TARGET_NAME} PRIVATE +target_compile_options(dwarfstack PRIVATE -Wno-unused -Wno-pointer-to-int-cast -Wno-int-to-pointer-cast ) -target_compile_definitions(${TARGET_NAME} PRIVATE - DWST_SHARED +target_compile_definitions(dwarfstack PRIVATE DW_TSHASHTYPE=uintptr_t LIBDWARF_STATIC ) -target_link_libraries(${TARGET_NAME} PRIVATE +if (BUILD_SHARED_LIBS) + target_compile_definitions(dwarfstack PRIVATE DWST_SHARED) +else() + target_compile_definitions(dwarfstack PUBLIC DWST_STATIC) +endif() + +target_link_libraries(dwarfstack PRIVATE dbghelp gdi32 stdc++ ) -target_include_directories(${TARGET_NAME} PRIVATE +target_include_directories(dwarfstack PRIVATE mgwhelp - libdwarf zlib PUBLIC include + libdwarf ) add_executable(a2l examples/addr2line/a2l.c) -target_link_libraries(a2l PRIVATE ${TARGET_NAME}) +target_link_libraries(a2l PRIVATE dwarfstack) target_link_options(a2l PRIVATE -municode) From 7defaae14b5e5ce3a06b889c4eb6d2b4549ace91 Mon Sep 17 00:00:00 2001 From: oltolm Date: Thu, 7 May 2026 07:21:06 +0200 Subject: [PATCH 3/3] cmake: add BUILD_SHARED_LIBS option --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 016655d..ed7c5ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.28) project(dwarfstack VERSION 2.4.0 LANGUAGES C CXX) +option(BUILD_SHARED_LIBS "Build using shared libraries" ON) + set(DWST_VERSION "2.4-git") set(DWST_VER_NUM 2,4,0,99) set(DWST_PRERELEASE 1)