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

args module #437

Open
wants to merge 26 commits into
base: main
Choose a base branch
from
Open

args module #437

wants to merge 26 commits into from

Conversation

grafikrobot
Copy link
Member

Proposed changes

  • New: Add args module for common handling of both native and Jam side
    command line arguments.
  • Rewrite the command like argument parsing to use the Lyra library. The result
    is that arguments from Jam and native are integrated and available with the
    built-in -h help.

Goal of changes is to improve available help output and eventually replace the --help handling. This uses the external Lyra CLI parsing library.

Types of changes

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Documentation content changes
  • Other (please describe):

Checklist

  • I searched the discussions
  • I searched the closed and open issues
  • I read the contribution guidelines
  • I added myself to the copyright attributions for significant changes
  • I checked that tests pass locally with my changes
  • I added tests that prove my fix is effective or that my feature works
  • I added necessary documentation (if appropriate)

Further comments

This is a step towards adding more native side functionality, like EcoStd compliance. This change standardizes the way command line arguments are handled avoiding the ad hoc matching of ARGV.

This completes rewriting the command line argument parsing to replace it with the Lyra library. The main() changes now allow for parsing project jamfiles before printing help text. And hence allow for all jam side args to be displayed with -h.
Depending when the -d and -n options are given one can ovewrite the other. This change guarantees that the -d flag can't be ovewritten by a -n flag.
The old clangs have problems with the Lyra library and SFINAE. To avoid increased development time to workarounds dropping support for them.
@grafikrobot grafikrobot added the enhancement New feature or request label Mar 13, 2025
@grafikrobot grafikrobot self-assigned this Mar 13, 2025
@grafikrobot grafikrobot changed the title Feature/args args module Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 🏗 In progress
Development

Successfully merging this pull request may close these issues.

1 participant