112 lines
3.5 KiB
Text
112 lines
3.5 KiB
Text
cmake_minimum_required(VERSION 3.8)
|
|
project(srtp2)
|
|
set(bd ${CMAKE_CURRENT_LIST_DIR})
|
|
set(sd ${bd})
|
|
|
|
list(APPEND lib_sources
|
|
${sd}/srtp/srtp.c
|
|
${sd}/srtp/ekt.c
|
|
${sd}/crypto/kernel/alloc.c
|
|
${sd}/crypto/kernel/err.c
|
|
${sd}/crypto/kernel/crypto_kernel.c
|
|
${sd}/crypto/kernel/key.c
|
|
${sd}/crypto/math/datatypes.c
|
|
${sd}/crypto/math/stat.c
|
|
${sd}/crypto/replay/rdbx.c
|
|
${sd}/crypto/replay/rdb.c
|
|
${sd}/crypto/replay/ut_sim.c
|
|
${sd}/crypto/cipher/cipher.c
|
|
${sd}/crypto/cipher/null_cipher.c
|
|
${sd}/crypto/cipher/aes.c
|
|
${sd}/crypto/hash/auth.c
|
|
${sd}/crypto/hash/null_auth.c
|
|
${sd}/crypto/cipher/aes_icm.c
|
|
${sd}/crypto/hash/sha1.c
|
|
${sd}/crypto/hash/hmac.c
|
|
)
|
|
|
|
# -- start of checks
|
|
|
|
include(CheckIncludeFiles)
|
|
include(CheckFunctionExists)
|
|
include(CheckLibraryExists)
|
|
include(CheckTypeSize)
|
|
include(TestBigEndian)
|
|
|
|
set(AC_APPLE_UNIVERSAL_BUILD 0)
|
|
set(CPU_CISC 1)
|
|
set(CPU_RISC 0)
|
|
set(ENABLE_DEBUG_LOGGING 0)
|
|
set(ERR_REPORTING_FILE "libsrtp_error.log")
|
|
set(ERR_REPORTING_STDOUT 0)
|
|
set(VERSION "2.3")
|
|
|
|
check_include_files(arpa/inet.h HAVE_ARPA_INET_H)
|
|
check_include_files(byteswap.h HAVE_BYTESWAP_H)
|
|
check_function_exists(inet_aton HAVE_INET_ATON)
|
|
check_type_size(int16_t HAVE_INT16_T)
|
|
check_type_size(int32_t HAVE_INT32_T)
|
|
check_type_size(int8_t HAVE_INT8_T)
|
|
check_include_files(inttypes.h HAVE_INTTYPES_H)
|
|
check_library_exists(dl dlopen "" HAVE_LIBDL)
|
|
check_library_exists(socket socket "" HAVE_LIBSOCKET)
|
|
check_library_exists(z zlibVersion "" HAVE_LIBZ)
|
|
check_include_files(machine/types.h HAVE_MACHINE_TYPES_H)
|
|
check_include_files(memory.h HAVE_MEMORY_H)
|
|
check_include_files(netinet/in.h HAVE_NETINET_IN_H)
|
|
# @todo check winpcap
|
|
check_function_exists(sigaction HAVE_SIGACTION)
|
|
check_function_exists(socket HAVE_SOCKET)
|
|
check_include_files(stdint.h HAVE_STDINT_H)
|
|
check_include_files(stdlib.h HAVE_STDLIB_H)
|
|
check_include_files(strings.h HAVE_STRINGS_H)
|
|
check_include_files(string.h HAVE_STRING_H)
|
|
check_include_files(sys/int_types.h HAVE_SYS_INT_TYPES_H)
|
|
check_include_files(sys/socket.h HAVE_SYS_SOCKET_H)
|
|
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
|
|
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
|
|
check_include_files(sys/uio.h HAVE_SYS_UIO_H)
|
|
check_type_size(uint16_t HAVE_UINT16_T)
|
|
check_type_size(uint32_t HAVE_UINT32_T)
|
|
check_type_size(uint64_t HAVE_UINT64_T)
|
|
check_type_size(uint8_t HAVE_UINT8_T)
|
|
check_include_files(unistd.h HAVE_UNISTD_H)
|
|
check_function_exists(usleep HAVE_USLEEP)
|
|
check_include_files(windows.h HAVE_WINDOWS_H)
|
|
check_include_files(winsock2.h HAVE_WINSOCK2_H)
|
|
# @todo HAVE_X86
|
|
# @todo OPENSSL
|
|
# @todo OPENSSL_CLEANSE_BROKEN
|
|
# @todo OPENSSL_KDF
|
|
# @todo PACKAGE_BUGREPORT
|
|
set(PACKAGE_BUGREPORT "testers@ddvdtech.com")
|
|
set(PACKAGE_NAME "libsrtp")
|
|
set(PACKAGE_VERSION "${VERSION}")
|
|
set(PACKAGE_STRING "${PACKAGE_NAME}_${VERSION}")
|
|
set(PACKAGE_TARNAME "${PACKAGE_STRING}.tar")
|
|
set(PACKAGE_URL "http://www.mistserver.org")
|
|
check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG)
|
|
check_type_size("unsigned long long" SIZEOF_UNSIGNED_LONG_LONG)
|
|
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
|
|
configure_file(${bd}/config.cmake ${bd}/crypto/include/config.h)
|
|
|
|
#--------------------------------------------------------
|
|
|
|
include_directories(
|
|
${bd}/include/
|
|
${bd}/crypto/
|
|
${bd}/crypto/include
|
|
)
|
|
|
|
add_library(srtp2 STATIC ${lib_sources})
|
|
target_compile_definitions(srtp2 PUBLIC HAVE_CONFIG_H)
|
|
|
|
list(APPEND include_files
|
|
${bd}/include/srtp.h
|
|
${bd}/crypto/include/cipher.h
|
|
${bd}/crypto/include/auth.h
|
|
${bd}/crypto/include/crypto_types.h
|
|
)
|
|
|
|
install(FILES ${include_files} DESTINATION include)
|
|
install(TARGETS srtp2 ARCHIVE DESTINATION lib)
|