diff options
Diffstat (limited to 'src/main/java')
3 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java index 6c9800fbc8..2c4dccca31 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java @@ -214,6 +214,15 @@ public class ObjcCommandLineOptions extends FragmentOptions { ) public boolean deviceDebugEntitlements; + @Option( + name = "deprecated_generate_xcode_project", + defaultValue = "true", + category = "flags", + help = + "If set, will generate xcode project for targets that support this. Will be removed soon." + ) + public boolean generateXcodeProject; + /** * Specifies the circumstances under which a CROSSTOOL is used for objc in this configuration. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java index 3e4c260c8c..fdb9985d86 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java @@ -82,6 +82,7 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment { private final HeaderDiscovery.DotdPruningMode dotdPruningPlan; private final boolean experimentalHeaderThinning; private final Label objcHeaderScannerTool; + private final boolean generateXcodeProject; ObjcConfiguration(ObjcCommandLineOptions objcOptions, BuildConfiguration.Options options, @Nullable BlazeDirectories directories) { @@ -122,6 +123,7 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment { : HeaderDiscovery.DotdPruningMode.DO_NOT_USE; this.experimentalHeaderThinning = objcOptions.experimentalObjcHeaderThinning; this.objcHeaderScannerTool = objcOptions.objcHeaderScannerTool; + this.generateXcodeProject = objcOptions.generateXcodeProject; } /** @@ -355,4 +357,11 @@ public class ObjcConfiguration extends BuildConfiguration.Fragment { public Label getObjcHeaderScannerTool() { return objcHeaderScannerTool; } + + /** + * Returns {@code true} if an xcodegen project should be added to a target's files to build. + */ + public boolean generateXcodeProject() { + return this.generateXcodeProject; + } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/XcodeSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/XcodeSupport.java index 9d75d1168e..0be33e256c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/XcodeSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/XcodeSupport.java @@ -87,7 +87,10 @@ public final class XcodeSupport { */ XcodeSupport addFilesToBuild(NestedSetBuilder<Artifact> filesToBuild) throws InterruptedException { - filesToBuild.add(ruleContext.getImplicitOutputArtifact(PBXPROJ)); + if (ObjcRuleClasses.objcConfiguration(ruleContext).generateXcodeProject()) { + filesToBuild.add(ruleContext.getImplicitOutputArtifact(PBXPROJ)); + } + return this; } |