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

Add ability to specify "full" scheme actions with TargetScheme #832

Closed
wants to merge 7 commits into from

Conversation

brentleyjones
Copy link
Collaborator

FYI: I'll break this in a couple PRs (code cleanup, adding parallelizeBuild, adding some test fixtures, and finally adding the full scheme support to target) if everything looks good.


This PR adds support for specifying full scheme configuration to target: Target: scheme:. If any of the actions are specified (e.g. build, test, profile) then that block will be used the same as a top level scheme declaration. For any steps not specified they will use the existing helper/defaulting logic.

This allows one to do something like this:

targets:
  App:
    scheme:
      build:
        targets:
          App: all
      run:
        commandLineArguments:
          "-enable-perf-logging": false
        environmentVariables:
          - variable: TSAN_OPTIONS
            value: suppressions=$(SRCROOT)/tsan-suppressions.txt
            isEnabled: true
      test:
        targets:
         - Apps Tests
        gatherCoverageData: true
      profile:
        config: Profile
      archive:
        config: Release

This should help address issue like #656.

Instead of duplicating defaults in `TargetScheme`, use optional values there and default in `SchemeGenerator`.
This is at the same level as `buildImplicitDependencies` and deserves to be part of the easy-mode scheme creation.
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
parallelizeBuildables = "NO"
buildImplicitDependencies = "NO">
Copy link
Owner

Choose a reason for hiding this comment

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

Looks like the default changed

Copy link
Owner

Choose a reason for hiding this comment

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

Never-mind looks like you set it explicitly down below

@yonaskolb
Copy link
Owner

@brentleyjones love this! 👏

@brentleyjones
Copy link
Collaborator Author

Some things came up, but I'll get to this soon.

@brentleyjones
Copy link
Collaborator Author

If this is still desired, someone else will have to re-submit it. I no longer use XcodeGen.

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