feat: add flat include interface via forwarding headers #133
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a flat include interface for the library, allowing users to include headers using a clean, unified syntax:
Instead of the previous architecture-specific paths like
m0plus/mpu.hpp.How it works
The
include/armcortex/directory contains thin forwarding headers that use preprocessor conditionals to include the correct architecture-specific implementation based on theARM_CORTEX_Mxcompile definition (which is already set by CMake).For example,
include/armcortex/mpu.hpp:Benefits
m0/,m0plus/,m3/,intrinsics/)target_sourcesfor visibilityAvailable headers
armcortex/nvic.hpparmcortex/scb.hpparmcortex/systick.hpparmcortex/exceptions.hpparmcortex/special_regs.hpparmcortex/mpu.hpparmcortex/scnscb.hpparmcortex/barriers.hpparmcortex/byte_reversing.hpparmcortex/debugging.hpparmcortex/hints.hpparmcortex/power_management.hpparmcortex/bit_operations.hpparmcortex/exclusive_access.hpparmcortex/saturation.hpparmcortex/bit_utils.hpparmcortex/intrinsics.hppTesting
The CI should verify that the new include paths work correctly for all architecture configurations.