-
Notifications
You must be signed in to change notification settings - Fork 884
/
Copy pathCMakeLists.txt
79 lines (73 loc) · 2.67 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Define the host name of the MQTT server in an environment variable or pass it to cmake,
# e.g. cmake -DMQTT_SERVER=myserver ..
if (DEFINED ENV{MQTT_SERVER} AND (NOT MQTT_SERVER))
set(MQTT_SERVER $ENV{MQTT_SERVER})
message("Using MQTT_SERVER from environment ('${MQTT_SERVER}')")
endif()
if (NOT MQTT_SERVER)
message("Skipping MQTT example as MQTT_SERVER is not defined")
return()
endif()
# Define the name of an MQTT broker/server to enable this example
set(MQTT_SERVER "${MQTT_SERVER}" CACHE INTERNAL "MQTT server for examples")
if (DEFINED ENV{MQTT_USERNAME} AND (NOT MQTT_USERNAME))
set(MQTT_USERNAME $ENV{MQTT_USERNAME})
message("Using MQTT_USERNAME from environment ('${MQTT_USERNAME}')")
endif()
set(MQTT_USERNAME "${MQTT_USERNAME}" CACHE INTERNAL "MQTT user name for examples")
if (DEFINED ENV{MQTT_PASSWORD} AND (NOT MQTT_PASSWORD))
set(MQTT_PASSWORD $ENV{MQTT_PASSWORD})
message("Using MQTT_PASSWORD from environment")
endif()
set(MQTT_PASSWORD "${MQTT_PASSWORD}" CACHE INTERNAL "MQTT password for examples")
# Set path to the certificate include file
if (NOT MQTT_CERT_PATH)
set(MQTT_CERT_PATH ${CMAKE_CURRENT_LIST_DIR}/certs/${MQTT_SERVER})
endif()
# Set the name of the certificate include file
if (NOT MQTT_CERT_INC)
set(MQTT_CERT_INC mqtt_client.inc)
endif()
set(TARGET_NAME picow_mqtt_client)
add_executable(${TARGET_NAME}
mqtt_client.c
)
target_link_libraries(${TARGET_NAME}
pico_stdlib
hardware_adc
pico_cyw43_arch_lwip_threadsafe_background
pico_lwip_mqtt
pico_mbedtls
pico_lwip_mbedtls
)
target_include_directories(${TARGET_NAME} PRIVATE
${CMAKE_CURRENT_LIST_DIR}
${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts or any other standard includes, if required
)
target_compile_definitions(${TARGET_NAME} PRIVATE
WIFI_SSID=\"${WIFI_SSID}\"
WIFI_PASSWORD=\"${WIFI_PASSWORD}\"
MQTT_SERVER=\"${MQTT_SERVER}\"
)
if (EXISTS "${MQTT_CERT_PATH}/${MQTT_CERT_INC}")
target_compile_definitions(${TARGET_NAME} PRIVATE
MQTT_CERT_INC=\"${MQTT_CERT_INC}\" # contains the tls certificates for MQTT_SERVER needed by the client
ALTCP_MBEDTLS_AUTHMODE=MBEDTLS_SSL_VERIFY_REQUIRED
)
target_include_directories(${TARGET_NAME} PRIVATE
${MQTT_CERT_PATH}
)
endif()
if (MQTT_USERNAME AND MQTT_PASSWORD)
target_compile_definitions(${TARGET_NAME} PRIVATE
MQTT_USERNAME=\"${MQTT_USERNAME}\"
MQTT_PASSWORD=\"${MQTT_PASSWORD}\"
)
endif()
pico_add_extra_outputs(${TARGET_NAME})
# Ignore warnings from lwip code
set_source_files_properties(
${PICO_LWIP_PATH}/src/apps/altcp_tls/altcp_tls_mbedtls.c
PROPERTIES
COMPILE_OPTIONS "-Wno-unused-result"
)