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
c_src/lsquic/src/liblsquic/CMakeLists.txt
# Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE.
SET(lsquic_STAT_SRCS
ls-qpack/lsqpack.c
lsquic_adaptive_cc.c
lsquic_alarmset.c
lsquic_arr.c
lsquic_attq.c
lsquic_bbr.c
lsquic_bw_sampler.c
lsquic_cfcw.c
lsquic_chsk_stream.c
lsquic_conn.c
lsquic_crand.c
lsquic_crt_compress.c
lsquic_crypto.c
lsquic_cubic.c
lsquic_di_error.c
lsquic_di_hash.c
lsquic_di_nocopy.c
lsquic_enc_sess_common.c
lsquic_enc_sess_ietf.c
lsquic_eng_hist.c
lsquic_engine.c
lsquic_ev_log.c
lsquic_frab_list.c
lsquic_frame_common.c
lsquic_frame_reader.c
lsquic_frame_writer.c
lsquic_full_conn.c
lsquic_full_conn_ietf.c
lsquic_global.c
lsquic_handshake.c
lsquic_hash.c
lsquic_hcsi_reader.c
lsquic_hcso_writer.c
lsquic_headers_stream.c
lsquic_hkdf.c
lsquic_hpi.c
lsquic_hspack_valid.c
lsquic_http.c
lsquic_http1x_if.c
lsquic_logger.c
lsquic_malo.c
lsquic_min_heap.c
lsquic_mini_conn.c
lsquic_mini_conn_ietf.c
lsquic_minmax.c
lsquic_mm.c
lsquic_pacer.c
lsquic_packet_common.c
lsquic_packet_gquic.c
lsquic_packet_in.c
lsquic_packet_out.c
lsquic_packet_resize.c
lsquic_parse_Q046.c
lsquic_parse_Q050.c
lsquic_parse_common.c
lsquic_parse_gquic_be.c
lsquic_parse_gquic_common.c
lsquic_parse_ietf_v1.c
lsquic_parse_iquic_common.c
lsquic_pr_queue.c
lsquic_purga.c
lsquic_qdec_hdl.c
lsquic_qenc_hdl.c
lsquic_qlog.c
lsquic_qpack_exp.c
lsquic_rechist.c
lsquic_rtt.c
lsquic_send_ctl.c
lsquic_senhist.c
lsquic_set.c
lsquic_sfcw.c
lsquic_shsk_stream.c
lsquic_spi.c
lsquic_stock_shi.c
lsquic_str.c
lsquic_stream.c
lsquic_tokgen.c
lsquic_trans_params.c
lsquic_trechist.c
lsquic_util.c
lsquic_varint.c
lsquic_version.c
)
IF(NOT MSVC)
SET(QPACK_FLAGS "-Wno-uninitialized")
INCLUDE(CheckCCompilerFlag)
CHECK_C_COMPILER_FLAG(-Wno-implicit-fallthrough HAS_NO_IMPLICIT_FALLTHROUGH)
IF (HAS_NO_IMPLICIT_FALLTHROUGH)
SET(QPACK_FLAGS "${QPACK_FLAGS} -Wno-implicit-fallthrough")
ENDIF()
set_source_files_properties(ls-qpack/lsqpack.c PROPERTIES COMPILE_FLAGS ${QPACK_FLAGS})
ENDIF()
include_directories(ls-qpack)
IF(PROJECT_NAME STREQUAL "openlitespeed")
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/spdy)
ELSE()
INCLUDE_DIRECTORIES(../lshpack)
SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS}
lsquic_xxhash.c
../lshpack/lshpack.c
)
ENDIF()
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lsquic_versions_to_string.c
COMMAND ${PERL_EXECUTABLE}
ARGS ${CMAKE_CURRENT_SOURCE_DIR}/gen-verstrs.pl ${CMAKE_CURRENT_SOURCE_DIR}/../../include/lsquic.h ${CMAKE_CURRENT_BINARY_DIR}/lsquic_versions_to_string.c
DEPENDS ./gen-verstrs.pl ${CMAKE_CURRENT_SOURCE_DIR}/../../include/lsquic.h
)
SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/lsquic_versions_to_string.c)
SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS} ls-sfparser.c)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXXH_HEADER_NAME=\\\"lsquic_xxhash.h\\\"")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQPACK_ENC_LOGGER_HEADER=\\\"lsquic_qpack_enc_logger.h\\\"")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQPACK_DEC_LOGGER_HEADER=\\\"lsquic_qpack_dec_logger.h\\\"")
if(NEED_LIBRT_FOR_clock_getres)
target_link_libraries(lsquic PRIVATE ${RT_LIBRARY})
endif()
IF(LSQUIC_SHARED_LIB)
add_library(lsquic SHARED ${lsquic_STAT_SRCS})
TARGET_LINK_LIBRARIES(lsquic PRIVATE ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB})
IF(MSVC)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQUIC_EXPORTS")
TARGET_LINK_LIBRARIES(lsquic PRIVATE ws2_32.lib)
ENDIF()
ELSE()
add_library(lsquic STATIC ${lsquic_STAT_SRCS})
ENDIF()
target_include_directories(
lsquic PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/lsquic>)
install(TARGETS lsquic
EXPORT lsquic-targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
include(CMakePackageConfigHelpers)
configure_package_config_file(
lsquic-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/lsquic-config.cmake
INSTALL_DESTINATION share/lsquic
NO_CHECK_REQUIRED_COMPONENTS_MACRO
PATH_VARS CMAKE_INSTALL_INCLUDEDIR)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/lsquic-config.cmake
DESTINATION share/lsquic)
install(
EXPORT lsquic-targets
DESTINATION share/lsquic
NAMESPACE lsquic::
FILE lsquic-targets.cmake)