112 lines
3.1 KiB
CMake
112 lines
3.1 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(ETHERLIB_TARGET etherlib)
|
|
|
|
if (ETHERLIB_TARGET_TAG)
|
|
set(ETHERLIB_TARGET "${ETHERLIB_TARGET}_${ETHERLIB_TARGET_TAG}")
|
|
message("Custom EtherLib target: ${ETHERLIB_TARGET}")
|
|
endif()
|
|
|
|
set(ETHERLIB_SRC
|
|
apps/http_server.c
|
|
apps/http_server.h
|
|
apps/ftp_server.c
|
|
apps/ftp_server.h
|
|
|
|
prefab/conn_blocks/arp_connblock.c
|
|
prefab/conn_blocks/arp_connblock.h
|
|
prefab/conn_blocks/custom_ethertype_connblock.c
|
|
prefab/conn_blocks/custom_ethertype_connblock.h
|
|
prefab/conn_blocks/ethernet_connblock.c
|
|
prefab/conn_blocks/ethernet_connblock.h
|
|
prefab/conn_blocks/icmp_connblock.c
|
|
prefab/conn_blocks/icmp_connblock.h
|
|
prefab/conn_blocks/igmp_connblock.c
|
|
prefab/conn_blocks/igmp_connblock.h
|
|
|
|
prefab/conn_blocks/ipv4/ip_assembler.c
|
|
prefab/conn_blocks/ipv4/ip_assembler.h
|
|
prefab/conn_blocks/ipv4_connblock.c
|
|
prefab/conn_blocks/ipv4_connblock.h
|
|
|
|
prefab/conn_blocks/tcp/tcp_window.c
|
|
prefab/conn_blocks/tcp/tcp_window.h
|
|
prefab/conn_blocks/tcp_connblock.c
|
|
prefab/conn_blocks/tcp_connblock.h
|
|
prefab/conn_blocks/udp_connblock.c
|
|
prefab/conn_blocks/udp_connblock.h
|
|
|
|
prefab/packet_parsers/arp_packet.c
|
|
prefab/packet_parsers/arp_packet.h
|
|
prefab/packet_parsers/dhcp.c
|
|
prefab/packet_parsers/dhcp.h
|
|
prefab/packet_parsers/ethernet_frame.c
|
|
prefab/packet_parsers/ethernet_frame.h
|
|
prefab/packet_parsers/icmp_packet.c
|
|
prefab/packet_parsers/icmp_packet.h
|
|
prefab/packet_parsers/igmp_packet.c
|
|
prefab/packet_parsers/igmp_packet.h
|
|
prefab/packet_parsers/ipv4_packet.c
|
|
prefab/packet_parsers/ipv4_packet.h
|
|
prefab/packet_parsers/ipv4_types.h
|
|
prefab/packet_parsers/packet_parsers.c
|
|
prefab/packet_parsers/packet_parsers.h
|
|
prefab/packet_parsers/tcp_segment.c
|
|
prefab/packet_parsers/tcp_segment.h
|
|
prefab/packet_parsers/tcp_udp_common.c
|
|
prefab/packet_parsers/tcp_udp_common.h
|
|
prefab/packet_parsers/udp_packet.c
|
|
prefab/packet_parsers/udp_packet.h
|
|
prefab/prefab.h
|
|
|
|
arp_cache.c
|
|
arp_cache.h
|
|
blocking_fifo.c
|
|
blocking_fifo.h
|
|
cbd_table.c
|
|
cbd_table.h
|
|
connection_block.c
|
|
connection_block.h
|
|
dynmem.c
|
|
dynmem.h
|
|
etherlib.h
|
|
eth_interface.c
|
|
eth_interface.h
|
|
gen_queue.c
|
|
gen_queue.h
|
|
global_state.c
|
|
global_state.h
|
|
memory_pool.c
|
|
memory_pool.h
|
|
msg_queue.c
|
|
msg_queue.h
|
|
packet.c
|
|
packet.h
|
|
packet_registry.c
|
|
packet_registry.h
|
|
packet_sieve.c
|
|
packet_sieve.h
|
|
pckt_assembler.c
|
|
pckt_assembler.h
|
|
timer.c
|
|
timer.h
|
|
timestamping.c
|
|
timestamping.h
|
|
utils.c
|
|
utils.h
|
|
)
|
|
|
|
add_library(${ETHERLIB_TARGET} STATIC ${ETHERLIB_SRC})
|
|
target_include_directories(${ETHERLIB_TARGET} PRIVATE ${ETHERLIB_INCLUDES})
|
|
target_compile_options(${ETHERLIB_TARGET} PRIVATE
|
|
${ETHERLIB_CPU_PARAMS}
|
|
-Wall
|
|
-Wextra
|
|
#-Wpedantic
|
|
-Wno-unused-parameter
|
|
|
|
$<$<COMPILE_LANGUAGE:ASM>:-x assembler-with-cpp -MMD -MP>
|
|
$<$<CONFIG:Debug>:-O0 -g3 -ggdb>
|
|
$<$<CONFIG:Release>:-Og -g0>
|
|
)
|
|
target_compile_definitions(${ETHERLIB_TARGET} PRIVATE ${ETHERLIB_COMPILE_DEFS}) |