121 linhas
3,8 KiB
CMake
121 linhas
3,8 KiB
CMake
add_library(kitchen_sink_libs INTERFACE)
|
|
target_link_libraries(kitchen_sink_libs INTERFACE
|
|
hardware_adc
|
|
hardware_clocks
|
|
hardware_divider
|
|
hardware_exception
|
|
hardware_dma
|
|
hardware_flash
|
|
hardware_gpio
|
|
hardware_i2c
|
|
hardware_interp
|
|
hardware_irq
|
|
hardware_pio
|
|
hardware_pll
|
|
hardware_pwm
|
|
hardware_resets
|
|
hardware_rtc
|
|
hardware_uart
|
|
hardware_spi
|
|
hardware_sync
|
|
hardware_timer
|
|
hardware_uart
|
|
hardware_vreg
|
|
hardware_watchdog
|
|
hardware_xosc
|
|
pico_bit_ops
|
|
pico_bootrom
|
|
pico_bootsel_via_double_reset
|
|
pico_divider
|
|
pico_double
|
|
pico_fix_rp2040_usb_device_enumeration
|
|
pico_float
|
|
pico_int64_ops
|
|
pico_malloc
|
|
pico_mem_ops
|
|
pico_multicore
|
|
pico_platform
|
|
pico_stdlib
|
|
pico_sync
|
|
pico_time
|
|
pico_unique_id
|
|
pico_util
|
|
)
|
|
# todo this is full of warnings atm
|
|
#if (TARGET tinyusb_device)
|
|
# target_include_directories(kitchen_sink_libs INTERFACE ${CMAKE_CURRENT_LIST_DIR})
|
|
# target_link_libraries(kitchen_sink_libs INTERFACE tinyusb_device)
|
|
#endif()
|
|
|
|
add_library(kitchen_sink_options INTERFACE)
|
|
|
|
target_compile_options(kitchen_sink_options INTERFACE
|
|
-Werror
|
|
-Wall
|
|
-Wextra
|
|
# -pedantic
|
|
|
|
-Wnull-dereference
|
|
-Wuninitialized
|
|
-Wunused
|
|
-Wcast-align
|
|
-Wall
|
|
-Wcast-qual
|
|
-Wfloat-equal
|
|
-Wmissing-format-attribute
|
|
-Wconversion
|
|
-Wsign-compare
|
|
$<$<COMPILE_LANGUAGE:C>:-Wstrict-prototypes>
|
|
|
|
-Wno-inline
|
|
# todo not sure these are true, but investigate
|
|
#-Wpacked
|
|
|
|
# todo we have some of these in usb_device_tiny to try to make it more readable.. perhaps doxygen would help here instead
|
|
-Wredundant-decls
|
|
|
|
-Wno-shadow
|
|
-Wno-missing-field-initializers
|
|
-Wno-missing-braces
|
|
-Wno-multichar
|
|
|
|
# todo useful but fix later
|
|
#-Wundef
|
|
)
|
|
|
|
target_compile_definitions(kitchen_sink_libs INTERFACE
|
|
PARAM_ASSERTIONS_ENABLE_ALL=1 # want to check all the assertions for compilation warnings
|
|
PICO_AUDIO_DMA_IRQ=1
|
|
)
|
|
|
|
add_executable(kitchen_sink ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
|
target_link_libraries(kitchen_sink kitchen_sink_libs kitchen_sink_options)
|
|
pico_set_program_name(kitchen_sink "Wombat tentacles")
|
|
pico_add_extra_outputs(kitchen_sink)
|
|
|
|
add_executable(kitchen_sink_extra_stdio ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
|
if (COMMAND suppress_tinyusb_warnings)
|
|
# Explicitly suppress warnings in TinyUSB files which have them (this has to be done
|
|
# from the project that uses them per CMake "feature"). Note the function comes from
|
|
# TinyUSB itself, so we have to guard against TinyUSB not being present with the above if
|
|
suppress_tinyusb_warnings()
|
|
endif()
|
|
target_link_libraries(kitchen_sink_extra_stdio kitchen_sink_libs kitchen_sink_options)
|
|
pico_add_extra_outputs(kitchen_sink_extra_stdio)
|
|
pico_enable_stdio_usb(kitchen_sink_extra_stdio 1)
|
|
pico_enable_stdio_semihosting(kitchen_sink_extra_stdio 1)
|
|
|
|
add_executable(kitchen_sink_copy_to_ram ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
|
pico_set_binary_type(kitchen_sink_copy_to_ram copy_to_ram)
|
|
target_link_libraries(kitchen_sink_copy_to_ram kitchen_sink_libs kitchen_sink_options)
|
|
pico_add_extra_outputs(kitchen_sink_copy_to_ram)
|
|
|
|
add_executable(kitchen_sink_no_flash ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
|
|
pico_set_binary_type(kitchen_sink_no_flash no_flash)
|
|
target_link_libraries(kitchen_sink_no_flash kitchen_sink_libs kitchen_sink_options)
|
|
pico_add_extra_outputs(kitchen_sink_no_flash)
|
|
|
|
add_executable(kitchen_sink_cpp ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink_cpp.cpp)
|
|
target_link_libraries(kitchen_sink_cpp kitchen_sink_libs kitchen_sink_options)
|
|
pico_set_program_name(kitchen_sink_cpp "Wombat tentacles CPP")
|
|
pico_add_extra_outputs(kitchen_sink_cpp)
|