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 $<$:-x assembler-with-cpp -MMD -MP> $<$:-O0 -g3 -ggdb> $<$:-Og -g0> ) target_compile_definitions(${ETHERLIB_TARGET} PRIVATE ${ETHERLIB_COMPILE_DEFS})