105 lines
2.8 KiB
Text
105 lines
2.8 KiB
Text
# What CMake to start at
|
|
cmake_minimum_required( VERSION 3.31 )
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
#set(PICO_BOARD pico CACHE STRING "Board type")
|
|
|
|
# Pull in SDK (must be before project)
|
|
include( pico_sdk_import.cmake )
|
|
|
|
# Set the name and version of the project
|
|
|
|
project(test C CXX ASM)
|
|
# project(test VERSION 1.0.0 )
|
|
|
|
# Initialize the SDK
|
|
pico_sdk_init()
|
|
|
|
|
|
# the executable
|
|
add_executable( node1 node1.c bme280.c pms5003.c )
|
|
pico_set_program_version(node1 "0.1")
|
|
pico_set_program_name(node1 "node_one")
|
|
|
|
# pull in common dependencies
|
|
target_link_libraries( node1 pico_stdlib hardware_i2c)
|
|
|
|
# create map/bin/hex file etc.
|
|
pico_add_extra_outputs( node1 )
|
|
|
|
add_executable(wifi_scan wifi_scan.c)
|
|
target_include_directories(wifi_scan PRIVATE
|
|
${CMAKE_CURRENT_LIST_DIR}
|
|
${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts
|
|
)
|
|
|
|
target_link_libraries(wifi_scan
|
|
pico_cyw43_arch_lwip_threadsafe_background
|
|
pico_stdlib
|
|
)
|
|
|
|
pico_add_extra_outputs(wifi_scan)
|
|
|
|
|
|
# Define the host name of the MQTT server in an environment variable or pass it to cmake,
|
|
# e.g. cmake -DMQTT_SERVER=myserver ..
|
|
|
|
if ((NOT MQTT_SERVER) OR (NOT MQTT_USERNAME) OR (NOT MQTT_PASSWORD))
|
|
message("Missing MQTT_SERVER or MQTT_USERNAME or MQTT_PASSWORD")
|
|
return()
|
|
endif()
|
|
|
|
set(MQTT_SERVER "${MQTT_SERVER}" CACHE INTERNAL "MQTT server")
|
|
set(MQTT_USERNAME "${MQTT_USERNAME}" CACHE INTERNAL "MQTT user name")
|
|
set(MQTT_PASSWORD "${MQTT_PASSWORD}" CACHE INTERNAL "MQTT password")
|
|
set(WIFI_SSID "${WIFI_SSID}" CACHE INTERNAL "wifi ssid")
|
|
set(WIFI_PASSWORD "${WIFI_PASSWORD}" CACHE INTERNAL "wifi password")
|
|
|
|
# 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 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}\"
|
|
MQTT_USERNAME=\"${MQTT_USERNAME}\"
|
|
MQTT_PASSWORD=\"${MQTT_PASSWORD}\"
|
|
)
|
|
|
|
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"
|
|
)
|