Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
cmake_minimum_required(VERSION 4.1.1)
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)
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
Expand Down Expand Up @@ -70,28 +66,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 dwarfstack)
target_link_options(a2l PRIVATE -municode)
Loading