aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2017-10-13 09:27:10 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-10-13 13:53:25 +0200
commit80a34dc97799961201e6dce20fd58dd08022c032 (patch)
tree0e3820851ea178df8f40888105c84ddbe5538532
parent542d4abce1673eadc76764f59d8bf0553c0dec38 (diff)
Put the platform version from the options into the output directory name instead of the one computed based on xcode_config.
RELNOTES: None. PiperOrigin-RevId: 172064337
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java8
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleToolchainSelectionTest.java9
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java12
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java35
6 files changed, 23 insertions, 55 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
index c6ea84be26..1293c102c1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
@@ -390,12 +390,12 @@ public class AppleCommandLineOptions extends FragmentOptions {
/**
* Returns whether the minimum OS version is explicitly set for the current platform.
*/
- public boolean isMinimumOsVersionExplicitlySet() {
+ public DottedVersion getMinimumOsVersion() {
switch (applePlatformType) {
- case IOS: return iosMinimumOs != null;
- case MACOS: return macosMinimumOs != null;
- case TVOS: return tvosMinimumOs != null;
- case WATCHOS: return watchosMinimumOs != null;
+ case IOS: return iosMinimumOs;
+ case MACOS: return macosMinimumOs;
+ case TVOS: return tvosMinimumOs;
+ case WATCHOS: return watchosMinimumOs;
default: throw new IllegalStateException();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index fd39b65fe5..752bf64e48 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -575,8 +575,8 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
components.add(applePlatformType.toString().toLowerCase());
components.add(appleSplitCpu);
- if (!isMandatoryMinimumVersion() || options.isMinimumOsVersionExplicitlySet()) {
- components.add("min" + getMinimumOsForPlatformType(applePlatformType));
+ if (options.getMinimumOsVersion() != null) {
+ components.add("min" + options.getMinimumOsVersion());
}
}
if (shouldDistinguishOutputDirectory()) {
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
index 236a9e6576..80ffb24d51 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java
@@ -241,12 +241,8 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase {
"--crosstool_top=//tools/osx/crosstool:crosstool");
CommandAction action = (CommandAction) lipoLibAction("//package:test");
- String i386Prefix =
- configurationBin("i386", ConfigurationDistinguisher.APPLEBIN_IOS,
- DEFAULT_IOS_SDK_VERSION);
- String x8664Prefix =
- configurationBin("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS,
- DEFAULT_IOS_SDK_VERSION);
+ String i386Prefix = configurationBin("i386", ConfigurationDistinguisher.APPLEBIN_IOS, null);
+ String x8664Prefix = configurationBin("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null);
CommandAction i386BinAction =
(CommandAction)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleToolchainSelectionTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleToolchainSelectionTest.java
index 452c294446..3133cc37d6 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/AppleToolchainSelectionTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/AppleToolchainSelectionTest.java
@@ -77,8 +77,7 @@ public class AppleToolchainSelectionTest extends ObjcRuleTestCase {
Action lipoAction = actionProducingArtifact("//a:bin", "_lipobin");
String x8664Bin =
- configurationBin("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, DEFAULT_IOS_SDK_VERSION)
- + "a/bin_bin";
+ configurationBin("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null) + "a/bin_bin";
Artifact binArtifact = getFirstArtifactEndingWith(lipoAction.getInputs(), x8664Bin);
CommandAction linkAction = getGeneratingSpawnAction(binArtifact);
CppLinkAction ccArchiveAction =
@@ -101,8 +100,7 @@ public class AppleToolchainSelectionTest extends ObjcRuleTestCase {
.write();
Action lipoAction = actionProducingArtifact("//a:bin", "_lipobin");
String armv7Bin =
- configurationBin("armv7", ConfigurationDistinguisher.APPLEBIN_IOS, DEFAULT_IOS_SDK_VERSION)
- + "a/bin_bin";
+ configurationBin("armv7", ConfigurationDistinguisher.APPLEBIN_IOS, null) + "a/bin_bin";
Artifact binArtifact = getFirstArtifactEndingWith(lipoAction.getInputs(), armv7Bin);
CommandAction linkAction = getGeneratingSpawnAction(binArtifact);
CppLinkAction ccArchiveAction =
@@ -129,8 +127,7 @@ public class AppleToolchainSelectionTest extends ObjcRuleTestCase {
.write();
Action lipoAction = actionProducingArtifact("//a:bin", "_lipobin");
String armv64Bin =
- configurationBin("arm64", ConfigurationDistinguisher.APPLEBIN_IOS,
- DEFAULT_IOS_SDK_VERSION)
+ configurationBin("arm64", ConfigurationDistinguisher.APPLEBIN_IOS, null)
+ "a/bin_bin";
Artifact binArtifact = getFirstArtifactEndingWith(lipoAction.getInputs(), armv64Bin);
CommandAction linkAction = getGeneratingSpawnAction(binArtifact);
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
index c19475834c..b66630017e 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspectTest.java
@@ -80,10 +80,8 @@ public final class ObjcProtoAspectTest extends ObjcRuleTestCase {
PathFragment includePath = header.getExecPath().getParentDirectory();
PathFragment genIncludePath =
PathFragment.create(
- configurationGenfiles(
- "x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, DEFAULT_IOS_SDK_VERSION)
- + "/"
- + includePath);
+ configurationGenfiles("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null)
+ + "/" + includePath);
assertThat(objcProtoProvider.getProtobufHeaderSearchPaths())
.containsExactly(includePath, genIncludePath);
@@ -162,8 +160,7 @@ public final class ObjcProtoAspectTest extends ObjcRuleTestCase {
assertThat(Artifact.toExecPaths(objcProtoProvider.getPortableProtoFilters()))
.containsExactly(
- configurationGenfiles(
- "x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, DEFAULT_IOS_SDK_VERSION)
+ configurationGenfiles("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null)
+ "/x/_proto_filters/objc_proto/generated_filter_file.pbascii");
}
@@ -203,8 +200,7 @@ public final class ObjcProtoAspectTest extends ObjcRuleTestCase {
assertThat(Artifact.toExecPaths(objcProtoProvider.getPortableProtoFilters()))
.containsAllOf(
"x/filter.pbascii",
- configurationGenfiles(
- "x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, DEFAULT_IOS_SDK_VERSION)
+ configurationGenfiles("x86_64", ConfigurationDistinguisher.APPLEBIN_IOS, null)
+ "/x/_proto_filters/objc_proto_2/generated_filter_file.pbascii");
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index 245105e020..cdbc8833b7 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -89,7 +89,6 @@ import com.google.devtools.build.lib.rules.apple.ApplePlatform;
import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType;
import com.google.devtools.build.lib.rules.apple.AppleToolchain;
import com.google.devtools.build.lib.rules.apple.DottedVersion;
-import com.google.devtools.build.lib.rules.apple.XcodeVersionProperties;
import com.google.devtools.build.lib.rules.cpp.CppCompileAction;
import com.google.devtools.build.lib.rules.cpp.CppLinkAction;
import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs;
@@ -202,23 +201,24 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
private String configurationDir(
String arch, ConfigurationDistinguisher configurationDistinguisher,
DottedVersion minOsVersion) {
+ String minOsSegment = minOsVersion == null ? "" : "-min" + minOsVersion;
switch (configurationDistinguisher) {
case UNKNOWN:
return String.format("%s-out/ios_%s-fastbuild/", TestConstants.PRODUCT_NAME, arch);
case APPLEBIN_IOS:
return String.format(
- "%1$s-out/ios-%2$s-min%4$s-%3$s-ios_%2$s-fastbuild/",
+ "%1$s-out/ios-%2$s%4$s-%3$s-ios_%2$s-fastbuild/",
TestConstants.PRODUCT_NAME,
arch,
configurationDistinguisher.toString().toLowerCase(Locale.US),
- minOsVersion);
+ minOsSegment);
case APPLEBIN_WATCHOS:
return String.format(
- "%1$s-out/watchos-%2$s-min%4$s-%3$s-watchos_%2$s-fastbuild/",
+ "%1$s-out/watchos-%2$s%4$s-%3$s-watchos_%2$s-fastbuild/",
TestConstants.PRODUCT_NAME,
arch,
configurationDistinguisher.toString().toLowerCase(Locale.US),
- minOsVersion);
+ minOsSegment);
default:
throw new AssertionError();
}
@@ -236,8 +236,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
*/
protected String configurationBin(
String arch, ConfigurationDistinguisher configurationDistinguisher) {
- return configurationBin(arch, configurationDistinguisher,
- defaultMinimumOs(configurationDistinguisher));
+ return configurationBin(arch, configurationDistinguisher, null);
}
/**
@@ -261,23 +260,6 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
}
/**
- * Returns the default minimum os version that dependencies under a given configuration
- * distinguisher (and thus a given platform type) will be compiled for.
- */
- protected static DottedVersion defaultMinimumOs(
- ConfigurationDistinguisher configurationDistinguisher) {
- switch (configurationDistinguisher) {
- case UNKNOWN:
- case APPLEBIN_IOS:
- return DEFAULT_IOS_SDK_VERSION;
- case APPLEBIN_WATCHOS:
- return DottedVersion.fromString(XcodeVersionProperties.DEFAULT_WATCHOS_SDK_VERSION);
- default:
- throw new AssertionError();
- }
- }
-
- /**
* Returns the genfiles dir for iOS builds in the root architecture.
*/
protected static String rootConfigurationGenfiles() {
@@ -3626,10 +3608,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase {
assertThat(Artifact.toExecPaths(genOAction.getInputs()))
.contains(
- configurationGenfiles(
- "x86_64",
- ConfigurationDistinguisher.UNKNOWN,
- defaultMinimumOs(ConfigurationDistinguisher.UNKNOWN))
+ configurationGenfiles("x86_64", ConfigurationDistinguisher.UNKNOWN, null)
+ "/x/gen.m");
}