-
Notifications
You must be signed in to change notification settings - Fork 1.3k
CMake Build Support for arch/arm/rp2040 & Raspberry Pi Pico #16212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Angelo Rison K <[email protected]>
[Experimental Bot, please feedback here] This PR does not fully meet the NuttX requirements yet, specifically in the Testing section. While the PR author has provided details about their build environment and reproduction steps, the build fails. A successful build and accompanying logs demonstrating the functionality are essential before the PR can be considered complete. Here's a breakdown of what needs to be addressed:
Recommendations for the PR Author:
By addressing these points, the PR will better meet the NuttX requirements and be ready for review. |
I don't see any
|
@roskuttan Why are your Cmakefiles not aligned with Make.defs? I created a branch for building rp2040 with CMake seems to work. master...simbit18:nuttx:simbit18-rp2040 I don't have a Raspberry Pi Pico board so you have to do the tests.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@roskuttan You must take the Make.defs file as a reference.
CMake must be aligned with Make.
e.g. these files
boards/arm/rp2040/common/src/Make.defs
boards/arm/rp2040/common/src/CMakeLists.txt
are not aligned.
The behaviour of CMake must be the same as Make.
Otherwise maintenance becomes a circle of Hell.
This tool nxmake2cmake.py by @raiden00pl can help you speed up the process of converting to CMake.
#9782
Summary
This change introduces CMake build support for the Raspberry Pi Pico board in Apache NuttX to provide an alternative build system widely used in modern embedded development, enhancing accessibility and maintainability.
The functional part of the code being changed includes the build configuration for the RP2040 architecture and the Raspberry Pi Pico board.
This work is inspired by existing CMake implementations for other boards in the NuttX ecosystem.
Impact
New Feature Added?: YES - Adds CMake build support as an optional build method for the Raspberry Pi Pico.
Impact on User: YES - Users familiar with CMake can adopt this build method, but the existing Make-based system remains unaffected.
Impact on Build: YES - Introduces an alternative build process requiring CMake installation, with potential configuration adjustments (see Testing).
Impact on Hardware: YES - Specific to the Raspberry Pi Pico and RP2040 architecture, with no impact on other hardware.
Impact on Documentation: NO - As there is existing documentation demonstrates the use of cmake in nuttx
Impact on Security: NO - No security implications as this is a build system enhancement.
Impact on Compatibility: YES - Intended to be compatible with existing builds, but current issues prevent full compatibility (see Testing).
Testing
cmake -B build -DBOARD_CONFIG=raspberrypi-pico:nsh -GNinja
cmake --build build -t clean -j12 && cmake --build build -j12
Testing logs :