balcony_weather_station/CmakeLists.txt
2025-09-15 20:53:58 +02:00

98 lines
2.7 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()
# == NODE 1 ==
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()
# 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 pico_cyw43_arch_lwip_threadsafe_background pico_lwip_mqtt)
target_include_directories(node1 PRIVATE
${CMAKE_CURRENT_LIST_DIR}
${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts or any other standard includes, if required
)
target_compile_definitions(node1 PRIVATE
WIFI_SSID=\"${WIFI_SSID}\"
WIFI_PASSWORD=\"${WIFI_PASSWORD}\"
MQTT_SERVER=\"${MQTT_SERVER}\"
MQTT_USERNAME=\"${MQTT_USERNAME}\"
MQTT_PASSWORD=\"${MQTT_PASSWORD}\"
)
# create map/bin/hex file etc.
pico_add_extra_outputs( node1 )
# == TCP TEST ==
add_executable(tcp_test tcp.c)
target_include_directories(tcp_test PRIVATE
${CMAKE_CURRENT_LIST_DIR}
${CMAKE_CURRENT_LIST_DIR}/.. # for our common lwipopts
)
target_link_libraries(tcp_test
pico_cyw43_arch_lwip_threadsafe_background
pico_stdlib
)
target_compile_definitions(tcp_test PRIVATE
WIFI_SSID=\"${WIFI_SSID}\"
WIFI_PASSWORD=\"${WIFI_PASSWORD}\"
)
pico_add_extra_outputs(tcp_test)
# == CAN BUS SENDER TEST ==
add_executable( can_bus_sender_test can_bus_sender_test.c can_bus.c )
pico_set_program_version(can_bus_sender_test "0.1")
pico_set_program_name(can_bus_sender_test "Can Bus Sender Test")
target_link_libraries(can_bus_sender_test pico_stdlib hardware_spi)
pico_add_extra_outputs(can_bus_sender_test)