cmake_minimum_required(VERSION 3.13) set(PICO_BOARD pico_w) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(PICO_SDK_PATH ${CMAKE_SOURCE_DIR}/pico-sdk) # Pico SDK einbinden – MUSS vor project() stehen include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake) project(sensor-pico C CXX ASM) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) pico_sdk_init() add_subdirectory(lib/bme280 bme280_build) add_subdirectory(lib/dhcp_server dhcp_server_build) add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/fsdata.c COMMAND perl ${PICO_SDK_PATH}/lib/lwip/src/apps/http/makefsdata/makefsdata COMMAND ${CMAKE_COMMAND} -E rename fsdata.c src/fsdata.c COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/prepend_include.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${CMAKE_SOURCE_DIR}/fs/index.html DEPENDS ${CMAKE_SOURCE_DIR}/fs/mqtt_config.html DEPENDS ${CMAKE_SOURCE_DIR}/fs/wlan_config.html ) add_executable(sensor-pico src/main.cpp src/time_sync.c src/webserver.c ) add_dependencies(sensor-pico generate_fsdata) add_custom_target(generate_fsdata DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/fsdata.c ) # Standard Ein-/Ausgabe über USB (du siehst printf im Terminal) pico_enable_stdio_usb(sensor-pico 1) pico_enable_stdio_uart(sensor-pico 0) target_include_directories(sensor-pico PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) # Benötigte Bibliotheken target_link_libraries(sensor-pico pico_stdlib pico_cyw43_arch_lwip_threadsafe_background bme280 dhcp_server pico_lwip pico_lwip_http pico_lwip_mqtt pico_lwip_sntp ) # Erzeugt .uf2 Datei zum Flashen pico_add_extra_outputs(sensor-pico)