src.dualinventive.com/jjacobs/dinetrpcll-sniffer/libtins/src/CMakeLists.txt

237 lines
7.1 KiB
CMake

SET(LIBTINS_INCLUDE_DIR ../include/)
IF(HAVE_PCAP_IMMEDIATE_MODE)
ADD_DEFINITIONS("-DHAVE_PCAP_IMMEDIATE_MODE=1")
ENDIF()
IF(HAVE_PCAP_TIMESTAMP_PRECISION)
ADD_DEFINITIONS("-DHAVE_PCAP_TIMESTAMP_PRECISION=1")
ENDIF()
INCLUDE_DIRECTORIES(BEFORE
${OPENSSL_INCLUDE_DIR}
${PCAP_INCLUDE_DIR}
${LIBTINS_INCLUDE_DIR}
)
set(SOURCES
address_range.cpp
arp.cpp
bootp.cpp
crypto.cpp
detail/address_helpers.cpp
detail/icmp_extension_helpers.cpp
detail/pdu_helpers.cpp
detail/sequence_number_helpers.cpp
dhcp.cpp
dhcpv6.cpp
dns.cpp
dot3.cpp
dot1q.cpp
eapol.cpp
ethernetII.cpp
handshake_capturer.cpp
hw_address.cpp
icmp_extension.cpp
icmp.cpp
icmpv6.cpp
ip_reassembler.cpp
ip.cpp
ip_address.cpp
ipv6.cpp
ipv6_address.cpp
ipsec.cpp
llc.cpp
loopback.cpp
mpls.cpp
memory_helpers.cpp
network_interface.cpp
packet_sender.cpp
pdu.cpp
pdu_iterator.cpp
pdu_option.cpp
pppoe.cpp
radiotap.cpp
rawpdu.cpp
rsn_information.cpp
sll.cpp
snap.cpp
stp.cpp
tcp.cpp
tcp_ip/ack_tracker.cpp
tcp_ip/flow.cpp
tcp_ip/data_tracker.cpp
tcp_ip/stream.cpp
tcp_ip/stream_follower.cpp
tcp_ip/stream_identifier.cpp
timestamp.cpp
udp.cpp
utils/checksum_utils.cpp
utils/frequency_utils.cpp
utils/radiotap_parser.cpp
utils/radiotap_writer.cpp
utils/routing_utils.cpp
utils/resolve_utils.cpp
utils/pdu_utils.cpp
)
set(HEADERS
${LIBTINS_INCLUDE_DIR}/tins/address_range.h
${LIBTINS_INCLUDE_DIR}/tins/arp.h
${LIBTINS_INCLUDE_DIR}/tins/bootp.h
${LIBTINS_INCLUDE_DIR}/tins/handshake_capturer.h
${LIBTINS_INCLUDE_DIR}/tins/stp.h
${LIBTINS_INCLUDE_DIR}/tins/pppoe.h
${LIBTINS_INCLUDE_DIR}/tins/config.h
${LIBTINS_INCLUDE_DIR}/tins/constants.h
${LIBTINS_INCLUDE_DIR}/tins/crypto.h
${LIBTINS_INCLUDE_DIR}/tins/cxxstd.h
${LIBTINS_INCLUDE_DIR}/tins/data_link_type.h
${LIBTINS_INCLUDE_DIR}/tins/detail/address_helpers.h
${LIBTINS_INCLUDE_DIR}/tins/detail/icmp_extension_helpers.h
${LIBTINS_INCLUDE_DIR}/tins/detail/pdu_helpers.h
${LIBTINS_INCLUDE_DIR}/tins/detail/sequence_number_helpers.h
${LIBTINS_INCLUDE_DIR}/tins/detail/smart_ptr.h
${LIBTINS_INCLUDE_DIR}/tins/detail/type_traits.h
${LIBTINS_INCLUDE_DIR}/tins/dhcp.h
${LIBTINS_INCLUDE_DIR}/tins/dhcpv6.h
${LIBTINS_INCLUDE_DIR}/tins/dns.h
${LIBTINS_INCLUDE_DIR}/tins/dot3.h
${LIBTINS_INCLUDE_DIR}/tins/dot1q.h
${LIBTINS_INCLUDE_DIR}/tins/eapol.h
${LIBTINS_INCLUDE_DIR}/tins/endianness.h
${LIBTINS_INCLUDE_DIR}/tins/ethernetII.h
${LIBTINS_INCLUDE_DIR}/tins/exceptions.h
${LIBTINS_INCLUDE_DIR}/tins/hw_address.h
${LIBTINS_INCLUDE_DIR}/tins/icmp_extension.h
${LIBTINS_INCLUDE_DIR}/tins/icmp.h
${LIBTINS_INCLUDE_DIR}/tins/icmpv6.h
${LIBTINS_INCLUDE_DIR}/tins/ieee802_3.h
${LIBTINS_INCLUDE_DIR}/tins/internals.h
${LIBTINS_INCLUDE_DIR}/tins/ip_reassembler.h
${LIBTINS_INCLUDE_DIR}/tins/ip.h
${LIBTINS_INCLUDE_DIR}/tins/ip_address.h
${LIBTINS_INCLUDE_DIR}/tins/ipv6.h
${LIBTINS_INCLUDE_DIR}/tins/ipv6_address.h
${LIBTINS_INCLUDE_DIR}/tins/ipsec.h
${LIBTINS_INCLUDE_DIR}/tins/llc.h
${LIBTINS_INCLUDE_DIR}/tins/loopback.h
${LIBTINS_INCLUDE_DIR}/tins/macros.h
${LIBTINS_INCLUDE_DIR}/tins/mpls.h
${LIBTINS_INCLUDE_DIR}/tins/memory_helpers.h
${LIBTINS_INCLUDE_DIR}/tins/network_interface.h
${LIBTINS_INCLUDE_DIR}/tins/packet.h
${LIBTINS_INCLUDE_DIR}/tins/packet_sender.h
${LIBTINS_INCLUDE_DIR}/tins/pdu.h
${LIBTINS_INCLUDE_DIR}/tins/pdu_allocator.h
${LIBTINS_INCLUDE_DIR}/tins/pdu_cacher.h
${LIBTINS_INCLUDE_DIR}/tins/pdu_iterator.h
${LIBTINS_INCLUDE_DIR}/tins/pdu_option.h
${LIBTINS_INCLUDE_DIR}/tins/radiotap.h
${LIBTINS_INCLUDE_DIR}/tins/rawpdu.h
${LIBTINS_INCLUDE_DIR}/tins/rsn_information.h
${LIBTINS_INCLUDE_DIR}/tins/sll.h
${LIBTINS_INCLUDE_DIR}/tins/small_uint.h
${LIBTINS_INCLUDE_DIR}/tins/snap.h
${LIBTINS_INCLUDE_DIR}/tins/tcp.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/ack_tracker.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/flow.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/data_tracker.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/stream.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/stream_follower.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_ip/stream_identifier.h
${LIBTINS_INCLUDE_DIR}/tins/timestamp.h
${LIBTINS_INCLUDE_DIR}/tins/tins.h
${LIBTINS_INCLUDE_DIR}/tins/udp.h
${LIBTINS_INCLUDE_DIR}/tins/utils.h
${LIBTINS_INCLUDE_DIR}/tins/utils/checksum_utils.h
${LIBTINS_INCLUDE_DIR}/tins/utils/frequency_utils.h
${LIBTINS_INCLUDE_DIR}/tins/utils/radiotap_parser.h
${LIBTINS_INCLUDE_DIR}/tins/utils/radiotap_writer.h
${LIBTINS_INCLUDE_DIR}/tins/utils/routing_utils.h
${LIBTINS_INCLUDE_DIR}/tins/utils/resolve_utils.h
${LIBTINS_INCLUDE_DIR}/tins/utils/pdu_utils.h
)
SET(DOT11_DEPENDENT_SOURCES
dot11/dot11_base.cpp
dot11/dot11_data.cpp
dot11/dot11_mgmt.cpp
dot11/dot11_beacon.cpp
dot11/dot11_assoc.cpp
dot11/dot11_auth.cpp
dot11/dot11_probe.cpp
dot11/dot11_control.cpp
)
SET(DOT11_DEPENDENT_HEADERS
${LIBTINS_INCLUDE_DIR}/tins/dot11.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_base.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_data.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_mgmt.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_beacon.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_assoc.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_auth.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_probe.h
${LIBTINS_INCLUDE_DIR}/tins/dot11/dot11_control.h
)
IF(LIBTINS_ENABLE_DOT11)
SET(SOURCES ${SOURCES} ${DOT11_DEPENDENT_SOURCES})
SET(HEADERS ${HEADERS} ${DOT11_DEPENDENT_HEADERS})
ENDIF()
SET(PCAP_DEPENDENT_SOURCES
sniffer.cpp
packet_writer.cpp
pktap.cpp
tcp_stream.cpp
offline_packet_filter.cpp
ppi.cpp
)
SET(PCAP_DEPENDENT_HEADERS
${LIBTINS_INCLUDE_DIR}/tins/offline_packet_filter.h
${LIBTINS_INCLUDE_DIR}/tins/packet_writer.h
${LIBTINS_INCLUDE_DIR}/tins/pktap.h
${LIBTINS_INCLUDE_DIR}/tins/ppi.h
${LIBTINS_INCLUDE_DIR}/tins/sniffer.h
${LIBTINS_INCLUDE_DIR}/tins/tcp_stream.h
)
IF(LIBTINS_ENABLE_PCAP)
SET(SOURCES ${SOURCES} ${PCAP_DEPENDENT_SOURCES})
SET(HEADERS ${HEADERS} ${PCAP_DEPENDENT_HEADERS})
ENDIF()
ADD_LIBRARY(
tins ${LIBTINS_TYPE}
${SOURCES}
${HEADERS}
)
TARGET_LINK_LIBRARIES(tins ${PCAP_LIBRARY} ${OPENSSL_LIBRARIES} ${LIBTINS_OS_LIBS})
SET_TARGET_PROPERTIES(tins PROPERTIES OUTPUT_NAME tins)
SET_TARGET_PROPERTIES(tins PROPERTIES VERSION ${LIBTINS_VERSION} SOVERSION ${LIBTINS_VERSION} )
# Install instructions for this target
INSTALL(
TARGETS tins
EXPORT libtinsTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT dev
)
MACRO(INSTALL_HEADERS_WITH_DIRECTORY HEADER_LIST)
FOREACH(HEADER ${HEADERS})
# Extract directory name and remove leading '../'
get_filename_component(DIR ${HEADER} PATH)
STRING(REGEX REPLACE "^\\.\\.\\/" "" DIR ${DIR})
INSTALL(FILES ${HEADER} DESTINATION ${DIR})
ENDFOREACH(HEADER)
ENDMACRO()
INSTALL_HEADERS_WITH_DIRECTORY(${HEADERS})