diff options
Diffstat (limited to 'vcpkg/ports/capnproto')
| -rw-r--r-- | vcpkg/ports/capnproto/portfile.cmake | 45 | ||||
| -rw-r--r-- | vcpkg/ports/capnproto/undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch | 28 | ||||
| -rw-r--r-- | vcpkg/ports/capnproto/vcpkg.json | 27 |
3 files changed, 100 insertions, 0 deletions
diff --git a/vcpkg/ports/capnproto/portfile.cmake b/vcpkg/ports/capnproto/portfile.cmake new file mode 100644 index 0000000..7d6f0d0 --- /dev/null +++ b/vcpkg/ports/capnproto/portfile.cmake @@ -0,0 +1,45 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO capnproto/capnproto + REF "v${VERSION}" + SHA512 342f08683e60b8346f7d119242781835889d7804d54fca00348f14abe9f76bcb4572678dd4d3471c638cabe94e5a77aaf7c19b6edf297cb25a319ac544c659e4 + HEAD_REF master + PATCHES + undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch +) + +if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + # In ARM64 it fails without /bigobj + set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} /bigobj") + set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} /bigobj") +endif() + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + "openssl" OPENSSL_FEATURE +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TESTING=OFF + "-DWITH_OPENSSL=${OPENSSL_FEATURE}" +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CapnProto) + +vcpkg_copy_tools(TOOL_NAMES capnp capnpc-c++ capnpc-capnp AUTO_CLEAN) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +# Handle copyright +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) + +vcpkg_fixup_pkgconfig() diff --git a/vcpkg/ports/capnproto/undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch b/vcpkg/ports/capnproto/undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch new file mode 100644 index 0000000..03f3d99 --- /dev/null +++ b/vcpkg/ports/capnproto/undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch @@ -0,0 +1,28 @@ +From 306220e57881064da99f89ad4192b3e19c7953a9 Mon Sep 17 00:00:00 2001 +From: Stig Hornang <shornang@gmail.com> +Date: Thu, 31 Aug 2023 21:20:09 +0200 +Subject: [PATCH] Undef KJ_USE_EPOLL for ANDROID_PLATFORM < 23 + +--- + c++/src/kj/async-unix.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/c++/src/kj/async-unix.h b/c++/src/kj/async-unix.h +index 665305ea..c5f195cf 100644 +--- a/c++/src/kj/async-unix.h ++++ b/c++/src/kj/async-unix.h +@@ -34,7 +34,10 @@ + KJ_BEGIN_HEADER + + #if !defined(KJ_USE_EPOLL) && !defined(KJ_USE_KQUEUE) +-#if __linux__ ++ ++// Android NDK less than API version 23 doesn't have sigtimedwait ++// sigtimedwait is used in async-unix.c++ if KJ_USE_EPOLL is defined ++#if __linux__ && !(__ANDROID__ && __ANDROID_API__ < 23) + // Default to epoll on Linux. + #define KJ_USE_EPOLL 1 + #elif __APPLE__ || __FreeBSD__ || __NetBSD__ || __DragonFly__ +-- +2.41.0.windows.3 + diff --git a/vcpkg/ports/capnproto/vcpkg.json b/vcpkg/ports/capnproto/vcpkg.json new file mode 100644 index 0000000..e253870 --- /dev/null +++ b/vcpkg/ports/capnproto/vcpkg.json @@ -0,0 +1,27 @@ +{ + "name": "capnproto", + "version": "1.2.0", + "description": "Data interchange format and capability-based RPC system", + "homepage": "https://capnproto.org/", + "license": "MIT", + "supports": "!windows | (!uwp & !arm32)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + }, + "zlib" + ], + "features": { + "openssl": { + "description": "Build libkj-tls by linking against OpenSSL.", + "dependencies": [ + "openssl" + ] + } + } +} |