vcpkg/ports/cpptrace/portfile.cmake

47 lines
1.3 KiB
CMake

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO jeremy-rifkin/cpptrace
REF "v${VERSION}"
SHA512 e88edddbcdd423d49ed3adb02cf70580ee3a56065db4d81ca69d3f9f6d9b64ac27734842ca3b6d8ff45a548c25900a88f979e39d777af422a153e586d26ac5b5
HEAD_REF main
PATCHES
emscripten-platform.diff
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
libunwind CPPTRACE_UNWIND_WITH_LIBUNWIND
)
if(VCPKG_TARGET_IS_EMSCRIPTEN)
# Emscripten exposes no stack-unwinding or symbol back-end, so build a no-op tracer.
set(BACKEND_OPTIONS
-DCPPTRACE_UNWIND_WITH_NOTHING=ON
-DCPPTRACE_GET_SYMBOLS_WITH_NOTHING=ON
)
else()
set(BACKEND_OPTIONS
-DCPPTRACE_USE_EXTERNAL_LIBDWARF=ON
)
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DCPPTRACE_USE_EXTERNAL_ZSTD=ON
-DCPPTRACE_VCPKG=ON
${BACKEND_OPTIONS}
${FEATURE_OPTIONS}
)
vcpkg_cmake_install()
vcpkg_cmake_config_fixup(
PACKAGE_NAME "cpptrace"
CONFIG_PATH "lib/cmake/cpptrace"
)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")