diff options
author | cpeyser <cpeyser@google.com> | 2017-07-18 21:36:52 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-07-19 10:22:03 +0200 |
commit | 2e647eed66771d549aab53faeb04ddad5719849b (patch) | |
tree | 6574314012c95c18ef77ee0c740e5ee04eb40db9 | |
parent | b747b1b864bd87f6b24e596e90d126a47ebb243b (diff) |
Turn on objc crosstool use in Bazel by default.
PiperOrigin-RevId: 162388184
4 files changed, 23 insertions, 33 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 5e982eb90f..983e117c8f 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 @@ -275,7 +275,7 @@ public class ObjcCommandLineOptions extends FragmentOptions { @Option( name = "experimental_objc_crosstool", - defaultValue = "off", + defaultValue = "all", documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, effectTags = {OptionEffectTag.CHANGES_INPUTS}, metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE}, 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 887b941e40..19e2013ede 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 @@ -26,9 +26,9 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.CommandAction; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.actions.SymlinkAction; -import com.google.devtools.build.lib.packages.util.MockObjcSupport; import com.google.devtools.build.lib.rules.apple.AppleConfiguration.ConfigurationDistinguisher; import com.google.devtools.build.lib.rules.cpp.CppLinkAction; +import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; import com.google.devtools.build.lib.testutil.Scratch; import java.io.IOException; import java.util.Set; @@ -69,9 +69,7 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase { @Test public void testCanUseCrosstool() throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, - "--experimental_objc_crosstool=all"); + useConfiguration(ObjcCrosstoolMode.ALL); RULE_TYPE.scratchTarget(scratch, "srcs", "['a.m']"); // If the target is indeed using the c++ backend, then its archive action should be a @@ -84,10 +82,7 @@ public class AppleStaticLibraryTest extends ObjcRuleTestCase { @Test public void testCanUseCrosstool_multiArch() throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, - "--experimental_objc_crosstool=all", - "--ios_multi_cpus=i386,x86_64"); + useConfiguration(ObjcCrosstoolMode.ALL, "--ios_multi_cpus=i386,x86_64"); RULE_TYPE.scratchTarget(scratch, "srcs", "['a.m']"); // If the target is indeed using the c++ backend, then its archive action should be a diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java index 6633fcc99a..5b7155528c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java @@ -50,6 +50,7 @@ import com.google.devtools.build.lib.rules.apple.ApplePlatform; import com.google.devtools.build.lib.rules.apple.AppleToolchain; import com.google.devtools.build.lib.rules.cpp.CppCompileAction; import com.google.devtools.build.lib.rules.cpp.CppModuleMapAction; +import com.google.devtools.build.lib.rules.objc.ObjcCommandLineOptions.ObjcCrosstoolMode; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.common.options.OptionsParsingException; import java.util.Collections; @@ -135,15 +136,13 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { @Test public void testObjcPlusPlusCompileDarwin() throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, + useConfiguration(ObjcCrosstoolMode.ALL, "--experimental_disable_go", "--cpu=darwin_x86_64", "--macos_minimum_os=9.10.11", // TODO(b/36126423): Darwin should imply macos, so the // following line should not be necessary. - "--apple_platform_type=macos", - "--experimental_objc_crosstool=all"); + "--apple_platform_type=macos"); createLibraryTargetWriter("//objc:lib") .setList("srcs", "a.mm") .write(); @@ -1549,9 +1548,8 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { public void testSysrootArgSpecifiedWithGrteTopFlag() throws Exception { MockObjcSupport.setup(mockToolsConfig, "default_grte_top : '//x'"); useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, + ObjcCrosstoolMode.ALL, "--experimental_disable_go", - "--experimental_objc_crosstool=all", "--cpu=ios_x86_64", "--ios_cpu=x86_64"); scratch.file( @@ -1582,9 +1580,8 @@ public class ObjcLibraryTest extends ObjcRuleTestCase { " }", "}"); useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, + ObjcCrosstoolMode.ALL, "--experimental_disable_go", - "--experimental_objc_crosstool=all", "--cpu=ios_x86_64", "--ios_cpu=x86_64"); scratch.file( 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 2c82883104..c576d42bc4 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 @@ -364,13 +364,18 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { protected void useConfiguration(ObjcCrosstoolMode objcCrosstoolMode, String... args) throws Exception { ImmutableList.Builder<String> extraArgsBuilder = ImmutableList.builder(); - if (objcCrosstoolMode != ObjcCrosstoolMode.OFF) { - String crosstoolModeFlag = - objcCrosstoolMode == ObjcCrosstoolMode.ALL - ? "--experimental_objc_crosstool=all" - : "--experimental_objc_crosstool=library"; - extraArgsBuilder.add(crosstoolModeFlag); + switch(objcCrosstoolMode) { + case ALL: + extraArgsBuilder.add("--experimental_objc_crosstool=all"); + break; + case LIBRARY: + extraArgsBuilder.add("--experimental_objc_crosstool=library"); + break; + case OFF: + extraArgsBuilder.add("--experimental_objc_crosstool=off"); + break; } + extraArgsBuilder .add("--experimental_disable_go") .add("--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL); @@ -4674,9 +4679,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { } public void checkLinkingRuleCanUseCrosstool(RuleType ruleType) throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, - "--experimental_objc_crosstool=all"); + useConfiguration(ObjcCrosstoolMode.ALL); ruleType.scratchTarget(scratch, "srcs", "['a.m']"); ConfiguredTarget target = getConfiguredTarget("//x:x"); @@ -4687,9 +4690,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { } public void checkLinkingRuleCanUseCrosstool_singleArch(RuleType ruleType) throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, - "--experimental_objc_crosstool=all"); + useConfiguration(ObjcCrosstoolMode.ALL); ruleType.scratchTarget(scratch, "srcs", "['a.m']"); // If bin is indeed using the c++ backend, then its archive action should be a CppLinkAction. @@ -4702,10 +4703,7 @@ public abstract class ObjcRuleTestCase extends BuildViewTestCase { } public void checkLinkingRuleCanUseCrosstool_multiArch(RuleType ruleType) throws Exception { - useConfiguration( - "--crosstool_top=" + MockObjcSupport.DEFAULT_OSX_CROSSTOOL, - "--experimental_objc_crosstool=all", - "--ios_multi_cpus=i386,x86_64"); + useConfiguration(ObjcCrosstoolMode.ALL, "--ios_multi_cpus=i386,x86_64"); ruleType.scratchTarget(scratch, "srcs", "['a.m']"); // If bin is indeed using the c++ backend, then its archive action should be a CppLinkAction. |