- Add missing libraries to docs/index.h
- Remove duplicate libraries from docs/index.h
- Add new script to match up doxygen groups with the PICO_CONFIG groups
* miscellaneous cleanup:
* cleanup some #ifdefs which were slightly hacky when RP2350 was added; use HAS_ flags in preference to PICO_RP2040/RP2350
* make some dependencies more explicit - i.e. compile if the user doesn't want to include certain libraries
* cleanup some directory A -> directory B relative path names in CMakeLists.txt to be SDK root -> directory B
* add pioasm --version, and print version number in generated files
* Hook up pio version string in Bazel build
---------
Co-authored-by: Armando Montanez <amontanez@google.com>
* Add action to check board headers when modified
* Fix invalid escape warning
* Check for more board header errors before exiting script
* Also run when action file changes
* Add back newline at end of check_all_board_headers.sh
* Remove python install step
* `e.__str__()` -> `str(e)`
Add bin/uf2/dis/hex output files as byproducts, so they get cleaned up
This is only best-effort, because BYPRODUCTS doesn't support generator expressions, so everything must be evaluated at the time pico_add_extra_outputs is called
* Add action to check configs & defines
* Check for all errors before exiting scripts
* Add extract_cmake_functions to the checks
* Fix invalid escape sequence warning
* Bazel add default compliation args for opt and debug. Can be overriden
* Add docstrings for new compilation mode override flags
* Remove cc_args_list shims, which arent needed anymore for cc_feature
* Add Compilation mode overrides to the BAZEL_ONLY_ALLOWLIST, these dont exist in Cmake
* For completness add the fastbuild default options, and override flag
* Remove the default options for fastbuiild, as the bazel doc defaults didnt make much sense, nor work. Leaving these for completness and future addition
* Rename the config and constraint labels from OVERRIDE to REMOVE_DEFS
* Change naming of flags from PICO_COMPILATION_XXX_REMOVE_DEFS to PICO_COMPILATION_NO_XXX_ARGS for OPT, FASTBUILD & DEBUG variants
* Fixup spellling mistakes, and comments
* Fix typo PICO_COMPILATION_NO_FASBUILD_ARGS to FASTBUILD
* Don't include the picobin end block when signing, as picotool will add a new end block anyway
* small whitespace fix
---------
Co-authored-by: Graham Sanderson <graham.sanderson@raspberrypi.com>
This raises a warning with recent CMake versions, and isn't required due to the `pico_add_link_depend` already added for these files
Fixesraspberrypi/picotool#235
This prints out the location of the picotool executable being used
For example:
* `Using picotool from /usr/local/bin/picotool` for a system install
* `Using picotool from /home/name/pico-examples/build/_deps/picotool/picotool` for a picotool fetched by the SDK
* Rework use of pico_cmake_set in board headers to make it slightly less magic/confusing
- prefer "pico_cmake_set(var, value)" over "// pico_cmake_set var = value"
- prefer "pico_cmake_set_default(var, value)" over "// pico_cmake_set_default var = value"
- move these inside the header include guards as CLion complains
Note that the macros are defined in "pico.h" however that is not explicitly included by the board headers; this
will probably confuse some VS code syntax highligting, so lets see how it looks - i'd prefer to avoid having
to include a header just for this
* Update check_board_header.py with the new pico_cmake_set formats
* Add brackets back around `PICO_FLASH_SIZE_BYTES` settings
The python script checks for an exact match between the #define and the pico_cmake_set_default, so fails without the brackets
* Rename to pico_board_cmake_set and pico_board_cmake_set_default
* Fix support for old versions
---------
Co-authored-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>
* Update LwIP to 2.2.1
* Update to mbedtls to 3.6.1
* Update lib/cyw43-driver to 1.1.0
* Support using a more recent version of mbedtls
altcp_tls_mbedtls.c is not compatible with mbedtls 3.x so use a
patched version until this is resolved.
* Make sure MBEDTLS_VERSION_MAJOR is visible to LwIP.
* Test mbedtls in kitchen sink
* Add mbedtls to bazel
* Raise a warning when using the example signing/encryption keys
This is automatically disabled for pico-examples, and can be manually disabled by setting PICO_ALLOW_EXAMPLE_KEYS
- fix bug: pioasm was spilling bit 5 of arg2 into arg1
- make pio_add_program flip bit 5 of a WAIT GPIO instruction if gpio_base is 16
Note: pioasm will encode only the bits 4-0 of arg2 (the GPIO number), however it does indicate whether
0-15 means 0-15 or 32-47. This can only be fixed up when loading the program, and indeed once the GPIO
base is known. pio_can_add_program and friends already detected the cases where this was impossible
* Remove deprecated uses of FetchContent_Populate
Cannot use MakeAvailable as the files shouldn't be added to the build, so instead uses the full signature for FetchContent_Populate
Fixes#2124
* Fix GIT_SUBMODULES_RECURSE for older CMake versions
* Propogate non-default pico_cmake_set_default values through to compile definitions
Add PICO_BOARD_CMAKE_OVERRIDES common scope variable, to contain any pico_cmake_set_default
CMake variables which have been overwritten. This allows passing CMake arguments to the
build, without needing extra target_compile_definitions.
Also add pico_cmake_set_default PICO_RP2350_A2_SUPPORTED to enable/disable the E10 abs-block fix
* Fix more board files missing pico_cmake_set_default PICO_RP2350_A2_SUPPORTED
* Apply @lurch's patch to check_board_header.py
* Initial Pico 2 W Bazel support
Improves compatibility with Pico W and Pico 2 W by fixing issues that
prevented correct linking of wireless libraries.
* Improve correctness and configurability
* Require newer rules_python
* Require rules_python@0.36.0
* Fix missing compatibility expressions
* Minor tweaks
* Minor cleanup
* Update suggested version in Bazel README
* More README tweaks
* Improve Bazel btstack build correctness
* Thow FATAL_ERROR when using post-processing functions after pico_add_extra_outputs
* Remove property definition, and rename to `PICOTOOL_PROCESSING_CONFIGURED` and `picotool_check_configurable`
* done -> configured
* Slight tweak to the config-extraction scripts.
A small logic bug meant they were reporting more false-positive warnings than they should have been.
* Small code tidy-up
- Re-synchronise the PICO_CMAKE_CONFIG: entries with the corresponding PICO_CONFIG: entries
- Fix a silly typo I made in #2002
- Enhance config-extraction scripts to catch similar typos in future
Tweaks compare_build_systems.py slightly so that it does not assume the
root directory of submodules, which arguably made the implementation a
little less intuitive.
* Adds check that ensures the Bazel and CMake Pico SDK version strings
stay in sync.
* Adds check that ensures the Bazel pins for external dependencies stays
in sync with the git submodule pins.
* Updates cyw43-driver pin in Bazel.
* Makes the checks for some build configurability options non-blocking.
Add the key files and partition table JSON to the link dependencies, to ensure the postprocessing is run when any of them are updated. Link dependencies seem to be the simplest way, as the elf file needs re-linking anyway given it has been post-processed, so this doesn't add any unecessary extra processing.
Without this fix, if you modify a pt.json file or a private key, the ouptut binary will not have the correct pt/key.
* [Bazel] Fix bazel build, add presubmit
* Fixes a missing dep in the Bazel build breaking the host build.
* Automagically finds all board headers.
* Improves presubmit script polish for GH Action readiness.
* Adds a GitHub action workflow for the Bazel build.
* Disable failing checks
* Disables Windows, as there's a mix of real build errors and
overly-ambitious checks that don't work on Windows.
* Disables extra checks temporarily since it's currently failing.
* Fix Bazel build breakages
* Adds support for new PICO_DEFAULT_UART_BAUD_RATE option.
* Fixes issues related to Picotool and boot_picoboot_headers.
* Adds pico_float RISC-V pieces to the Bazel build (not yet fully
tested).
* Adds the missing adafruit board header to the Bazel build.
* Exclude hazard3 float test in Bazel validation script
* Restore missing dependency in hardware_boot_lock