mirror of
https://github.com/adulau/ssldump.git
synced 2024-11-23 01:47:05 +00:00
133 lines
3.3 KiB
CMake
133 lines
3.3 KiB
CMake
cmake_minimum_required(VERSION 3.13.4)
|
|
|
|
project(
|
|
ssldump
|
|
VERSION 1.8
|
|
DESCRIPTION 20230814
|
|
LANGUAGES C
|
|
)
|
|
|
|
######## User defined options
|
|
option(DEBUG_BUILD "Build with debug facilities" OFF)
|
|
option(DISABLE_OPTIMIZATION "Build without compiler optimizations" OFF)
|
|
################
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
|
|
if(DEBUG_BUILD)
|
|
add_definitions(-DDEBUG)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb3")
|
|
endif()
|
|
|
|
if(DISABLE_OPTIMIZATION)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
|
else()
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
|
|
endif()
|
|
|
|
include(CheckSymbolExists)
|
|
include(GNUInstallDirs)
|
|
|
|
configure_file(base/pcap-snoop.c.in base/pcap-snoop.c)
|
|
|
|
set(SOURCES
|
|
${CMAKE_BINARY_DIR}/base/pcap-snoop.c
|
|
base/network.c
|
|
base/proto_mod.c
|
|
base/tcppack.c
|
|
base/tcpconn.c
|
|
null/null_analyze.c
|
|
common/lib/r_data.c
|
|
common/lib/r_assoc.c
|
|
common/lib/r_errors.c
|
|
common/lib/debug.c
|
|
ssl/ssl_analyze.c
|
|
ssl/ssldecode.c
|
|
ssl/sslprint.c
|
|
ssl/ssl.enums.c
|
|
ssl/sslxprint.c
|
|
ssl/ciphersuites.c
|
|
ssl/ssl_rec.c
|
|
pcap/logpkt.c
|
|
pcap/pcap_logger.c
|
|
pcap/sys.c
|
|
)
|
|
|
|
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules/" ${CMAKE_MODULE_PATH})
|
|
|
|
find_package(OpenSSL)
|
|
if(NOT OPENSSL_FOUND)
|
|
message( FATAL_ERROR
|
|
"Unable to find OpenSSL development files on this system
|
|
On Debian and Ubuntu systems you can install the required library and header files with
|
|
apt install libssl-dev
|
|
On Fedora systems, with
|
|
dnf install openssl-devel" )
|
|
endif()
|
|
|
|
#dnf install openssl-devel libpcap-devel libnet-devel json-c-devel
|
|
|
|
find_package(PCAP)
|
|
if(NOT PCAP_FOUND)
|
|
message( FATAL_ERROR
|
|
"Unable to find libpcap development files on this system
|
|
On Debian and Ubuntu systems you can install the required library and header files with
|
|
apt install libpcap-dev
|
|
On Fedora systems, with
|
|
dnf install libpcap-devel" )
|
|
endif()
|
|
|
|
find_package(LIBNET)
|
|
if(NOT LIBNET_FOUND)
|
|
message( FATAL_ERROR
|
|
"Unable to find libnet development files on this system
|
|
On Debian and Ubuntu systems you can install the required library and header files with
|
|
apt install libnet1-dev
|
|
On Fedora systems, with
|
|
dnf install libnet-devel" )
|
|
endif()
|
|
|
|
find_package(JSONC)
|
|
if(NOT JSONC_FOUND)
|
|
message( FATAL_ERROR
|
|
"Unable to find libjson-c development files on this system
|
|
On Debian and Ubuntu systems you can install the required library and header files with
|
|
apt install libjson-c-dev
|
|
On Fedora systems, with
|
|
dnf install json-c-devel" )
|
|
endif()
|
|
|
|
add_executable(${PROJECT_NAME} ${SOURCES})
|
|
|
|
check_symbol_exists(strdup "string.h" HAVE_STRDUP)
|
|
if(HAVE_STRDUP)
|
|
add_definitions(-DHAVE_STRDUP)
|
|
endif()
|
|
|
|
add_definitions(-DLINUX)
|
|
add_definitions(-DOPENSSL)
|
|
add_definitions(-D_DEFAULT_SOURCE=1)
|
|
|
|
target_include_directories(ssldump
|
|
PRIVATE
|
|
${PROJECT_SOURCE_DIR}/common/include
|
|
${PROJECT_SOURCE_DIR}/common/lib
|
|
${PROJECT_SOURCE_DIR}/null
|
|
${PROJECT_SOURCE_DIR}/ssl
|
|
${PROJECT_SOURCE_DIR}/base
|
|
${PROJECT_SOURCE_DIR}/pcap
|
|
${OPENSSL_INCLUDE_DIR}
|
|
${PCAP_INCLUDE_DIR}
|
|
${LIBNET_INCLUDE_DIR}
|
|
${JSONC_INCLUDE_DIR}
|
|
)
|
|
|
|
target_link_libraries(ssldump
|
|
PRIVATE
|
|
${OPENSSL_LIBRARIES}
|
|
${PCAP_LIBRARY}
|
|
${LIBNET_LIBRARY}
|
|
${JSONC_LIBRARIES}
|
|
)
|
|
|
|
install(TARGETS ssldump DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
install(FILES ssldump.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|