Skip to content

Add XCConfig parsing support#41

Merged
EvanBacon merged 1 commit into
mainfrom
@evanbacon/XCConfig
Feb 27, 2026
Merged

Add XCConfig parsing support#41
EvanBacon merged 1 commit into
mainfrom
@evanbacon/XCConfig

Conversation

@EvanBacon
Copy link
Copy Markdown
Owner

Summary

  • Adds a new xcconfig module for parsing and manipulating Xcode configuration files (.xcconfig)
  • Implements single-pass parser with support for #include/#include? directives, conditional settings, and variable expansion
  • Integrates with XCBuildConfiguration to read and flatten base configuration files

Features

  • Parser: Single-pass parser for xcconfig format
  • Include resolution: #include and #include? directive support with file path resolution
  • Conditional settings: Support for [sdk=*], [arch=*], [config=*] conditions
  • Variable expansion: $(VAR) references and $(inherited) keyword
  • Build settings flattening: Merge includes with optional platform filtering
  • Writer: Serialize parsed configs back to xcconfig format

Test plan

  • Unit tests for parser with various xcconfig formats
  • Tests for include directive resolution
  • Tests for conditional settings filtering
  • Tests for writer round-trip

🤖 Generated with Claude Code

Adds a new xcconfig module for parsing and manipulating Xcode configuration
files (.xcconfig). Features include:
- Single-pass parser for xcconfig format
- #include and #include? directive support with file resolution
- Conditional settings ([sdk=*], [arch=*], [config=*])
- Variable expansion and $(inherited) support
- Build settings flattening with optional platform filtering
- Integration with XCBuildConfiguration for baseConfigurationReference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@EvanBacon EvanBacon merged commit e7d59cd into main Feb 27, 2026
1 check passed
@EvanBacon EvanBacon deleted the @evanbacon/XCConfig branch February 27, 2026 20:42
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.

1 participant