Skip to content
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

Clean up some includes #20174

Merged
merged 28 commits into from
Mar 1, 2022
Merged

Clean up some includes #20174

merged 28 commits into from
Mar 1, 2022

Conversation

peterbarker
Copy link
Contributor

Most notable, don't include GCS_MAVLink/GCS.h everywhere. That header pulls a lot of stuff in - and there are only a handful of header files in the system that actually need anything more than the mavlink variable types (e.g. mavlink_message_t) out of it.

Several of the remaining uses of it I think show a flaw in the way we're doing our

#ifndef FOO_FEATURE_ENABLED`
#define FOO_FEATURE_ENABLED XYZZY
#endif

idiom. To get HAL_GCS_ENABLED those headers have to include the massive file and its many includes - probably most of the headers in the system, eventually.

We should consider either (a) moving to putting stuff in AP_HAL/AP_HAL_Boards.h, or doing something similar to AP_Filesystem/AP_Filesystem_Available - but with a better name.... perhaps GCS_MAVLink/config.h?

There's also (c), which is to stop guarding method definitions against the feature required. So e.g. AP_VisualOdom uses #if HAL_GCS_ENABLED whereas AP_OpticalFlow does not, despite them being roughly equivalent in terms of why they're interested in that define.

This has only been tested for compilation / autotest suite.

@peterbarker peterbarker force-pushed the pr/include-fixes branch 7 times, most recently from f315c73 to ddbd2d4 Compare February 26, 2022 05:30
@tridge tridge merged commit 7f74714 into ArduPilot:master Mar 1, 2022
@peterbarker peterbarker deleted the pr/include-fixes branch March 1, 2022 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants