Skip to content

fix(asn1c): include generated output as system headers#7002

Merged
waruqi merged 1 commit intoxmake-io:devfrom
gibbz00:isystem_requires
Nov 7, 2025
Merged

fix(asn1c): include generated output as system headers#7002
waruqi merged 1 commit intoxmake-io:devfrom
gibbz00:isystem_requires

Conversation

@gibbz00
Copy link
Contributor

@gibbz00 gibbz00 commented Nov 6, 2025

Prevents clang-tidy from reporting lint errors in them.

Prevents clang-tidy from reporting lint errors in them.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @gibbz00, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue where clang-tidy was flagging lint errors in automatically generated asn1c output files. By modifying the xmake build rule to designate these generated directories as system headers, the build system will now correctly instruct clang-tidy and other tools to bypass linting checks on this code, leading to a cleaner and more focused error reporting experience for developer-written code.

Highlights

  • Build Configuration Update: The xmake build rule for asn1c has been updated to treat generated output directories as system headers.
  • Linting Suppression: This change prevents clang-tidy from reporting lint errors in the automatically generated asn1c files, as system headers are typically excluded from such checks.
  • Compiler Flag Adjustment: The includedirs configuration was replaced with sysincludedirs in both the target's directory addition and the batchcmds:compile function within the asn1c rule.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The change to use sysincludedirs instead of includedirs is correct for preventing lint errors in generated code. However, I've identified a significant performance issue in the rule's implementation. The current logic will cause repeated compilations of generated files if a target includes multiple .asn1 files. I've provided a detailed comment with a suggested refactoring to address this.

@waruqi waruqi added this to the v3.0.5 milestone Nov 6, 2025
@waruqi waruqi merged commit 596e756 into xmake-io:dev Nov 7, 2025
20 of 22 checks passed
@gibbz00 gibbz00 deleted the isystem_requires branch November 7, 2025 06:17
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.

2 participants