From 80a34dc97799961201e6dce20fd58dd08022c032 Mon Sep 17 00:00:00 2001 From: lberki Date: Fri, 13 Oct 2017 09:27:10 +0200 Subject: 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 --- .../lib/rules/apple/AppleCommandLineOptions.java | 10 +++---- .../build/lib/rules/apple/AppleConfiguration.java | 4 +-- .../lib/rules/objc/AppleStaticLibraryTest.java | 8 ++--- .../rules/objc/AppleToolchainSelectionTest.java | 9 ++---- .../build/lib/rules/objc/ObjcProtoAspectTest.java | 12 +++----- .../build/lib/rules/objc/ObjcRuleTestCase.java | 35 +++++----------------- 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); } /** @@ -260,23 +259,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. */ @@ -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"); } -- cgit v1.2.3