Skip to content

Commit 5f8189b

Browse files
rpavlikvicroms
andauthored
[liblsquic] Add new port (#24310)
* [liblsquic] Add new port. * version * use vcpkg_install_copyright() Co-authored-by: Victor Romero <[email protected]>
1 parent c69f2b9 commit 5f8189b

File tree

5 files changed

+136
-0
lines changed

5 files changed

+136
-0
lines changed

ports/liblsquic/disable-asan.patch

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 65c4776..5d4086a 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -60,12 +60,12 @@ ENDIF()
6+
7+
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
8+
SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -O0 -g3")
9+
- IF(CMAKE_C_COMPILER MATCHES "clang" AND
10+
- NOT "$ENV{TRAVIS}" MATCHES "^true$" AND
11+
- NOT "$ENV{EXTRA_CFLAGS}" MATCHES "-fsanitize")
12+
- SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -fsanitize=address")
13+
- SET(LIBS ${LIBS} -fsanitize=address)
14+
- ENDIF()
15+
+ # IF(CMAKE_C_COMPILER MATCHES "clang" AND
16+
+ # NOT "$ENV{TRAVIS}" MATCHES "^true$" AND
17+
+ # NOT "$ENV{EXTRA_CFLAGS}" MATCHES "-fsanitize")
18+
+ # SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -fsanitize=address")
19+
+ # SET(LIBS ${LIBS} -fsanitize=address)
20+
+ # ENDIF()
21+
# Uncomment to enable cleartext protocol mode (no crypto):
22+
#SET (MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -DLSQUIC_ENABLE_HANDSHAKE_DISABLE=1")
23+
ELSE()

ports/liblsquic/portfile.cmake

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
if(WIN32)
2+
# The lib uses CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, at least until
3+
# https://github.com/litespeedtech/lsquic/pull/371 or similar is merged
4+
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
5+
endif()
6+
7+
vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
8+
REPO litespeedtech/lsquic
9+
REF v3.1.1
10+
SHA512 b4675be355703fea12f4b7d24812b93e739b2dbef04e3d8108b6fbe45dd16c129c9e04e58cdcfdf2a4448ee2edea68565dbd2445a76515bbdc8d9980f4210bee
11+
HEAD_REF master
12+
PATCHES disable-asan.patch)
13+
14+
# Submodules
15+
vcpkg_from_github(OUT_SOURCE_PATH LSQPACK_SOURCE_PATH
16+
REPO litespeedtech/ls-qpack
17+
REF v2.3.0
18+
HEAD_REF master
19+
SHA512 7f5a9dd15bcd32c1bfafbecc5cea4da30f50a852c02d2bd140a2baaafd80ccb822c1701b0d20699af6367e9c712f4fe019741507c44156e9897d25162de0b8b4
20+
)
21+
if(NOT EXISTS "${SOURCE_PATH}/src/ls-hpack/CMakeLists.txt")
22+
file(REMOVE_RECURSE "${SOURCE_PATH}/src/liblsquic/ls-qpack")
23+
file(RENAME "${LSQPACK_SOURCE_PATH}" "${SOURCE_PATH}/src/liblsquic/ls-qpack")
24+
endif()
25+
26+
vcpkg_from_github(OUT_SOURCE_PATH LSHPACK_SOURCE_PATH
27+
REPO litespeedtech/ls-hpack
28+
REF v2.3.0
29+
HEAD_REF master
30+
SHA512 45866b18042125cbbd008eed2935a938a42e1682030aa52ff4a324ddbad7bf9bd483161352cc8988bae668e132ee8b4b043ddc09d9e0316a66aaefd927ae2d76
31+
)
32+
if(NOT EXISTS "${SOURCE_PATH}/src/lshpack/CMakeLists.txt")
33+
file(REMOVE_RECURSE "${SOURCE_PATH}/src/lshpack")
34+
file(RENAME "${LSHPACK_SOURCE_PATH}" "${SOURCE_PATH}/src/lshpack")
35+
endif()
36+
37+
# Configuration
38+
vcpkg_find_acquire_program(PERL)
39+
40+
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LSQUIC_SHARED_LIB)
41+
42+
vcpkg_cmake_configure(
43+
SOURCE_PATH "${SOURCE_PATH}"
44+
OPTIONS
45+
"-DPERL=${PERL}"
46+
"-DPERL_EXECUTABLE=${PERL}"
47+
"-DLSQUIC_SHARED_LIB=${LSQUIC_SHARED_LIB}"
48+
"-DBORINGSSL_INCLUDE=${CURRENT_INSTALLED_DIR}/include"
49+
-DLSQUIC_BIN=OFF
50+
-DLSQUIC_TESTS=OFF
51+
OPTIONS_RELEASE
52+
"-DBORINGSSL_LIB=${CURRENT_INSTALLED_DIR}/lib"
53+
OPTIONS_DEBUG
54+
"-DBORINGSSL_LIB=${CURRENT_INSTALLED_DIR}/debug/lib"
55+
-DLSQUIC_DEVEL=ON
56+
)
57+
58+
vcpkg_cmake_install()
59+
if(VCPKG_TARGET_IS_WINDOWS)
60+
# Upstream removed installation of this header after merging changes
61+
file(INSTALL "${SOURCE_PATH}/wincompat/vc_compat.h" DESTINATION "${CURRENT_INSTALLED_DIR}/include/lsquic")
62+
endif()
63+
64+
vcpkg_cmake_config_fixup(PACKAGE_NAME lsquic)
65+
66+
# Concatenate license files and install
67+
vcpkg_install_copyright(FILE_LIST
68+
"${SOURCE_PATH}/LICENSE"
69+
"${SOURCE_PATH}/LICENSE.chrome"
70+
)
71+
72+
file(INSTALL "${CURRENT_BUILDTREES_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
73+
74+
# Remove duplicated include directory
75+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
76+

ports/liblsquic/vcpkg.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "liblsquic",
3+
"version": "3.1.1",
4+
"description": "An implementation of the QUIC and HTTP/3 protocols.",
5+
"homepage": "https://github.com/litespeedtech/lsquic",
6+
"license": "MIT AND BSD-3-Clause",
7+
"supports": "!x86",
8+
"dependencies": [
9+
"boringssl",
10+
{
11+
"name": "getopt",
12+
"platform": "windows"
13+
},
14+
{
15+
"name": "vcpkg-cmake",
16+
"host": true
17+
},
18+
{
19+
"name": "vcpkg-cmake-config",
20+
"host": true
21+
},
22+
"zlib"
23+
]
24+
}

versions/baseline.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3780,6 +3780,10 @@
37803780
"baseline": "1.16.0",
37813781
"port-version": 0
37823782
},
3783+
"liblsquic": {
3784+
"baseline": "3.1.1",
3785+
"port-version": 0
3786+
},
37833787
"liblzma": {
37843788
"baseline": "5.2.5",
37853789
"port-version": 6

versions/l-/liblsquic.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"versions": [
3+
{
4+
"git-tree": "f6f4593aba81acc749f3223d0fd3987d5920b164",
5+
"version": "3.1.1",
6+
"port-version": 0
7+
}
8+
]
9+
}

0 commit comments

Comments
 (0)