aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Dmitry Shevchenko <dmishe@google.com>2016-07-27 21:19:35 +0000
committerGravatar Adam Michael <ajmichael@google.com>2016-07-28 18:36:30 -0400
commit47281b4a1e3be5077e13f5d2d1986c6105c26365 (patch)
treeb64390787a41c8f8b902e012d507648234a47176 /src/main/java
parent0e75edb5a314fd2b8b977432d534ebe4027da548 (diff)
*** Reason for rollback *** Broke Play Books tests *** Original change description *** Include SwiftSupport directory into the IPA when an app contains Swift. * To pass App Store validation, an app that contains Swift code must have a SwiftSupport directory at the root of the IPA. -- MOS_MIGRATED_REVID=128627984
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java47
3 files changed, 14 insertions, 57 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java b/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java
index e00d64bf8d..a5a9a71240 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/Bundling.java
@@ -45,6 +45,7 @@ import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.PathFragment;
+
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -220,17 +221,6 @@ final class Bundling {
return mergeZipBuilder.build();
}
- private NestedSet<Artifact> rootMergeZips() {
- NestedSetBuilder<Artifact> rootMergeZipsBuilder =
- NestedSetBuilder.<Artifact>stableOrder().addTransitive(objcProvider.get(ROOT_MERGE_ZIP));
-
- if (objcProvider.is(USES_SWIFT)) {
- rootMergeZipsBuilder.add(intermediateArtifacts.swiftSupportZip());
- }
-
- return rootMergeZipsBuilder.build();
- }
-
private NestedSet<Artifact> bundleInfoplistInputs() {
if (objcProvider.hasAssetCatalogs()) {
infoplistInputs.add(intermediateArtifacts.actoolPartialInfoplist());
@@ -338,7 +328,9 @@ final class Bundling {
NestedSet<BundleableFile> binaryStringsFiles = binaryStringsFiles();
NestedSet<BundleableFile> dynamicFrameworks = dynamicFrameworkFiles();
NestedSet<Artifact> mergeZips = mergeZips(actoolzipOutput);
- NestedSet<Artifact> rootMergeZips = rootMergeZips();
+ NestedSet<Artifact> rootMergeZips =
+ NestedSetBuilder.<Artifact>stableOrder()
+ .addTransitive(objcProvider.get(ROOT_MERGE_ZIP)).build();
bundleFilesBuilder
.addAll(binaryStringsFiles)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
index 0ccc9d2752..7efef81544 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IntermediateArtifacts.java
@@ -320,14 +320,6 @@ public final class IntermediateArtifacts {
}
/**
- * Same as {@link #swiftFrameworksFileZip()} but used to put Swift dylibs at a different location
- * in SwiftSupport directory at the top of the IPA.
- */
- public Artifact swiftSupportZip() {
- return appendExtension(".swiftsupport.zip");
- }
-
- /**
* The temp zipped debug symbol bundle file which contains debug symbols generated by dsymutil.
*/
public Artifact tempDsymBundleZip(DsymOutputType dsymOutputType) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index 39e6d2ce13..d52dad9ed1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -22,9 +22,6 @@ import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.ReleaseBu
import static com.google.devtools.build.lib.rules.objc.ObjcRuleClasses.ReleaseBundlingRule.EXTRA_ENTITLEMENTS_ATTR;
import static com.google.devtools.build.lib.rules.objc.TargetDeviceFamily.UI_DEVICE_FAMILY_VALUES;
-import com.dd.plist.NSArray;
-import com.dd.plist.NSDictionary;
-import com.dd.plist.NSObject;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
@@ -66,8 +63,14 @@ import com.google.devtools.build.lib.rules.objc.BundleSupport.ExtraActoolArgs;
import com.google.devtools.build.lib.rules.objc.Bundling.Builder;
import com.google.devtools.build.lib.shell.ShellUtils;
import com.google.devtools.build.xcode.xcodegen.proto.XcodeGenProtos.XcodeprojBuildSetting;
+
+import com.dd.plist.NSArray;
+import com.dd.plist.NSDictionary;
+import com.dd.plist.NSObject;
+
import java.util.List;
import java.util.Map.Entry;
+
import javax.annotation.Nullable;
/**
@@ -296,7 +299,6 @@ public final class ReleaseBundlingSupport {
registerCopyDsymPlistAction(dsymOutputType);
registerCopyLinkmapFilesAction();
registerSwiftStdlibActionsIfNecessary();
- registerSwiftSupportActionsIfNecessary();
registerEmbedLabelPlistAction();
registerEnvironmentPlistAction();
@@ -1049,13 +1051,10 @@ public final class ReleaseBundlingSupport {
AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class);
- CustomCommandLine.Builder commandLine =
- CustomCommandLine.builder()
- .addPath(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
- .add("Frameworks")
- .add("--platform")
- .add(AppleToolchain.swiftPlatform(appleConfiguration))
- .addExecPath("--scan-executable", intermediateArtifacts.combinedArchitectureBinary());
+ CustomCommandLine.Builder commandLine = CustomCommandLine.builder()
+ .addPath(intermediateArtifacts.swiftFrameworksFileZip().getExecPath())
+ .add("--platform").add(AppleToolchain.swiftPlatform(appleConfiguration))
+ .addExecPath("--scan-executable", intermediateArtifacts.combinedArchitectureBinary());
ruleContext.registerAction(
ObjcRuleClasses.spawnAppleEnvActionBuilder(ruleContext)
@@ -1067,32 +1066,6 @@ public final class ReleaseBundlingSupport {
.build(ruleContext));
}
- /** Registers an action to copy Swift standard library dylibs into SwiftSupport root directory. */
- private void registerSwiftSupportActionsIfNecessary() {
- if (!objcProvider.is(USES_SWIFT)) {
- return;
- }
-
- AppleConfiguration appleConfiguration = ruleContext.getFragment(AppleConfiguration.class);
-
- CustomCommandLine.Builder commandLine =
- CustomCommandLine.builder()
- .addPath(intermediateArtifacts.swiftSupportZip().getExecPath())
- .add("SwiftSupport/" + AppleToolchain.swiftPlatform(appleConfiguration))
- .add("--platform")
- .add(AppleToolchain.swiftPlatform(appleConfiguration))
- .addExecPath("--scan-executable", intermediateArtifacts.combinedArchitectureBinary());
-
- ruleContext.registerAction(
- ObjcRuleClasses.spawnAppleEnvActionBuilder(ruleContext)
- .setMnemonic("SwiftCopySwiftSupport")
- .setExecutable(attributes.swiftStdlibToolWrapper())
- .setCommandLine(commandLine.build())
- .addOutput(intermediateArtifacts.swiftSupportZip())
- .addInput(intermediateArtifacts.combinedArchitectureBinary())
- .build(ruleContext));
- }
-
private String extractPlistCommand(Artifact provisioningProfile) {
return "security cms -D -i " + ShellUtils.shellEscape(provisioningProfile.getExecPathString());
}