xref: /nrf52832-nimble/rt-thread/components/net/lwip-2.1.0/src/Filelists.cmake (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero# This file is indended to be included in end-user CMakeLists.txt
2*10465441SEvalZero# include(/path/to/Filelists.cmake)
3*10465441SEvalZero# It assumes the variable LWIP_DIR is defined pointing to the
4*10465441SEvalZero# root path of lwIP sources.
5*10465441SEvalZero#
6*10465441SEvalZero# This file is NOT designed (on purpose) to be used as cmake
7*10465441SEvalZero# subdir via add_subdirectory()
8*10465441SEvalZero# The intention is to provide greater flexibility to users to
9*10465441SEvalZero# create their own targets using the *_SRCS variables.
10*10465441SEvalZero
11*10465441SEvalZeroset(LWIP_VERSION_MAJOR    "2")
12*10465441SEvalZeroset(LWIP_VERSION_MINOR    "1")
13*10465441SEvalZeroset(LWIP_VERSION_REVISION "0")
14*10465441SEvalZero# LWIP_VERSION_RC is set to LWIP_RC_RELEASE for official releases
15*10465441SEvalZero# LWIP_VERSION_RC is set to LWIP_RC_DEVELOPMENT for Git versions
16*10465441SEvalZero# Numbers 1..31 are reserved for release candidates
17*10465441SEvalZeroset(LWIP_VERSION_RC       "LWIP_RC_RELEASE")
18*10465441SEvalZero
19*10465441SEvalZeroif ("${LWIP_VERSION_RC}" STREQUAL "LWIP_RC_RELEASE")
20*10465441SEvalZero    set(LWIP_VERSION_STRING
21*10465441SEvalZero        "${LWIP_VERSION_MAJOR}.${LWIP_VERSION_MINOR}.${LWIP_VERSION_REVISION}"
22*10465441SEvalZero    )
23*10465441SEvalZeroelseif ("${LWIP_VERSION_RC}" STREQUAL "LWIP_RC_DEVELOPMENT")
24*10465441SEvalZero    set(LWIP_VERSION_STRING
25*10465441SEvalZero        "${LWIP_VERSION_MAJOR}.${LWIP_VERSION_MINOR}.${LWIP_VERSION_REVISION}.dev"
26*10465441SEvalZero    )
27*10465441SEvalZeroelse ("${LWIP_VERSION_RC}" STREQUAL "LWIP_RC_RELEASE")
28*10465441SEvalZero    set(LWIP_VERSION_STRING
29*10465441SEvalZero        "${LWIP_VERSION_MAJOR}.${LWIP_VERSION_MINOR}.${LWIP_VERSION_REVISION}.rc${LWIP_VERSION_RC}"
30*10465441SEvalZero    )
31*10465441SEvalZeroendif ("${LWIP_VERSION_RC}" STREQUAL "LWIP_RC_RELEASE")
32*10465441SEvalZero
33*10465441SEvalZero# The minimum set of files needed for lwIP.
34*10465441SEvalZeroset(lwipcore_SRCS
35*10465441SEvalZero    ${LWIP_DIR}/src/core/init.c
36*10465441SEvalZero    ${LWIP_DIR}/src/core/def.c
37*10465441SEvalZero    ${LWIP_DIR}/src/core/dns.c
38*10465441SEvalZero    ${LWIP_DIR}/src/core/inet_chksum.c
39*10465441SEvalZero    ${LWIP_DIR}/src/core/ip.c
40*10465441SEvalZero    ${LWIP_DIR}/src/core/mem.c
41*10465441SEvalZero    ${LWIP_DIR}/src/core/memp.c
42*10465441SEvalZero    ${LWIP_DIR}/src/core/netif.c
43*10465441SEvalZero    ${LWIP_DIR}/src/core/pbuf.c
44*10465441SEvalZero    ${LWIP_DIR}/src/core/raw.c
45*10465441SEvalZero    ${LWIP_DIR}/src/core/stats.c
46*10465441SEvalZero    ${LWIP_DIR}/src/core/sys.c
47*10465441SEvalZero    ${LWIP_DIR}/src/core/altcp.c
48*10465441SEvalZero    ${LWIP_DIR}/src/core/altcp_alloc.c
49*10465441SEvalZero    ${LWIP_DIR}/src/core/altcp_tcp.c
50*10465441SEvalZero    ${LWIP_DIR}/src/core/tcp.c
51*10465441SEvalZero    ${LWIP_DIR}/src/core/tcp_in.c
52*10465441SEvalZero    ${LWIP_DIR}/src/core/tcp_out.c
53*10465441SEvalZero    ${LWIP_DIR}/src/core/timeouts.c
54*10465441SEvalZero    ${LWIP_DIR}/src/core/udp.c
55*10465441SEvalZero)
56*10465441SEvalZeroset(lwipcore4_SRCS
57*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/autoip.c
58*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/dhcp.c
59*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/etharp.c
60*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/icmp.c
61*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/igmp.c
62*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/ip4_frag.c
63*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/ip4.c
64*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv4/ip4_addr.c
65*10465441SEvalZero)
66*10465441SEvalZeroset(lwipcore6_SRCS
67*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/dhcp6.c
68*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/ethip6.c
69*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/icmp6.c
70*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/inet6.c
71*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/ip6.c
72*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/ip6_addr.c
73*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/ip6_frag.c
74*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/mld6.c
75*10465441SEvalZero    ${LWIP_DIR}/src/core/ipv6/nd6.c
76*10465441SEvalZero)
77*10465441SEvalZero
78*10465441SEvalZero# APIFILES: The files which implement the sequential and socket APIs.
79*10465441SEvalZeroset(lwipapi_SRCS
80*10465441SEvalZero    ${LWIP_DIR}/src/api/api_lib.c
81*10465441SEvalZero    ${LWIP_DIR}/src/api/api_msg.c
82*10465441SEvalZero    ${LWIP_DIR}/src/api/err.c
83*10465441SEvalZero    ${LWIP_DIR}/src/api/if_api.c
84*10465441SEvalZero    ${LWIP_DIR}/src/api/netbuf.c
85*10465441SEvalZero    ${LWIP_DIR}/src/api/netdb.c
86*10465441SEvalZero    ${LWIP_DIR}/src/api/netifapi.c
87*10465441SEvalZero    ${LWIP_DIR}/src/api/sockets.c
88*10465441SEvalZero    ${LWIP_DIR}/src/api/tcpip.c
89*10465441SEvalZero)
90*10465441SEvalZero
91*10465441SEvalZero# Files implementing various generic network interface functions
92*10465441SEvalZeroset(lwipnetif_SRCS
93*10465441SEvalZero    ${LWIP_DIR}/src/netif/ethernet.c
94*10465441SEvalZero    ${LWIP_DIR}/src/netif/bridgeif.c
95*10465441SEvalZero    ${LWIP_DIR}/src/netif/bridgeif_fdb.c
96*10465441SEvalZero    ${LWIP_DIR}/src/netif/slipif.c
97*10465441SEvalZero)
98*10465441SEvalZero
99*10465441SEvalZero# 6LoWPAN
100*10465441SEvalZeroset(lwipsixlowpan_SRCS
101*10465441SEvalZero    ${LWIP_DIR}/src/netif/lowpan6_common.c
102*10465441SEvalZero    ${LWIP_DIR}/src/netif/lowpan6.c
103*10465441SEvalZero    ${LWIP_DIR}/src/netif/lowpan6_ble.c
104*10465441SEvalZero    ${LWIP_DIR}/src/netif/zepif.c
105*10465441SEvalZero)
106*10465441SEvalZero
107*10465441SEvalZero# PPP
108*10465441SEvalZeroset(lwipppp_SRCS
109*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/auth.c
110*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/ccp.c
111*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/chap-md5.c
112*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/chap_ms.c
113*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/chap-new.c
114*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/demand.c
115*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/eap.c
116*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/ecp.c
117*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/eui64.c
118*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/fsm.c
119*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/ipcp.c
120*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/ipv6cp.c
121*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/lcp.c
122*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/magic.c
123*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/mppe.c
124*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/multilink.c
125*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/ppp.c
126*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/pppapi.c
127*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/pppcrypt.c
128*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/pppoe.c
129*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/pppol2tp.c
130*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/pppos.c
131*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/upap.c
132*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/utils.c
133*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/vj.c
134*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/polarssl/arc4.c
135*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/polarssl/des.c
136*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/polarssl/md4.c
137*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/polarssl/md5.c
138*10465441SEvalZero    ${LWIP_DIR}/src/netif/ppp/polarssl/sha1.c
139*10465441SEvalZero)
140*10465441SEvalZero
141*10465441SEvalZero# SNMPv3 agent
142*10465441SEvalZeroset(lwipsnmp_SRCS
143*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_asn1.c
144*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_core.c
145*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2.c
146*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_icmp.c
147*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_interfaces.c
148*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_ip.c
149*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_snmp.c
150*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_system.c
151*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_tcp.c
152*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_mib2_udp.c
153*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_snmpv2_framework.c
154*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_snmpv2_usm.c
155*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_msg.c
156*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmpv3.c
157*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_netconn.c
158*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_pbuf_stream.c
159*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_raw.c
160*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_scalar.c
161*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_table.c
162*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_threadsync.c
163*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmp_traps.c
164*10465441SEvalZero)
165*10465441SEvalZero
166*10465441SEvalZero# HTTP server + client
167*10465441SEvalZeroset(lwiphttp_SRCS
168*10465441SEvalZero    ${LWIP_DIR}/src/apps/http/altcp_proxyconnect.c
169*10465441SEvalZero    ${LWIP_DIR}/src/apps/http/fs.c
170*10465441SEvalZero    ${LWIP_DIR}/src/apps/http/http_client.c
171*10465441SEvalZero    ${LWIP_DIR}/src/apps/http/httpd.c
172*10465441SEvalZero)
173*10465441SEvalZero
174*10465441SEvalZero# MAKEFSDATA HTTP server host utility
175*10465441SEvalZeroset(lwipmakefsdata_SRCS
176*10465441SEvalZero    ${LWIP_DIR}/src/apps/http/makefsdata/makefsdata.c
177*10465441SEvalZero)
178*10465441SEvalZero
179*10465441SEvalZero# IPERF server
180*10465441SEvalZeroset(lwipiperf_SRCS
181*10465441SEvalZero    ${LWIP_DIR}/src/apps/lwiperf/lwiperf.c
182*10465441SEvalZero)
183*10465441SEvalZero
184*10465441SEvalZero# SMTP client
185*10465441SEvalZeroset(lwipsmtp_SRCS
186*10465441SEvalZero    ${LWIP_DIR}/src/apps/smtp/smtp.c
187*10465441SEvalZero)
188*10465441SEvalZero
189*10465441SEvalZero# SNTP client
190*10465441SEvalZeroset(lwipsntp_SRCS
191*10465441SEvalZero    ${LWIP_DIR}/src/apps/sntp/sntp.c
192*10465441SEvalZero)
193*10465441SEvalZero
194*10465441SEvalZero# MDNS responder
195*10465441SEvalZeroset(lwipmdns_SRCS
196*10465441SEvalZero    ${LWIP_DIR}/src/apps/mdns/mdns.c
197*10465441SEvalZero)
198*10465441SEvalZero
199*10465441SEvalZero# NetBIOS name server
200*10465441SEvalZeroset(lwipnetbios_SRCS
201*10465441SEvalZero    ${LWIP_DIR}/src/apps/netbiosns/netbiosns.c
202*10465441SEvalZero)
203*10465441SEvalZero
204*10465441SEvalZero# TFTP server files
205*10465441SEvalZeroset(lwiptftp_SRCS
206*10465441SEvalZero    ${LWIP_DIR}/src/apps/tftp/tftp_server.c
207*10465441SEvalZero)
208*10465441SEvalZero
209*10465441SEvalZero# MQTT client files
210*10465441SEvalZeroset(lwipmqtt_SRCS
211*10465441SEvalZero    ${LWIP_DIR}/src/apps/mqtt/mqtt.c
212*10465441SEvalZero)
213*10465441SEvalZero
214*10465441SEvalZero# ARM MBEDTLS related files of lwIP rep
215*10465441SEvalZeroset(lwipmbedtls_SRCS
216*10465441SEvalZero    ${LWIP_DIR}/src/apps/altcp_tls/altcp_tls_mbedtls.c
217*10465441SEvalZero    ${LWIP_DIR}/src/apps/altcp_tls/altcp_tls_mbedtls_mem.c
218*10465441SEvalZero    ${LWIP_DIR}/src/apps/snmp/snmpv3_mbedtls.c
219*10465441SEvalZero)
220*10465441SEvalZero
221*10465441SEvalZero# All LWIP files without apps
222*10465441SEvalZeroset(lwipnoapps_SRCS
223*10465441SEvalZero    ${lwipcore_SRCS}
224*10465441SEvalZero    ${lwipcore4_SRCS}
225*10465441SEvalZero    ${lwipcore6_SRCS}
226*10465441SEvalZero    ${lwipapi_SRCS}
227*10465441SEvalZero    ${lwipnetif_SRCS}
228*10465441SEvalZero    ${lwipsixlowpan_SRCS}
229*10465441SEvalZero    ${lwipppp_SRCS}
230*10465441SEvalZero)
231*10465441SEvalZero
232*10465441SEvalZero# LWIPAPPFILES: All LWIP APPs
233*10465441SEvalZeroset(lwipallapps_SRCS
234*10465441SEvalZero    ${lwipsnmp_SRCS}
235*10465441SEvalZero    ${lwiphttp_SRCS}
236*10465441SEvalZero    ${lwipiperf_SRCS}
237*10465441SEvalZero    ${lwipsmtp_SRCS}
238*10465441SEvalZero    ${lwipsntp_SRCS}
239*10465441SEvalZero    ${lwipmdns_SRCS}
240*10465441SEvalZero    ${lwipnetbios_SRCS}
241*10465441SEvalZero    ${lwiptftp_SRCS}
242*10465441SEvalZero    ${lwipmqtt_SRCS}
243*10465441SEvalZero    ${lwipmbedtls_SRCS}
244*10465441SEvalZero)
245*10465441SEvalZero
246*10465441SEvalZero# Generate lwip/init.h (version info)
247*10465441SEvalZeroconfigure_file(${LWIP_DIR}/src/include/lwip/init.h.cmake.in ${LWIP_DIR}/src/include/lwip/init.h)
248*10465441SEvalZero
249*10465441SEvalZero# Documentation
250*10465441SEvalZeroset(DOXYGEN_DIR ${LWIP_DIR}/doc/doxygen)
251*10465441SEvalZeroset(DOXYGEN_OUTPUT_DIR output)
252*10465441SEvalZeroset(DOXYGEN_IN  ${LWIP_DIR}/doc/doxygen/lwip.Doxyfile.cmake.in)
253*10465441SEvalZeroset(DOXYGEN_OUT ${LWIP_DIR}/doc/doxygen/lwip.Doxyfile)
254*10465441SEvalZeroconfigure_file(${DOXYGEN_IN} ${DOXYGEN_OUT})
255*10465441SEvalZero
256*10465441SEvalZerofind_package(Doxygen)
257*10465441SEvalZeroif (DOXYGEN_FOUND)
258*10465441SEvalZero    message("Doxygen build started")
259*10465441SEvalZero
260*10465441SEvalZero    add_custom_target(lwipdocs
261*10465441SEvalZero        COMMAND ${CMAKE_COMMAND} -E remove_directory ${DOXYGEN_DIR}/${DOXYGEN_OUTPUT_DIR}/html
262*10465441SEvalZero        COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
263*10465441SEvalZero        WORKING_DIRECTORY ${DOXYGEN_DIR}
264*10465441SEvalZero        COMMENT "Generating API documentation with Doxygen"
265*10465441SEvalZero        VERBATIM)
266*10465441SEvalZeroelse (DOXYGEN_FOUND)
267*10465441SEvalZero    message("Doxygen needs to be installed to generate the doxygen documentation")
268*10465441SEvalZeroendif (DOXYGEN_FOUND)
269*10465441SEvalZero
270*10465441SEvalZero# lwIP libraries
271*10465441SEvalZeroadd_library(lwipcore EXCLUDE_FROM_ALL ${lwipnoapps_SRCS})
272*10465441SEvalZerotarget_compile_options(lwipcore PRIVATE ${LWIP_COMPILER_FLAGS})
273*10465441SEvalZerotarget_compile_definitions(lwipcore PRIVATE ${LWIP_DEFINITIONS}  ${LWIP_MBEDTLS_DEFINITIONS})
274*10465441SEvalZerotarget_include_directories(lwipcore PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
275*10465441SEvalZero
276*10465441SEvalZeroadd_library(lwipallapps EXCLUDE_FROM_ALL ${lwipallapps_SRCS})
277*10465441SEvalZerotarget_compile_options(lwipallapps PRIVATE ${LWIP_COMPILER_FLAGS})
278*10465441SEvalZerotarget_compile_definitions(lwipallapps PRIVATE ${LWIP_DEFINITIONS}  ${LWIP_MBEDTLS_DEFINITIONS})
279*10465441SEvalZerotarget_include_directories(lwipallapps PRIVATE ${LWIP_INCLUDE_DIRS} ${LWIP_MBEDTLS_INCLUDE_DIRS})
280