diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/rhash | |
Diffstat (limited to 'vcpkg/ports/rhash')
| -rw-r--r-- | vcpkg/ports/rhash/CMakeLists.txt | 56 | ||||
| -rw-r--r-- | vcpkg/ports/rhash/portfile.cmake | 28 | ||||
| -rw-r--r-- | vcpkg/ports/rhash/vcpkg.json | 18 |
3 files changed, 102 insertions, 0 deletions
diff --git a/vcpkg/ports/rhash/CMakeLists.txt b/vcpkg/ports/rhash/CMakeLists.txt new file mode 100644 index 0000000..d32e94b --- /dev/null +++ b/vcpkg/ports/rhash/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.5) +project(rhash C) + +# cf. configure: RHASH_XVERSION = $(printf "0x%02x%02x%02x%02x" "$_v1" "$_v2" "$_v3" 0) +set(RHASH_VERSION "undefined" CACHE STRING "") +if(NOT RHASH_VERSION MATCHES [[^([0-9]+)[.]([0-9]+)[.]([0-9]+)$]]) + message(FATAL_ERROR "Cannot derive RHASH_XVERSION from '${RHASH_VERSION}'") +endif() +MATH(EXPR RHASH_XVERSION "((${CMAKE_MATCH_1} * 256 + ${CMAKE_MATCH_2}) * 256 + ${CMAKE_MATCH_3}) * 256" OUTPUT_FORMAT HEXADECIMAL) + +file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/Makefile RHASH_SOURCES REGEX "^SOURCES = .*$") +string(REPLACE "SOURCES = " "" RHASH_SOURCES "${RHASH_SOURCES}") +string(REPLACE " " ";" RHASH_SOURCES "${RHASH_SOURCES}") + +add_library(rhash ${RHASH_SOURCES}) + +target_compile_definitions(rhash PRIVATE RHASH_XVERSION=${RHASH_XVERSION}) + +if(WIN32 AND BUILD_SHARED_LIBS) + target_compile_definitions(rhash PRIVATE RHASH_EXPORTS) +endif() + +target_include_directories(rhash INTERFACE $<INSTALL_INTERFACE:include>) + +install(TARGETS rhash EXPORT unofficial-rhash-config + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install(EXPORT unofficial-rhash-config + FILE unofficial-rhash-config.cmake + NAMESPACE unofficial::rhash:: + DESTINATION share/unofficial-rhash +) + +if(NOT RHASH_SKIP_HEADERS) + install(FILES rhash.h rhash_torrent.h DESTINATION include) +endif() + +# cf. configure +set(LIBRHASH_PC "${CMAKE_CURRENT_BINARY_DIR}/librhash.pc") +file(WRITE "${LIBRHASH_PC}" +"prefix=fixup +exec_prefix=\${prefix} +libdir=\${prefix}/lib +includedir=\${prefix}/include + +Name: librash +Description: LibRHash shared library +Version: ${RHASH_VERSION} +Cflags: -I\${includedir} +Libs: -L\${libdir} -lrhash +") + +install(FILES "${LIBRHASH_PC}" DESTINATION "lib/pkgconfig") diff --git a/vcpkg/ports/rhash/portfile.cmake b/vcpkg/ports/rhash/portfile.cmake new file mode 100644 index 0000000..f55228c --- /dev/null +++ b/vcpkg/ports/rhash/portfile.cmake @@ -0,0 +1,28 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO rhash/RHash + REF "v${VERSION}" + SHA512 49bd6aa2497efc4871ae31eaca51d2dc78ceb7126311557d5280b14fafe9355eaecad37f0f78f865e4e1dd1aeb506d3301989cd2f9fff7b0091c81978e8c2f2e + HEAD_REF master +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/librhash") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}/librhash" + OPTIONS + -DRHASH_VERSION=${VERSION} + OPTIONS_DEBUG + -DRHASH_SKIP_HEADERS=ON +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-rhash) +vcpkg_fixup_pkgconfig() + +if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rhash.h" "# define RHASH_API" "# define RHASH_API __declspec(dllimport)") +endif() + +file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/rhash/vcpkg.json b/vcpkg/ports/rhash/vcpkg.json new file mode 100644 index 0000000..1fdbe35 --- /dev/null +++ b/vcpkg/ports/rhash/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "rhash", + "version": "1.4.5", + "description": "C library for computing a wide variety of hash sums", + "homepage": "https://github.com/rhash/RHash", + "license": "0BSD", + "supports": "!uwp", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |