aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libdwarf
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/libdwarf
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/libdwarf')
-rw-r--r--vcpkg/ports/libdwarf/dependencies.diff45
-rw-r--r--vcpkg/ports/libdwarf/dwarfdump-conf.diff19
-rw-r--r--vcpkg/ports/libdwarf/include-dir.diff44
-rw-r--r--vcpkg/ports/libdwarf/msvc-runtime.diff12
-rw-r--r--vcpkg/ports/libdwarf/portfile.cmake54
-rw-r--r--vcpkg/ports/libdwarf/vcpkg.json19
6 files changed, 193 insertions, 0 deletions
diff --git a/vcpkg/ports/libdwarf/dependencies.diff b/vcpkg/ports/libdwarf/dependencies.diff
new file mode 100644
index 0000000..4d03ed0
--- /dev/null
+++ b/vcpkg/ports/libdwarf/dependencies.diff
@@ -0,0 +1,45 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 133523b4..0c754c6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -188,7 +188,7 @@ if (ENABLE_DECOMPRESSION)
+ #message(STATUS "In ENABLE_DECOMPRESSION setup: TRUE")
+ # Zlib and ZSTD need to be found otherwise disable it
+ if(NOT TARGET ZLIB::ZLIB)
+- find_package(ZLIB)
++ find_package(ZLIB REQUIRED)
+ else()
+ # Presumably in this case, the target has been found externally but set this flag just in case
+ set(ZLIB_FOUND TRUE)
+@@ -203,7 +203,7 @@ if (ENABLE_DECOMPRESSION)
+ TARGET ZSTD::ZSTD
+ )
+ )
+- find_package(zstd)
++ find_package(zstd CONFIG REQUIRED)
+ else()
+ # Presumably in this case, the target has been found externally but set this flag just in case
+ set(zstd_FOUND TRUE)
+diff --git a/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in b/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in
+index 567bcf3..888b801 100644
+--- a/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in
++++ b/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in
+@@ -7,7 +7,7 @@ if(LIBDWARF_BUILT_WITH_ZLIB_AND_ZSTD)
+ find_dependency(ZLIB)
+ set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}")
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}")
+- find_dependency(zstd)
++ find_dependency(zstd CONFIG)
+ set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}")
+ unset(CMAKE_MODULE_PATH_OLD)
+ endif()
+diff --git a/src/lib/libdwarf/libdwarf.pc.in b/src/lib/libdwarf/libdwarf.pc.in
+index 1d78dbb..3bb9178 100644
+--- a/src/lib/libdwarf/libdwarf.pc.in
++++ b/src/lib/libdwarf/libdwarf.pc.in
+@@ -9,4 +9,5 @@ Description: DWARF debug symbols library
+ Version: @PROJECT_VERSION@
+ Libs: -L${libdir} -ldwarf
+ Cflags: -I${includedir}
++Requires.private: zlib libzstd
+
diff --git a/vcpkg/ports/libdwarf/dwarfdump-conf.diff b/vcpkg/ports/libdwarf/dwarfdump-conf.diff
new file mode 100644
index 0000000..5901ec8
--- /dev/null
+++ b/vcpkg/ports/libdwarf/dwarfdump-conf.diff
@@ -0,0 +1,19 @@
+diff --git a/src/bin/dwarfdump/CMakeLists.txt b/src/bin/dwarfdump/CMakeLists.txt
+index 6e3761d..5124f29 100644
+--- a/src/bin/dwarfdump/CMakeLists.txt
++++ b/src/bin/dwarfdump/CMakeLists.txt
+@@ -62,7 +62,7 @@ add_executable(dwarfdump ${SOURCES} ${HEADERS} ${CONFIGURATION_FILES})
+ set_folder(dwarfdump src/bin/dwarfdump)
+
+ target_compile_definitions(dwarfdump PRIVATE
+- "CONFPREFIX=${CMAKE_INSTALL_PREFIX}/lib" ${DW_LIBDWARF_STATIC}
++ "CONFPREFIX=${CMAKE_INSTALL_DATAROOTDIR}/libdwarf" ${DW_LIBDWARF_STATIC}
+ _GNU_SOURCE)
+ target_compile_options(dwarfdump PRIVATE ${DW_FWALL})
+
+@@ -72,4 +72,4 @@ install(TARGETS dwarfdump DESTINATION
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+-install(FILES dwarfdump.conf DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/dwarfdump)
++install(FILES dwarfdump.conf DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/libdwarf)
diff --git a/vcpkg/ports/libdwarf/include-dir.diff b/vcpkg/ports/libdwarf/include-dir.diff
new file mode 100644
index 0000000..749cfe6
--- /dev/null
+++ b/vcpkg/ports/libdwarf/include-dir.diff
@@ -0,0 +1,44 @@
+diff --git a/src/lib/libdwarf/CMakeLists.txt b/src/lib/libdwarf/CMakeLists.txt
+index 0278755..19f1673 100644
+--- a/src/lib/libdwarf/CMakeLists.txt
++++ b/src/lib/libdwarf/CMakeLists.txt
+@@ -103,7 +103,7 @@ msvc_posix(dwarf)
+ target_compile_definitions(dwarf PUBLIC ${DEFS})
+ target_include_directories(dwarf PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/libdwarf>
+ )
+ if(ZLIB_FOUND AND zstd_FOUND)
+ target_link_libraries(dwarf PRIVATE ZLIB::ZLIB ${ZSTD_LIB} )
+@@ -114,7 +114,7 @@ install(TARGETS dwarf
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+- PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libdwarf"
+ )
+
+ configure_file(libdwarf.pc.in libdwarf.pc @ONLY)
+@@ -130,7 +130,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libdwarfConfig.cmake" "${CMAKE_CURREN
+ install(TARGETS dwarf EXPORT libdwarfTargets
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+- PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libdwarf")
+ install(EXPORT libdwarfTargets
+ FILE libdwarf-targets.cmake
+ NAMESPACE libdwarf::
+diff --git a/src/lib/libdwarf/libdwarf.pc.in b/src/lib/libdwarf/libdwarf.pc.in
+index 3bb9178..4a094d1 100644
+--- a/src/lib/libdwarf/libdwarf.pc.in
++++ b/src/lib/libdwarf/libdwarf.pc.in
+@@ -2,7 +2,7 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix="${prefix}"
+ libdir="${prefix}/lib"
+-includedir="${prefix}/include"
++includedir="${prefix}/include/libdwarf"
+
+ Name: libdwarf
+ Description: DWARF debug symbols library
diff --git a/vcpkg/ports/libdwarf/msvc-runtime.diff b/vcpkg/ports/libdwarf/msvc-runtime.diff
new file mode 100644
index 0000000..c2d118c
--- /dev/null
+++ b/vcpkg/ports/libdwarf/msvc-runtime.diff
@@ -0,0 +1,12 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 28076ee..f9795dd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -45,6 +45,7 @@ macro(msvc_posix target)
+ endmacro()
+
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
++elseif(0)
+ set(LIBDWARF_CRT "MD" CACHE STRING "Either MT or MD, specifies whether to use the static or dynamic MSVCRT.")
+
+ # Use CMAKE_MSVC_RUNTIME in versions 3.15 and up
diff --git a/vcpkg/ports/libdwarf/portfile.cmake b/vcpkg/ports/libdwarf/portfile.cmake
new file mode 100644
index 0000000..ebf70aa
--- /dev/null
+++ b/vcpkg/ports/libdwarf/portfile.cmake
@@ -0,0 +1,54 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO davea42/libdwarf-code
+ REF "v${VERSION}"
+ SHA512 9fbf58e04e49816cb1f8e34362dd7c784476422896a88042bebd09778fad4a37cbf3f4c060f491b8d55bec610be37137b24a4910498499d3fcecf9da4aa78254
+ HEAD_REF main
+ PATCHES
+ include-dir.diff # avoid dwarf.h conflict with elfutils
+ dependencies.diff
+ msvc-runtime.diff
+ dwarfdump-conf.diff # no absolute paths
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_NON_SHARED)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DBUILD_NON_SHARED=${BUILD_NON_SHARED}
+ -DBUILD_SHARED=${BUILD_SHARED}
+ OPTIONS_DEBUG
+ -DBUILD_DWARFDUMP=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdwarf")
+vcpkg_fixup_pkgconfig()
+vcpkg_copy_pdbs()
+vcpkg_copy_tools(TOOL_NAMES dwarfdump AUTO_CLEAN)
+
+if(BUILD_SHARED)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libdwarf/libdwarf.h" "ifndef LIBDWARF_STATIC" "if 1")
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/libdwarf/Findzstd.cmake"
+)
+
+file(COPY_FILE "${SOURCE_PATH}/src/lib/libdwarf/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdwarf COPYING")
+file(COPY_FILE "${SOURCE_PATH}/src/bin/dwarfdump/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfdump COPYING")
+file(COPY_FILE "${SOURCE_PATH}/src/bin/dwarfgen/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfgen COPYING")
+vcpkg_install_copyright(FILE_LIST
+ "${SOURCE_PATH}/COPYING"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdwarf COPYING"
+ "${SOURCE_PATH}/src/lib/libdwarf/LIBDWARFCOPYRIGHT"
+ "${SOURCE_PATH}/src/lib/libdwarf/LGPL.txt"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfdump COPYING"
+ "${SOURCE_PATH}/src/bin/dwarfdump/DWARFDUMPCOPYRIGHT"
+ "${SOURCE_PATH}/src/bin/dwarfdump/GPL.txt"
+ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfgen COPYING"
+)
diff --git a/vcpkg/ports/libdwarf/vcpkg.json b/vcpkg/ports/libdwarf/vcpkg.json
new file mode 100644
index 0000000..f56c645
--- /dev/null
+++ b/vcpkg/ports/libdwarf/vcpkg.json
@@ -0,0 +1,19 @@
+{
+ "name": "libdwarf",
+ "version": "2.2.0",
+ "description": "A library for reading DWARF2 and later DWARF.",
+ "homepage": "https://github.com/davea42/libdwarf-code",
+ "license": null,
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib",
+ "zstd"
+ ]
+}