Packages
hackney
3.0.2
4.7.2
4.7.1
4.7.0
4.6.1
4.6.0
4.5.2
4.5.1
4.5.0
4.4.5
4.4.3
4.4.2
4.4.1
4.4.0
4.3.0
4.2.3
4.2.2
4.2.1
4.2.0
4.1.0
4.0.3
4.0.2
4.0.1
4.0.0
3.2.1
3.2.0
3.1.2
3.1.1
3.1.0
3.0.3
3.0.2
3.0.1
3.0.0
retired
2.0.1
2.0.0
2.0.0-beta.1
1.25.0
1.24.1
1.24.0
1.23.0
1.22.0
1.21.0
1.20.1
1.20.0
1.19.1
1.19.0
1.18.2
1.18.1
1.18.0
1.17.4
1.17.3
1.17.2
1.17.1
1.17.0
1.16.0
1.15.2
1.15.1
1.15.0
1.14.3
1.14.2
1.14.0
1.13.0
1.12.1
1.12.0
1.11.0
1.10.1
1.10.0
1.9.0
1.8.6
1.8.5
1.8.4
1.8.3
1.8.2
1.8.0
1.7.1
1.7.0
1.6.6
retired
1.6.5
1.6.4
retired
1.6.3
1.6.2
1.6.1
1.6.0
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.10
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.0
1.0.6
1.0.5
1.0.2
1.0.1
0.15.2
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
Simple HTTP client with HTTP/1.1, HTTP/2, and HTTP/3 support
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
do_cmake.sh
#!/bin/sh
#
# Configure CMake build for hackney QUIC NIF
# Supports: Linux, macOS (amd64/arm64), FreeBSD, NetBSD, OpenBSD, Solaris
#
# Environment variables:
# HACKNEY_QUIC_OPTS - Additional CMake options
#
set -e
# Check if QUIC dependencies are available (lsquic + BoringSSL in c_src/)
if [ ! -d "c_src/lsquic" ]; then
echo "ERROR: QUIC dependencies not found (c_src/lsquic missing)"
echo "The lsquic library should be vendored in c_src/"
exit 1
fi
if [ ! -d "c_src/boringssl" ]; then
echo "ERROR: QUIC dependencies not found (c_src/boringssl missing)"
echo "The boringssl library should be vendored in c_src/"
exit 1
fi
mkdir -p _build/cmake
cd _build/cmake
# Find cmake
if type cmake3 > /dev/null 2>&1 ; then
CMAKE=cmake3
else
CMAKE=cmake
fi
# Detect architecture
ARCH=$(uname -m)
case "$ARCH" in
x86_64|amd64)
CMAKE_ARCH_FLAGS=""
;;
aarch64|arm64)
CMAKE_ARCH_FLAGS=""
;;
*)
echo "Warning: Unknown architecture $ARCH, building without arch-specific flags"
CMAKE_ARCH_FLAGS=""
;;
esac
# Detect OS for platform-specific flags
OS=$(uname -s)
case "$OS" in
Darwin)
# macOS - detect if we need universal binary or native
if [ -n "$MACOSX_DEPLOYMENT_TARGET" ]; then
CMAKE_PLATFORM_FLAGS="-DCMAKE_OSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET"
else
CMAKE_PLATFORM_FLAGS=""
fi
;;
FreeBSD)
# FreeBSD - use system OpenSSL or ports
if [ -d "/usr/local/include/openssl" ]; then
CMAKE_PLATFORM_FLAGS="-DOPENSSL_ROOT_DIR=/usr/local"
else
CMAKE_PLATFORM_FLAGS=""
fi
;;
NetBSD|OpenBSD)
# NetBSD/OpenBSD - use pkgsrc or ports OpenSSL
if [ -d "/usr/pkg/include/openssl" ]; then
CMAKE_PLATFORM_FLAGS="-DOPENSSL_ROOT_DIR=/usr/pkg"
elif [ -d "/usr/local/include/openssl" ]; then
CMAKE_PLATFORM_FLAGS="-DOPENSSL_ROOT_DIR=/usr/local"
else
CMAKE_PLATFORM_FLAGS=""
fi
;;
Linux)
CMAKE_PLATFORM_FLAGS=""
;;
SunOS)
# Solaris
CMAKE_PLATFORM_FLAGS=""
;;
*)
CMAKE_PLATFORM_FLAGS=""
;;
esac
echo "Configuring hackney QUIC NIF for $OS ($ARCH)..."
${CMAKE} \
${CMAKE_ARCH_FLAGS} \
${CMAKE_PLATFORM_FLAGS} \
"$@" \
../../c_src || exit 1
echo "CMake configuration done."