aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/rhash
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/rhash')
-rw-r--r--vcpkg/ports/rhash/CMakeLists.txt56
-rw-r--r--vcpkg/ports/rhash/portfile.cmake28
-rw-r--r--vcpkg/ports/rhash/vcpkg.json18
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
+ }
+ ]
+}