mirror of
https://github.com/mfontanini/libtins
synced 2026-01-23 02:35:57 +01:00
Fix build system issues.
This commit is contained in:
@@ -1,5 +1,27 @@
|
||||
cmake_minimum_required(VERSION 2.8.1)
|
||||
project(libtins)
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.1)
|
||||
PROJECT(libtins)
|
||||
|
||||
# Compile in release mode by default
|
||||
IF(NOT CMAKE_BUILD_TYPE)
|
||||
MESSAGE(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.")
|
||||
SET(CMAKE_BUILD_TYPE RelWithDebInfo)
|
||||
ELSE(NOT CMAKE_BUILD_TYPE)
|
||||
MESSAGE(STATUS "Using specified '${CMAKE_BUILD_TYPE}' build type.")
|
||||
ENDIF(NOT CMAKE_BUILD_TYPE)
|
||||
|
||||
# Default compilation settings
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||
|
||||
# Build output checks
|
||||
OPTION(LIBTINS_BUILD_SHARED "Build libtins as a shared library." ON)
|
||||
IF(LIBTINS_BUILD_SHARED)
|
||||
MESSAGE(STATUS "Build will generate a shared library.")
|
||||
MESSAGE(STATUS "Use LIBTINS_BUILD_SHARED=0 to perform a static build")
|
||||
SET(LIBTINS_TYPE SHARED)
|
||||
ELSE(LIBTINS_BUILD_SHARED)
|
||||
MESSAGE(STATUS "Build will generate a static library.")
|
||||
SET(LIBTINS_TYPE STATIC)
|
||||
ENDIF(LIBTINS_BUILD_SHARED)
|
||||
|
||||
# The version number.
|
||||
SET(LIBTINS_VERSION_MAJOR 3)
|
||||
@@ -9,21 +31,21 @@ SET(LIBTINS_CPP_VERSION "${LIBTINS_VERSION_MAJOR}.${LIBTINS_VERSION_MINOR}")
|
||||
# Required Packages
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
|
||||
|
||||
# Look for libpcap
|
||||
FIND_PACKAGE(PCAP REQUIRED)
|
||||
|
||||
# Default compilation settings
|
||||
SET(CMAKE_CXX_FLAGS "-Wall ${CXX11_COMPILER_FLAGS}")
|
||||
|
||||
# Compilation options
|
||||
OPTION(LIBTINS_ENABLE_CXX11 "Compile libtins with c++11 features" OFF)
|
||||
IF(LIBTINS_ENABLE_CXX11)
|
||||
SET(HAVE_CXX11 ON)
|
||||
INCLUDE(CheckCXX11Features)
|
||||
IF(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_AUTO)
|
||||
IF(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_RVALUE_REFERENCES)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_COMPILER_FLAGS}")
|
||||
ELSE(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_AUTO)
|
||||
MESSAGE(FATAL_ERROR "C++11 features requested but the compiler does not support them!")
|
||||
ENDIF(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_AUTO)
|
||||
ELSE(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_RVALUE_REFERENCES)
|
||||
MESSAGE(FATAL_ERROR "C++11 features requested but the compiler does not support them.")
|
||||
ENDIF(CXX11_COMPILER_FLAGS AND HAS_CXX11_NULLPTR AND HAS_CXX11_RVALUE_REFERENCES)
|
||||
ELSE(LIBTINS_ENABLE_CXX11)
|
||||
MESSAGE(STATUS "Disabling C++11 features. Use LIBTINS_ENABLE_CXX11=1 to enable them.")
|
||||
ENDIF(LIBTINS_ENABLE_CXX11)
|
||||
|
||||
OPTION(LIBTINS_ENABLE_DOT11 "Compile libtins with IEEE 802.11 support" ON)
|
||||
@@ -47,14 +69,16 @@ CONFIGURE_FILE(
|
||||
|
||||
ADD_SUBDIRECTORY(include)
|
||||
ADD_SUBDIRECTORY(src)
|
||||
ENABLE_TESTING()
|
||||
|
||||
# Add all targets to the build-tree export set
|
||||
EXPORT(TARGETS tins
|
||||
FILE "${PROJECT_BINARY_DIR}/libtinsTargets.cmake")
|
||||
|
||||
# Export the package for use from the build-tree
|
||||
# (this registers the build-tree with a global CMake-registry)
|
||||
EXPORT(PACKAGE libtins)
|
||||
# Create the jsoncppConfig.cmake and libtinsConfigVersion.cmake files
|
||||
# Create the libtinsConfig.cmake and libtinsConfigVersion.cmake files
|
||||
# for the build tree
|
||||
SET(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/include")
|
||||
CONFIGURE_FILE(libtinsConfig.cmake.in
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
FILE(GLOB INCLUDE_FILES "*.h")
|
||||
INSTALL(FILES ${INCLUDE_FILES} DESTINATION include/tins)
|
||||
INSTALL(
|
||||
FILES ${INCLUDE_FILES}
|
||||
DESTINATION include/tins
|
||||
COMPONENT Headers
|
||||
)
|
||||
ADD_SUBDIRECTORY(dot11)
|
||||
|
||||
6
include/dot11/CMakeLists.txt
Normal file
6
include/dot11/CMakeLists.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
FILE(GLOB INCLUDE_FILES "*.h")
|
||||
INSTALL(
|
||||
FILES ${INCLUDE_FILES}
|
||||
DESTINATION include/tins/dot11
|
||||
COMPONENT Headers
|
||||
)
|
||||
@@ -1,132 +1,57 @@
|
||||
OPTION(LIBTINS_BUILD_SHARED "Build libtins as a shared library." ON)
|
||||
IF(LIBTINS_BUILD_SHARED)
|
||||
SET(LIBTINS_TYPE SHARED)
|
||||
ELSE(LIBTINS_BUILD_SHARED)
|
||||
SET(LIBTINS_TYPE STATIC)
|
||||
ENDIF(LIBTINS_BUILD_SHARED)
|
||||
|
||||
|
||||
SET(LIBTINS_INCLUDE_DIR ../include)
|
||||
|
||||
INCLUDE_DIRECTORIES(${LIBTINS_INCLUDE_DIR})
|
||||
|
||||
SET(PUBLIC_HEADERS
|
||||
${LIBTINS_INCLUDE_DIR}/internals.h
|
||||
${LIBTINS_INCLUDE_DIR}/dhcpv6.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot1q.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot3.h
|
||||
${LIBTINS_INCLUDE_DIR}/small_uint.h
|
||||
${LIBTINS_INCLUDE_DIR}/ip.h
|
||||
${LIBTINS_INCLUDE_DIR}/ipsec.h
|
||||
${LIBTINS_INCLUDE_DIR}/eapol.h
|
||||
${LIBTINS_INCLUDE_DIR}/tcp_stream.h
|
||||
${LIBTINS_INCLUDE_DIR}/pppoe.h
|
||||
${LIBTINS_INCLUDE_DIR}/handshake_capturer.h
|
||||
${LIBTINS_INCLUDE_DIR}/ipv6.h
|
||||
${LIBTINS_INCLUDE_DIR}/icmpv6.h
|
||||
${LIBTINS_INCLUDE_DIR}/ieee802_3.h
|
||||
${LIBTINS_INCLUDE_DIR}/endianness.h
|
||||
${LIBTINS_INCLUDE_DIR}/rsn_information.h
|
||||
${LIBTINS_INCLUDE_DIR}/loopback.h
|
||||
${LIBTINS_INCLUDE_DIR}/ethernetII.h
|
||||
${LIBTINS_INCLUDE_DIR}/crypto.h
|
||||
${LIBTINS_INCLUDE_DIR}/packet.h
|
||||
${LIBTINS_INCLUDE_DIR}/llc.h
|
||||
${LIBTINS_INCLUDE_DIR}/ip_reassembler.h
|
||||
${LIBTINS_INCLUDE_DIR}/icmp.h
|
||||
${LIBTINS_INCLUDE_DIR}/hw_address.h
|
||||
${LIBTINS_INCLUDE_DIR}/packet_writer.h
|
||||
${LIBTINS_INCLUDE_DIR}/macros.h
|
||||
${LIBTINS_INCLUDE_DIR}/arp.h
|
||||
${LIBTINS_INCLUDE_DIR}/ip_address.h
|
||||
${LIBTINS_INCLUDE_DIR}/pdu.h
|
||||
${LIBTINS_INCLUDE_DIR}/packet_sender.h
|
||||
${LIBTINS_INCLUDE_DIR}/bootp.h
|
||||
${LIBTINS_INCLUDE_DIR}/network_interface.h
|
||||
${LIBTINS_INCLUDE_DIR}/sll.h
|
||||
${LIBTINS_INCLUDE_DIR}/ppi.h
|
||||
${LIBTINS_INCLUDE_DIR}/radiotap.h
|
||||
${LIBTINS_INCLUDE_DIR}/dns.h
|
||||
${LIBTINS_INCLUDE_DIR}/rawpdu.h
|
||||
${LIBTINS_INCLUDE_DIR}/sniffer.h
|
||||
${LIBTINS_INCLUDE_DIR}/snap.h
|
||||
${LIBTINS_INCLUDE_DIR}/pdu_cacher.h
|
||||
${LIBTINS_INCLUDE_DIR}/dhcp.h
|
||||
${LIBTINS_INCLUDE_DIR}/timestamp.h
|
||||
${LIBTINS_INCLUDE_DIR}/tcp.h
|
||||
${LIBTINS_INCLUDE_DIR}/pdu_option.h
|
||||
${LIBTINS_INCLUDE_DIR}/tins.h
|
||||
${LIBTINS_INCLUDE_DIR}/udp.h
|
||||
${LIBTINS_INCLUDE_DIR}/ipv6_address.h
|
||||
${LIBTINS_INCLUDE_DIR}/constants.h
|
||||
${LIBTINS_INCLUDE_DIR}/utils.h
|
||||
${LIBTINS_INCLUDE_DIR}/cxxstd.h
|
||||
${LIBTINS_INCLUDE_DIR}/stp.h
|
||||
${LIBTINS_INCLUDE_DIR}/exceptions.h
|
||||
${LIBTINS_INCLUDE_DIR}/address_range.h
|
||||
${LIBTINS_INCLUDE_DIR}/pdu_allocator.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_base.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_beacon.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_data.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_mgmt.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_assoc.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_auth.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_probe.h
|
||||
${LIBTINS_INCLUDE_DIR}/dot11/dot11_control.h
|
||||
${LIBTINS_INCLUDE_DIR}/config.h
|
||||
)
|
||||
|
||||
ADD_LIBRARY(
|
||||
tins ${LIBTINS_TYPE}
|
||||
arp.cpp
|
||||
bootp.cpp
|
||||
handshake_capturer.cpp
|
||||
stp.cpp
|
||||
pppoe.cpp
|
||||
crypto.cpp
|
||||
dhcp.cpp
|
||||
dhcpv6.cpp
|
||||
dns.cpp
|
||||
dot3.cpp
|
||||
dot1q.cpp
|
||||
eapol.cpp
|
||||
ethernetII.cpp
|
||||
icmp.cpp
|
||||
icmpv6.cpp
|
||||
internals.cpp
|
||||
ip_reassembler.cpp
|
||||
ip.cpp
|
||||
ip_address.cpp
|
||||
ipv6.cpp
|
||||
ipv6_address.cpp
|
||||
ipsec.cpp
|
||||
llc.cpp
|
||||
loopback.cpp
|
||||
network_interface.cpp
|
||||
packet_sender.cpp
|
||||
packet_writer.cpp
|
||||
ppi.cpp
|
||||
pdu.cpp
|
||||
radiotap.cpp
|
||||
address_range.cpp
|
||||
rawpdu.cpp
|
||||
rsn_information.cpp
|
||||
sll.cpp
|
||||
snap.cpp
|
||||
sniffer.cpp
|
||||
tcp.cpp
|
||||
tcp_stream.cpp
|
||||
udp.cpp
|
||||
utils.cpp
|
||||
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
|
||||
tins ${LIBTINS_TYPE}
|
||||
arp.cpp
|
||||
bootp.cpp
|
||||
handshake_capturer.cpp
|
||||
stp.cpp
|
||||
pppoe.cpp
|
||||
crypto.cpp
|
||||
dhcp.cpp
|
||||
dhcpv6.cpp
|
||||
dns.cpp
|
||||
dot3.cpp
|
||||
dot1q.cpp
|
||||
eapol.cpp
|
||||
ethernetII.cpp
|
||||
icmp.cpp
|
||||
icmpv6.cpp
|
||||
internals.cpp
|
||||
ip_reassembler.cpp
|
||||
ip.cpp
|
||||
ip_address.cpp
|
||||
ipv6.cpp
|
||||
ipv6_address.cpp
|
||||
ipsec.cpp
|
||||
llc.cpp
|
||||
loopback.cpp
|
||||
network_interface.cpp
|
||||
packet_sender.cpp
|
||||
packet_writer.cpp
|
||||
ppi.cpp
|
||||
pdu.cpp
|
||||
radiotap.cpp
|
||||
address_range.cpp
|
||||
rawpdu.cpp
|
||||
rsn_information.cpp
|
||||
sll.cpp
|
||||
snap.cpp
|
||||
sniffer.cpp
|
||||
tcp.cpp
|
||||
tcp_stream.cpp
|
||||
udp.cpp
|
||||
utils.cpp
|
||||
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
|
||||
)
|
||||
|
||||
TARGET_LINK_LIBRARIES(tins pcap)
|
||||
@@ -141,5 +66,5 @@ INSTALL(
|
||||
EXPORT libtinsTargets
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib
|
||||
PUBLIC_HEADER DESTINATION include/tins COMPONENT dev
|
||||
COMPONENT dev
|
||||
)
|
||||
|
||||
@@ -368,8 +368,6 @@ void DHCPv6::rapid_commit() {
|
||||
}
|
||||
|
||||
void DHCPv6::user_class(const user_class_type &value) {
|
||||
typedef user_class_type::data_type::const_iterator iterator;
|
||||
|
||||
std::vector<uint8_t> buffer;
|
||||
Internals::class_option_data2option(value.data.begin(), value.data.end(), buffer);
|
||||
add_option(
|
||||
|
||||
Reference in New Issue
Block a user