QUELLCODE / TXT
CMakeLists.txt
pico/CMakeLists.txt
1# OpenAss: nur privater, experimenteller Gebrauch; auf eigene Verantwortung.2# Niemals Unternehmensrechner, Produktivsysteme, Industrieanlagen oder3# sicherheitskritische Systeme anschließen oder bedienen.4# Haftungshinweis und gesetzliche Grenzen: ../DISCLAIMER.txt.5cmake_minimum_required(VERSION 3.13)67# Portable parser tests can run on a development machine without the Pico SDK.8option(HB_NATIVE_TESTS "Build native HB1 protocol tests only" OFF)9if(HB_NATIVE_TESTS)10 project(hardware_box_protocol_tests C)11 set(CMAKE_C_STANDARD 11)12 enable_testing()13 add_executable(protocol_test protocol.c tests/protocol_test.c)14 target_include_directories(protocol_test PRIVATE ${CMAKE_CURRENT_LIST_DIR})15 target_compile_options(protocol_test PRIVATE -Wall -Wextra -Werror)16 add_test(NAME protocol COMMAND protocol_test)17 add_executable(firmware_test protocol.c tests/firmware_test.c)18 target_include_directories(firmware_test PRIVATE ${CMAKE_CURRENT_LIST_DIR}/tests/fake_pico ${CMAKE_CURRENT_LIST_DIR})19 target_compile_options(firmware_test PRIVATE -Wall -Wextra -Werror)20 add_test(NAME simulated_firmware_safety COMMAND firmware_test)21 return()22endif()2324set(PICO_BOARD pico2 CACHE STRING "Pico board (default: Raspberry Pi Pico 2)")25if(NOT PICO_SDK_PATH AND DEFINED ENV{PICO_SDK_PATH})26 set(PICO_SDK_PATH "$ENV{PICO_SDK_PATH}")27endif()28if(NOT EXISTS "${PICO_SDK_PATH}/external/pico_sdk_import.cmake")29 message(FATAL_ERROR "Set PICO_SDK_PATH to a Pico SDK 2.1+ checkout with its TinyUSB submodule initialized.")30endif()31include("${PICO_SDK_PATH}/external/pico_sdk_import.cmake")32project(hardware_box_pico C CXX ASM)33set(CMAKE_C_STANDARD 11)34set(CMAKE_CXX_STANDARD 17)35pico_sdk_init()36if(NOT TARGET tinyusb_device)37 message(FATAL_ERROR "TinyUSB unavailable. Initialize the SDK's lib/tinyusb submodule.")38endif()3940add_executable(hardware_box_pico main.c protocol.c usb_descriptors.c)41target_include_directories(hardware_box_pico PRIVATE ${CMAKE_CURRENT_LIST_DIR})42target_link_libraries(hardware_box_pico PRIVATE pico_stdlib pico_unique_id hardware_uart hardware_watchdog tinyusb_device tinyusb_board)43target_compile_options(hardware_box_pico PRIVATE -Wall -Wextra -Werror)44pico_enable_stdio_usb(hardware_box_pico 0)45pico_enable_stdio_uart(hardware_box_pico 0)46pico_set_program_name(hardware_box_pico "Hardware Box HID")47pico_set_program_version(hardware_box_pico "1.0.0")48pico_add_extra_outputs(hardware_box_pico)