- add missed libsrtp files

This commit is contained in:
2026-02-13 09:53:13 +03:00
parent 300f7cfc75
commit 8f8bfda9df
8 changed files with 242 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
message(
FATAL_ERROR
"In-source builds not allowed. Please make a build directory.")
endif()
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "No build type selected, default to Debug")
set(CMAKE_BUILD_TYPE "Debug")
endif()

View File

@@ -0,0 +1,38 @@
find_path(MBEDTLS_INCLUDE_DIRS mbedtls/ssl.h)
find_library(MBEDTLS_LIBRARY mbedtls)
find_library(MBEDX509_LIBRARY mbedx509)
find_library(MBEDCRYPTO_LIBRARY mbedcrypto)
set(MBEDTLS_LIBRARIES "${MBEDTLS_LIBRARY}" "${MBEDX509_LIBRARY}" "${MBEDCRYPTO_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MbedTLS DEFAULT_MSG
MBEDTLS_LIBRARY MBEDTLS_INCLUDE_DIRS MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
mark_as_advanced(MBEDTLS_INCLUDE_DIRS MBEDTLS_LIBRARY MBEDX509_LIBRARY MBEDCRYPTO_LIBRARY)
if(NOT TARGET MbedTLS)
message("in mbedtls ${MBEDTLS_LIBRARY}")
add_library(MbedTLS UNKNOWN IMPORTED)
set_target_properties(MbedTLS PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${MBEDTLS_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${MBEDTLS_LIBRARY}")
endif()
if(NOT TARGET MbedCrypto)
add_library(MbedCrypto UNKNOWN IMPORTED)
set_target_properties(MbedCrypto PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${MBEDTLS_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${MBEDCRYPTO_LIBRARY}")
endif()
if(NOT TARGET MbedX509)
add_library(MbedX509 UNKNOWN IMPORTED)
set_target_properties(MbedX509 PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${MBEDTLS_INCLUDE_DIRS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${MBEDX509_LIBRARY}")
endif()

View File

@@ -0,0 +1,15 @@
find_path(NSS_INCLUDE_DIR nss/nss.h)
find_path(NSPR_INCLUDE_DIR nspr/nspr.h)
set(NSS_INCLUDE_DIRS "${NSS_INCLUDE_DIR}/nss" "${NSPR_INCLUDE_DIR}/nspr")
find_library(NSS3_LIBRARY nss3)
find_library(NSPR4_LIBRARY nspr4)
set(NSS_LIBRARIES "${NSS3_LIBRARY}" "${NSPR4_LIBRARY}")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(NSS DEFAULT_MSG
NSS3_LIBRARY NSS_INCLUDE_DIR NSPR4_LIBRARY NSPR_INCLUDE_DIR)
mark_as_advanced(NSS_INCLUDE_DIR NSPR_INCLUDE_DIR NSS3_LIBRARY NSPR4_LIBRARY)

View File

@@ -0,0 +1,12 @@
find_path(PCAP_INCLUDE_DIR_TEMP pcap.h)
find_library(PCAP_LIBRARY_TEMP pcap)
if (PCAP_INCLUDE_DIR_TEMP AND PCAP_LIBRARY_TEMP)
set(PCAP_LIBRARY pcap)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PCAP DEFAULT_MSG
PCAP_LIBRARY)
mark_as_advanced(PCAP_LIBRARY)

View File

@@ -0,0 +1,22 @@
if (WOLFSSL_ROOT_DIR)
set(_WOLFSSL_ROOT_HINTS_AND_PATHS HINTS ${WOLFSSL_ROOT_DIR} PATH_SUFFIXES include lib NO_DEFAULT_PATH)
endif()
find_path(WOLFSSL_INCLUDE_DIR wolfssl/ssl.h ${_WOLFSSL_ROOT_HINTS_AND_PATHS})
find_library(WOLFSSL_LIBRARY wolfssl ${_WOLFSSL_ROOT_HINTS_AND_PATHS})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(wolfSSL DEFAULT_MSG
WOLFSSL_LIBRARY WOLFSSL_INCLUDE_DIR)
mark_as_advanced(WOLFSSL_INCLUDE_DIR WOLFSSL_LIBRARY)
if(NOT TARGET wolfSSL)
add_library(wolfSSL UNKNOWN IMPORTED)
set_target_properties(wolfSSL PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${WOLFSSL_INCLUDE_DIR}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${WOLFSSL_LIBRARY}")
endif()

View File

@@ -0,0 +1,19 @@
function(target_enable_lto)
set(oneValueArgs TARGET ENABLE)
cmake_parse_arguments(
LTO
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN})
include(CheckIPOSupported)
check_ipo_supported(RESULT result OUTPUT output)
if(result)
message(STATUS "IPO/LTO is supported: ${LTO_TARGET}")
set_property(TARGET ${LTO_TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION
${LTO_ENABLE})
else()
message(WARNING "IPO/LTO is not supported: ${LTO_TARGET}")
endif()
endfunction()

View File

@@ -0,0 +1,52 @@
function(add_sanitizer_flags)
if(NOT ENABLE_SANITIZE_ADDR AND NOT ENABLE_SANITIZE_UNDEF)
return()
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "GNU")
add_compile_options("-fno-omit-frame-pointer")
add_link_options("-fno-omit-frame-pointer")
if(ENABLE_SANITIZE_ADDR)
add_compile_options("-fsanitize=address")
add_link_options("-fsanitize=address")
endif()
if(ENABLE_SANITIZE_UNDEF)
add_compile_options("-fsanitize=undefined")
add_link_options("-fsanitize=undefined")
endif()
if(ENABLE_SANITIZE_LEAK)
add_compile_options("-fsanitize=leak")
add_link_options("-fsanitize=leak")
endif()
if(ENABLE_SANITIZE_THREAD)
if(ENABLE_SANITIZE_ADDR OR ENABLE_SANITIZE_LEAK)
message(WARNING "thread does not work with: address and leak")
endif()
add_compile_options("-fsanitize=thread")
add_link_options("-fsanitize=thread")
endif()
elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
if(ENABLE_SANITIZE_ADDR)
add_compile_options("/fsanitize=address")
endif()
if(ENABLE_SANITIZE_UNDEF)
message(STATUS "sanitize=undefined not avail. for MSVC")
endif()
if(ENABLE_SANITIZE_LEAK)
message(STATUS "sanitize=leak not avail. for MSVC")
endif()
if(ENABLE_SANITIZE_THREAD)
message(STATUS "sanitize=thread not avail. for MSVC")
endif()
else()
message(WARNING "This sanitizer not supported in this environment (${CMAKE_C_COMPILER_ID})")
return()
endif()
endfunction(add_sanitizer_flags)

View File

@@ -0,0 +1,74 @@
function(target_set_warnings)
set(oneValueArgs TARGET ENABLE AS_ERRORS)
cmake_parse_arguments(
TARGET_SET_WARNINGS
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN})
if(NOT ${TARGET_SET_WARNINGS_ENABLE})
message(STATUS "Warnings Disabled for: ${TARGET_SET_WARNINGS_TARGET}")
return()
endif()
message(STATUS "Warnings Active for: ${TARGET_SET_WARNINGS_TARGET}")
message(STATUS "Warnings as Errors: ${TARGET_SET_WARNINGS_AS_ERRORS}")
set(MSVC_WARNINGS
# Baseline
/W4 # Baseline reasonable warnings
/permissive- # standards conformance mode for MSVC compiler
# C and C++ Warnings
# /w14242 # conversion from 'type1' to 'type1', possible loss of data
# /w14254 # 'operator': conversion from 't1:field_bits' to 't2:field_bits'
# /w14287 # unsigned/negative constant mismatch
# /w14296 # expression is always 'boolean_value'
# /w14311 # pointer truncation from 'type1' to 'type2'
/w44062 # enumerator in a switch of enum 'enumeration' is not handled
# /w44242 # conversion from 'type1' to 'type2', possible loss of data
# /w14826 # Conversion from 'type1' to 'type_2' is sign-extended
# /w14905 # wide string literal cast to 'LPSTR'
# /w14906 # string literal cast to 'LPWSTR'
)
set(CLANG_WARNINGS
# Baseline
-Wall
-Wextra # reasonable and standard
-Wshadow # if a variable declaration shadows one from a parent context
-Wpedantic # warn if non-standard is used
# C and C++ Warnings
-Wunused # warn on anything being unused
# -Wformat=2 # warn on security issues around functions that format output
# -Wcast-align # warn for potential performance problem casts
# -Wconversion # warn on type conversions that may lose data
# -Wsign-conversion # warn on sign conversions
-Wnull-dereference # warn if a null dereference is detected
-Wdouble-promotion # warn if float is implicit promoted to double
-Wcast-qual
)
set(GCC_WARNINGS
${CLANG_WARNINGS}
-Wduplicated-cond # warn if if / else chain has duplicated conditions
-Wduplicated-branches # warn if if / else branches have duplicated code
-Wlogical-op # warn about logical operations being used where bitwise were probably wanted
)
if(${TARGET_SET_WARNINGS_AS_ERRORS})
set(CLANG_WARNINGS ${CLANG_WARNINGS} -Werror)
set(GCC_WARNINGS ${GCC_WARNINGS} -Werror)
set(MSVC_WARNINGS ${MSVC_WARNINGS} /WX)
endif()
if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
set(WARNINGS ${MSVC_WARNINGS})
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
set(WARNINGS ${CLANG_WARNINGS})
elseif(CMAKE_C_COMPILER_ID MATCHES "GNU")
set(WARNINGS ${GCC_WARNINGS})
endif()
target_compile_options(${TARGET_SET_WARNINGS_TARGET} PRIVATE ${WARNINGS})
endfunction(target_set_warnings)