aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-07-18 21:36:52 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-19 10:22:03 +0200
commit2e647eed66771d549aab53faeb04ddad5719849b (patch)
tree6574314012c95c18ef77ee0c740e5ee04eb40db9
parentb747b1b864bd87f6b24e596e90d126a47ebb243b (diff)
Turn on objc crosstool use in Bazel by default.
PiperOrigin-RevId: 162388184
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryTest.java11
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java13
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java30
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.