EtherLib/CMakeLists.txt
2024-06-10 14:09:23 +02:00

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})