You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolves#3013
The proposal is to introduce a `xcschemes.autogeneration_config` macro
to allow consumers to configure scheme auto-generation. I'm addressing
my particular use case of wanting to exclude certain schemes based on
patterns in their names but I'm open to discuss other
configurations/exclusion patterns folks might want to add here.
In order to test this note how running (from `examples/integration`)
`bazel run //:xcodeproj-incremental-bazel-sim_arm64` generates a project
that **does not** contain the undesired schemes `UndesiredScheme_Swift`
and `UnwantedScheme_Swift` even though the respective targets do exist.
---------
Signed-off-by: Thiago Cruz <thiago@squareup.com>
Co-authored-by: Brentley Jones <github@brentleyjones.com>
Creates an `.xcodeproj` file in the workspace when run.
@@ -117,6 +117,7 @@ xcodeproj(
117
117
| <aid="xcodeproj-project_name"></a>project_name | Optional. The name to use for the `.xcodeproj` file.<br><br>If not specified, the value of the `name` argument is used. |`None`|
118
118
| <aid="xcodeproj-project_options"></a>project_options | Optional. A value returned by `project_options`. |`None`|
119
119
| <aid="xcodeproj-scheme_autogeneration_mode"></a>scheme_autogeneration_mode | Optional. Specifies how Xcode schemes are automatically generated:<br><br><ul> <li> `auto`: If no custom schemes are specified, via `schemes`, an Xcode scheme will be created for every buildable target. If custom schemes are provided, no autogenerated schemes will be created. </li> <li> `none`: No schemes are automatically generated. </li> <li> `all`: A scheme is generated for every buildable target even if custom schemes are provided. </li> </ul> |`"auto"`|
120
+
| <aid="xcodeproj-scheme_autogeneration_config"></a>scheme_autogeneration_config | Optional. A value returned by [`xcschemes.autogeneration_config`](#xcschemes.autogeneration_config).<br><br>Allows further configuration of `scheme_autogeneration_mode`. |`{}`|
120
121
| <aid="xcodeproj-schemes"></a>schemes | Optional. A `list` of values returned by `xcode_schemes.scheme`.<br><br>This and the `scheme_autogeneration_mode` argument together customize how schemes for targets are generated, when using `generation_mode = "legacy"`.<br><br>Target labels listed in the schemes need to be from the transitive dependencies of the targets specified in the `top_level_targets` argument. |`[]`|
121
122
| <aid="xcodeproj-target_name_mode"></a>target_name_mode | Optional. Specifies how Xcode targets names are represented:<br><br><ul> <li> `auto`: Use the product name if it is available and there is no collision. Otherwise select the target name from the label. And if there is a collision, use the full label. </li> <li> `label`: Always use full label for Xcode targets names. </li> </ul> |`"auto"`|
122
123
| <aid="xcodeproj-top_level_targets"></a>top_level_targets | A `list` of a list of top-level targets.<br><br>Each target can be specified as either a `Label` (or label-like `string`), a value returned by `top_level_target`, or a value returned by `top_level_targets`. | none |
@@ -236,6 +237,28 @@ Defines a command-line argument.
236
237
| <aid="xcschemes.arg-literal_string"></a>literal_string | Whether `value` should be interpreted as a literal string.<br><br>If `True`, any spaces will be escaped. This means that `value` will be passed to the launch target as a single string. If `False`, any spaces will not be escaped. This is useful to group multiple arguments under a single checkbox in Xcode. |`True`|
0 commit comments