# This file is part of the openHiTLS project.
#
# openHiTLS is licensed under the Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
#     http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.


set(_record_sources
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_alert.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_buf.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_conn.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_crypto.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_crypto_aead.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_crypto_cbc.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_read.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_write.c
    ${CMAKE_CURRENT_SOURCE_DIR}/src/record.c
)

if(HITLS_TLS_PROTO_DTLS12)
    list(APPEND _record_sources ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_unprocessed_msg.c)
    if(HITLS_BSL_UIO_UDP)
        list(APPEND _record_sources ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_retransmit.c)
        if(HITLS_TLS_FEATURE_ANTI_REPLAY)
            list(APPEND _record_sources ${CMAKE_CURRENT_SOURCE_DIR}/src/rec_anti_replay.c)
        endif()
    endif()
endif()

add_library(_hitls_tls_record OBJECT ${_record_sources})

target_link_libraries(_hitls_tls_record
    PUBLIC
        _hitls_tls_common_include)

target_include_directories(_hitls_tls_record
    PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/src
        ${PROJECT_SOURCE_DIR}/tls/cert/include
        ${PROJECT_SOURCE_DIR}/tls/crypt/include
        ${PROJECT_SOURCE_DIR}/tls/handshake/include
        ${PROJECT_SOURCE_DIR}/tls/handshake/common/include
)

hitls_register_objects(TLS _hitls_tls_record)