CMakeLists.txt revision fbc6cc04
1# Copyright (c) 2017 - 2020 LiteSpeed Technologies Inc. See LICENSE. 2SET(lsquic_STAT_SRCS 3 ls-qpack/lsqpack.c 4 lsquic_adaptive_cc.c 5 lsquic_alarmset.c 6 lsquic_arr.c 7 lsquic_attq.c 8 lsquic_bbr.c 9 lsquic_bw_sampler.c 10 lsquic_cfcw.c 11 lsquic_chsk_stream.c 12 lsquic_conn.c 13 lsquic_crand.c 14 lsquic_crt_compress.c 15 lsquic_crypto.c 16 lsquic_cubic.c 17 lsquic_di_error.c 18 lsquic_di_hash.c 19 lsquic_di_nocopy.c 20 lsquic_enc_sess_common.c 21 lsquic_enc_sess_ietf.c 22 lsquic_eng_hist.c 23 lsquic_engine.c 24 lsquic_ev_log.c 25 lsquic_frab_list.c 26 lsquic_frame_common.c 27 lsquic_frame_reader.c 28 lsquic_frame_writer.c 29 lsquic_full_conn.c 30 lsquic_full_conn_ietf.c 31 lsquic_global.c 32 lsquic_handshake.c 33 lsquic_hash.c 34 lsquic_hcsi_reader.c 35 lsquic_hcso_writer.c 36 lsquic_headers_stream.c 37 lsquic_hkdf.c 38 lsquic_hpi.c 39 lsquic_hspack_valid.c 40 lsquic_http.c 41 lsquic_http1x_if.c 42 lsquic_logger.c 43 lsquic_malo.c 44 lsquic_min_heap.c 45 lsquic_mini_conn.c 46 lsquic_mini_conn_ietf.c 47 lsquic_minmax.c 48 lsquic_mm.c 49 lsquic_pacer.c 50 lsquic_packet_common.c 51 lsquic_packet_gquic.c 52 lsquic_packet_in.c 53 lsquic_packet_out.c 54 lsquic_packet_resize.c 55 lsquic_parse_Q046.c 56 lsquic_parse_Q050.c 57 lsquic_parse_common.c 58 lsquic_parse_gquic_be.c 59 lsquic_parse_gquic_common.c 60 lsquic_parse_ietf_v1.c 61 lsquic_parse_iquic_common.c 62 lsquic_pr_queue.c 63 lsquic_purga.c 64 lsquic_qdec_hdl.c 65 lsquic_qenc_hdl.c 66 lsquic_qlog.c 67 lsquic_rechist.c 68 lsquic_rtt.c 69 lsquic_send_ctl.c 70 lsquic_senhist.c 71 lsquic_set.c 72 lsquic_sfcw.c 73 lsquic_shsk_stream.c 74 lsquic_spi.c 75 lsquic_stock_shi.c 76 lsquic_str.c 77 lsquic_stream.c 78 lsquic_tokgen.c 79 lsquic_trans_params.c 80 lsquic_trechist.c 81 lsquic_util.c 82 lsquic_varint.c 83 lsquic_version.c 84) 85 86IF(NOT MSVC) 87set_source_files_properties(ls-qpack/lsqpack.c PROPERTIES COMPILE_FLAGS -Wno-uninitialized) 88ENDIF() 89 90include_directories(ls-qpack) 91 92IF(PROJECT_NAME STREQUAL "openlitespeed") 93 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/spdy) 94ELSE() 95 INCLUDE_DIRECTORIES(../lshpack) 96 SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS} 97 lsquic_xxhash.c 98 ../lshpack/lshpack.c 99 ) 100ENDIF() 101 102ADD_CUSTOM_COMMAND( 103 OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/lsquic_versions_to_string.c 104 COMMAND ${PERL} 105 ARGS ${CMAKE_CURRENT_SOURCE_DIR}/gen-verstrs.pl ${CMAKE_CURRENT_SOURCE_DIR}/../../include/lsquic.h ${CMAKE_CURRENT_SOURCE_DIR}/lsquic_versions_to_string.c 106 DEPENDS ./gen-verstrs.pl ${CMAKE_CURRENT_SOURCE_DIR}/../../include/lsquic.h 107) 108SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS} lsquic_versions_to_string.c) 109SET(lsquic_STAT_SRCS ${lsquic_STAT_SRCS} ls-sfparser.c) 110 111SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXXH_HEADER_NAME=\\\"lsquic_xxhash.h\\\"") 112SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQPACK_ENC_LOGGER_HEADER=\\\"lsquic_qpack_enc_logger.h\\\"") 113SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLSQPACK_DEC_LOGGER_HEADER=\\\"lsquic_qpack_dec_logger.h\\\"") 114 115IF(LSQUIC_SHARED_LIB) 116 add_library(lsquic SHARED ${lsquic_STAT_SRCS} ) 117 TARGET_LINK_LIBRARIES(lsquic PRIVATE ${BORINGSSL_LIB_ssl} ${BORINGSSL_LIB_crypto} ${ZLIB_LIB}) 118ELSE() 119 add_library(lsquic STATIC ${lsquic_STAT_SRCS}) 120ENDIF() 121 122install(TARGETS lsquic 123 EXPORT lsquic-targets 124 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} 125 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} 126) 127 128