1+ cmake_minimum_required (VERSION 3.13 )
2+
3+ # Pull in Pico and FreeRTOS
4+ include (pico_sdk_import.cmake )
5+ include (pico_extras_import_optional.cmake )
6+ #include($ENV{FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake)
7+
8+
9+ if (PICO_SDK_VERSION_STRING VERSION_LESS "1.3.0" )
10+ message (FATAL_ERROR "Raspberry Pi Pico SDK version 1.3.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING} " )
11+ endif ()
12+
13+ project (wolf_pico_examples C CXX ASM )
14+ set (CMAKE_C_STANDARD 11)
15+ set (CMAKE_CXX_STANDARD 17)
16+
17+ # Initialize the SDK
18+ pico_sdk_init ()
19+
20+
21+ ### Global Include Path
22+ include_directories (config )
23+ include_directories (include )
24+ include_directories (${PICO_SDK_PATH} /src/rp2_common/pico_lwip/include )
25+ include_directories (${PICO_SDK_PATH} /lib/lwip/contrib/ports/freertos/include )
26+ include_directories (${PICO_SDK_PATH} /lib/lwip/src/include )
27+ include_directories (${PICO_SDK_PATH} /src/rp2_common/pico_async_context/include )
28+
29+ set (WOLFSSL_ROOT $ENV{WOLFSSL_ROOT} )
30+ include_directories (${WOLFSSL_ROOT} )
31+ ### End of Global Include Path
32+
33+
34+ ### wolfSSL/wolfCrypt library
35+ file (GLOB_RECURSE WOLFSSL_SRC
36+ "${WOLFSSL_ROOT} /src/*.c"
37+ "${WOLFSSL_ROOT} /wolfcrypt/src/*.c"
38+ )
39+ list (REMOVE_ITEM WOLFSSL_SRC EXCLUDE REGEX
40+ "${WOLFSSL_ROOT} /src/bio.c"
41+ "${WOLFSSL_ROOT} /src/conf.c"
42+ "${WOLFSSL_ROOT} /src/pk.c"
43+ "${WOLFSSL_ROOT} /src/ssl_asn1.c"
44+ "${WOLFSSL_ROOT} /src/ssl_bn.c"
45+ "${WOLFSSL_ROOT} /src/ssl_misc.c"
46+ "${WOLFSSL_ROOT} /src/x509.c"
47+ "${WOLFSSL_ROOT} /src/x509_str.c"
48+ "${WOLFSSL_ROOT} /wolfcrypt/src/evp.c"
49+ "${WOLFSSL_ROOT} /wolfcrypt/src/misc.c"
50+ )
51+
52+ add_library (wolfssl STATIC
53+ ${WOLFSSL_SRC}
54+ )
55+
56+ target_compile_definitions (wolfssl PUBLIC
57+ WOLFSSL_USER_SETTINGS
58+ )
59+ ### End of wolfSSL/wolfCrypt library
60+
61+
62+ ### Test wolfCrypt algorithms
63+ add_executable (testwolfcrypt
64+ src/test_main.c
65+ src/blink.c
66+ ${WOLFSSL_ROOT} /wolfcrypt/test/test.c
67+ )
68+
69+ target_link_libraries (testwolfcrypt
70+ wolfssl
71+ pico_stdlib
72+ pico_cyw43_arch_none
73+ pico_rand
74+ )
75+
76+ pico_enable_stdio_usb (testwolfcrypt 1 )
77+ pico_enable_stdio_uart (testwolfcrypt 0 )
78+
79+ pico_add_extra_outputs (testwolfcrypt )
80+ ### End of Test wolfCrypt algorithms
81+
82+
83+ ### Benchmark wolfCrypt algorithms
84+ add_executable (benchmark
85+ src/bench_main.c
86+ src/blink.c
87+ ${WOLFSSL_ROOT} /wolfcrypt/benchmark/benchmark.c
88+ )
89+
90+ target_link_libraries (benchmark
91+ wolfssl
92+ pico_stdlib
93+ pico_cyw43_arch_none
94+ pico_rand
95+ )
96+
97+ pico_enable_stdio_usb (benchmark 1 )
98+ pico_enable_stdio_uart (benchmark 0 )
99+
100+ pico_add_extra_outputs (benchmark )
101+ ### End of Benchmark wolfCrypt algorithms
102+
103+
104+ ### Wifi connection
105+ add_executable (Wifi
106+ src/blink.c
107+ src/wifi.c
108+ src/Wifi_main.c
109+ )
110+
111+ target_compile_definitions (Wifi PRIVATE
112+ WIFI_SSID= \"${WIFI_SSID} \"
113+ WIFI_PASSWORD=\" ${WIFI_PASSWORD} \"
114+ PICO_CYW43_ARCH_POLL
115+ NO_SYS=1
116+ )
117+
118+ target_link_libraries(Wifi
119+ pico_stdlib
120+ pico_rand
121+ pico_lwip
122+ pico_cyw43_arch
123+ pico_lwip_nosys
124+ pico_async_context_poll
125+ )
126+
127+
128+ pico_enable_stdio_usb(Wifi 1)
129+ pico_enable_stdio_uart(Wifi 0)
130+
131+ pico_add_extra_outputs(Wifi)
132+ ### End of Wifi connection
133+
134+
135+ ### TCP Client
136+ add_executable(tcp_Client
137+ src/blink.c
138+ src/wifi.c
139+ src/tcp.c
140+ src/tcpClient_main.c
141+ )
142+
143+ target_compile_definitions(tcp_Client PRIVATE
144+ WIFI_SSID=\" ${WIFI_SSID} \"
145+ WIFI_PASSWORD=\" ${WIFI_PASSWORD} \"
146+ TEST_TCP_SERVER_IP=\" ${TEST_TCP_SERVER_IP} \"
147+ PICO_CYW43_ARCH_POLL
148+ NO_SYS=1
149+ )
150+
151+ target_link_libraries(tcp_Client
152+ pico_stdlib
153+ pico_rand
154+ pico_lwip
155+ pico_cyw43_arch
156+ pico_lwip_nosys
157+ pico_async_context_poll
158+ )
159+
160+
161+ pico_enable_stdio_usb(tcp_Client 1)
162+ pico_enable_stdio_uart(tcp_Client 0)
163+
164+ pico_add_extra_outputs(tcp_Client)
165+ ### End of TCP Client
166+
167+
168+ ### TLS Client
169+ add_executable(tls_Client
170+ src/blink.c
171+ src/wifi.c
172+ src/tcp.c
173+ src/tlsClient_main.c
174+ )
175+
176+ target_compile_definitions(tls_Client PRIVATE
177+ WIFI_SSID=\" ${WIFI_SSID} \"
178+ WIFI_PASSWORD=\" ${WIFI_PASSWORD} \"
179+ TEST_TCP_SERVER_IP=\" ${TEST_TCP_SERVER_IP} \"
180+ PICO_CYW43_ARCH_POLL
181+ NO_SYS=1
182+ )
183+
184+ target_link_libraries(tls_Client
185+ pico_stdlib
186+ pico_rand
187+ pico_lwip
188+ pico_cyw43_arch
189+ pico_lwip_nosys
190+ pico_async_context_poll
191+ wolfssl
192+ )
193+
194+ pico_enable_stdio_usb(tls_Client 1)
195+ pico_enable_stdio_uart(tls_Client 0)
196+
197+ pico_add_extra_outputs(tls_Client)
198+ ### End of TLS Client
0 commit comments