aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/apsi
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/apsi')
-rw-r--r--vcpkg/ports/apsi/fix-c2398.patch15
-rw-r--r--vcpkg/ports/apsi/fix-find-seal.patch13
-rw-r--r--vcpkg/ports/apsi/portfile.cmake46
-rw-r--r--vcpkg/ports/apsi/vcpkg.json60
4 files changed, 134 insertions, 0 deletions
diff --git a/vcpkg/ports/apsi/fix-c2398.patch b/vcpkg/ports/apsi/fix-c2398.patch
new file mode 100644
index 0000000..b044e14
--- /dev/null
+++ b/vcpkg/ports/apsi/fix-c2398.patch
@@ -0,0 +1,15 @@
+diff --git a/sender/apsi/util/cuckoo_filter.cpp b/sender/apsi/util/cuckoo_filter.cpp
+index be5aead..e242796 100644
+--- a/sender/apsi/util/cuckoo_filter.cpp
++++ b/sender/apsi/util/cuckoo_filter.cpp
+@@ -246,8 +246,8 @@ CuckooFilter CuckooFilter::Load(istream &in, size_t &bytes_read)
+
+ bytes_read = in_data.size();
+ return CuckooFilter{ move(cuckoo_filter_table),
+- cuckoo_filter_fbs->num_items(),
+- cuckoo_filter_fbs->overflow()->index(),
++ static_cast<size_t>(cuckoo_filter_fbs->num_items()),
++ static_cast<size_t>(cuckoo_filter_fbs->overflow()->index()),
+ cuckoo_filter_fbs->overflow()->tag(),
+ cuckoo_filter_fbs->overflow()->used() };
+ }
diff --git a/vcpkg/ports/apsi/fix-find-seal.patch b/vcpkg/ports/apsi/fix-find-seal.patch
new file mode 100644
index 0000000..21e0151
--- /dev/null
+++ b/vcpkg/ports/apsi/fix-find-seal.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 78d54a6..4d3f338 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -122,7 +122,7 @@ set(APSI_INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/APSI-${APSI_VERSION_MA
+ # find_package might throw a FATAL_ERROR before"xxx: not found", e.g. with vcpkg.cmake.
+
+ # Microsoft SEAL
+-find_package(SEAL 4.1 QUIET REQUIRED)
++find_package(SEAL QUIET REQUIRED)
+ if(NOT SEAL_FOUND)
+ message(FATAL_ERROR "Microsoft SEAL: not found")
+ else()
diff --git a/vcpkg/ports/apsi/portfile.cmake b/vcpkg/ports/apsi/portfile.cmake
new file mode 100644
index 0000000..e3b37ac
--- /dev/null
+++ b/vcpkg/ports/apsi/portfile.cmake
@@ -0,0 +1,46 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO microsoft/APSI
+ REF "v${VERSION}"
+ SHA512 ad49e169970921175728705c6f5fe8062e74900a601ea25e9f836840a221175bfbb3169717787b1ca7e2e1a0b26630690dcef9bc91c0123877b856ea927e9e68
+ HEAD_REF main
+ PATCHES
+ fix-find-seal.patch
+ fix-c2398.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ log4cplus APSI_USE_LOG4CPLUS
+ zeromq APSI_USE_ZMQ
+)
+
+set(CROSSCOMP_OPTIONS "")
+if (VCPKG_CROSSCOMPILING)
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(CROSSCOMP_OPTIONS -DAPSI_FOURQ_ARM64_EXITCODE=0 -DAPSI_FOURQ_ARM64_EXITCODE__TRYRUN_OUTPUT='')
+ endif()
+ if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CROSSCOMP_OPTIONS -DAPSI_FOURQ_AMD64_EXITCODE=0 -DHAVE_AVX_EXTENSIONS_EXITCODE=0 -DHAVE_AVX2_EXTENSIONS_EXITCODE=1)
+ endif()
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON
+ -DAPSI_BUILD_TESTS=OFF
+ -DAPSI_BUILD_CLI=OFF
+ ${FEATURE_OPTIONS}
+ ${CROSSCOMP_OPTIONS}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/APSI-0.11")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/apsi/vcpkg.json b/vcpkg/ports/apsi/vcpkg.json
new file mode 100644
index 0000000..4616fb5
--- /dev/null
+++ b/vcpkg/ports/apsi/vcpkg.json
@@ -0,0 +1,60 @@
+{
+ "name": "apsi",
+ "version-semver": "0.11.0",
+ "description": "APSI is a research library for asymmetric private set intersection.",
+ "homepage": "https://github.com/microsoft/APSI",
+ "license": "MIT",
+ "dependencies": [
+ "flatbuffers",
+ "jsoncpp",
+ "kuku",
+ {
+ "name": "seal",
+ "default-features": false,
+ "features": [
+ "ms-gsl",
+ "no-throw-tran",
+ "zstd"
+ ]
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "default-features": [
+ "log4cplus",
+ "zeromq"
+ ],
+ "features": {
+ "hexl": {
+ "description": "Use IntelĀ® HEXL to accelerate Microsoft SEAL.",
+ "dependencies": [
+ {
+ "name": "seal",
+ "features": [
+ "hexl"
+ ],
+ "platform": "x64"
+ }
+ ]
+ },
+ "log4cplus": {
+ "description": "Use log4cplus for logging.",
+ "dependencies": [
+ "log4cplus"
+ ]
+ },
+ "zeromq": {
+ "description": "Use ZeroMQ for networking.",
+ "dependencies": [
+ "cppzmq",
+ "zeromq"
+ ]
+ }
+ }
+}