No mention of `PICO_DEOPTIMIZED_DEBUG` in SDK documentation
The CMake variable PICO_DEOPTIMIZED_DEBUG is not mentioned in the Pico SDK documentation, nor the Getting Started guide.
It is an important part of configuration, especially since leaving it unset results in some debug features not working (at least as of SDK version <1.5.0 when I last checked). I would have expected it to be listed in Section 6.1 - Full List of SDK Configuration Variables.
While I'm at it, I went ahead and assembled a list linking to that and other possible contenders from the SDK source that you may or may not want to make note of in the documentation:
(SDK searched with regex if.*NOT.*PICO_ )
-
PICO_DEOPTIMIZED_DEBUG -
PICO_DEFAULT_BOARD_rp2040 -
PICO_DEFAULT_BOARD_rp2350 -
PICO_DEFAULT_BOARD_rp2350-arm-s -
PICO_DEFAULT_BOARD_rp2350-riscv -
PICO_DEFAULT_BOARD_host -
PICO_DEFAULT_PLATFORM -
PICO_TOOLCHAIN_DIR -
PICO_NO_CMSE -
PICO_CLIB -
PICO_CMAKE_PRELOAD_PLATFORM_DIR -
PICO_PLATFORM_CMAKE_DIR? -
PICO_PLATFORM_CMAKE_FILE? -
PICO_TIME_NO_ALARM_SUPPORT -
PICO_DEFAULT_DOUBLE_IMPL -
PICO_DEFAULT_BINARY_TYPE -
PICO_LINKER_SCRIPT_PATH - ~
PICO_FLASH_SIZE_BYTES~ -
PICO_SDK_PATH -
PICO_SDK_FETCH_FROM_GIT -
PICO_SDK_FETCH_FROM_GIT_PATH -
PICO_SDK_FETCH_FROM_GIT_TAG -
PICO_EXAMPLES_PATH - ~
PICO_BTSTACK_PATH~ - ~
PICO_CYW43_DRIVER_PATH~ - ~
PICO_LWIP_PATH~ -
PICO_LWIP_CONTRIB_PATH - ~
PICO_MBEDTLS_PATH~ - ~
PICO_TINYUSB_PATH~
- PICO_BTSTACK_PATH
- PICO_CYW43_DRIVER_PATH
- PICO_LWIP_PATH
- PICO_MBEDTLS_PATH
- PICO_TINYUSB_PATH
These ones were added in #2405 🙂
- PICO_FLASH_SIZE_BYTES
This one has a PICO_CONFIG: entry here i.e. it appears in section 5.1 of https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf
(SDK searched with regex
if.*NOT.*PICO_)
I decided to use a slightly fancier approach find_unlabelled_pico_cmake_vars.py.txt 😃 which found some variables not included in your list above... but I have NO idea which of these should be documented, and which are "false positives" i.e. internal-use-only.
- PICO_32BIT
- PICO_BOARD_CMAKE_FILE
- PICO_BOARD_HEADER_FILE
- PICO_BOOT_STAGE2_COMPILE_TIME_CHOICE_NAME
- PICO_BUILD_DOCS
- PICO_CMSIS_CORE_PATH
- PICO_CMSIS_DEVICE
- PICO_COMBINED_DOCS
- PICO_COMPILER_SYSROOT
- PICO_CYW43_SUPPORTED
- PICO_C_COMPILER_IS_CLANG
- PICO_C_COMPILER_IS_GNU
- PICO_DEBUG_INFO_IN_RELEASE
- PICO_DEFAULT_COMPILER
- PICO_DEFAULT_FLASH_SIZE_BYTES
- PICO_MBEDTLS_CONFIG_FILE
- PICO_PLATFORM_PREFIX
- PICO_PREVIOUS_CMAKE_TOOLCHAIN_FILE
- PICO_PREVIOUS_PLATFORM
- PICO_PROMOTE_COMMON_SCOPE_VARS
- PICO_RISCV
- PICO_RP2040
- PICO_RP2350
- PICO_SAVED_PLATFORM
- PICO_SAVED_PLATFORM_PREFIX
- PICO_SDK_INIT_CMAKE_FILE
- PICO_SDK_TESTS_ENABLED
- PICO_SDK_TOP_LEVEL_PROJECT
- PICO_SYMLINK_ELF_AS_FILENAME
This one has a PICO_CONFIG: entry here i.e. it appears in section 5.1 of https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf
Actually that one lives in Section 6.1 🙂 Good catch, I missed that when drafting my list above.
I decided to use a slightly fancier approach find_unlabelled_pico_cmake_vars.py.txt 😃
😁 My reasoning for searching for if.*NOT.*PICO_ was that would specifically show me CMake options which (probably) have a default value (but imply that the user can override them). I also do not know which of my list (or yours) are relevant, but a few seem important on first glance.
And just to clarify for the curious, both sections in the documentation exist:
-
Section 5.1 - Full List of SDK Configuration Defines (SDK
#definemacros)
and - Section 6.1 - Full List of SDK Configuration Variables (CMake options, what both our lists are referencing)
fix merged into develop; will be in the next docs release