Skip to content

Commit 40b043b

Browse files
committed
Flip --incompatible_avoid_hardcoded_objc_compilation_flags
This flag was added a few years ago and would be great to get out of here. This is always surprising because it passes flags that aren't in your crosstool.
1 parent 37a74a7 commit 40b043b

File tree

4 files changed

+24
-11
lines changed

4 files changed

+24
-11
lines changed

src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
103103

104104
@Option(
105105
name = "incompatible_avoid_hardcoded_objc_compilation_flags",
106-
defaultValue = "false",
106+
defaultValue = "true",
107107
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
108108
effectTags = {
109109
OptionEffectTag.AFFECTS_OUTPUTS,

src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,9 +1131,14 @@ public void testPopulatesCompilationArtifacts() throws Exception {
11311131
checkPopulatesCompilationArtifacts(RULE_TYPE);
11321132
}
11331133

1134+
@Test
1135+
public void testCompilationActionsForDebugLegacyFlags() throws Exception {
1136+
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.DBG, true);
1137+
}
1138+
11341139
@Test
11351140
public void testCompilationActionsForDebug() throws Exception {
1136-
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.DBG);
1141+
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.DBG, false);
11371142
}
11381143

11391144
@Test
@@ -1169,9 +1174,14 @@ public void testClangCoptsForDebugModeWithoutGlibOrHardcoding() throws Exception
11691174
.containsNoneOf("-D_GLIBCXX_DEBUG", "-DDEBUG=1");
11701175
}
11711176

1177+
@Test
1178+
public void testCompilationActionsForOptimizedLegacyFlags() throws Exception {
1179+
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.OPT, true);
1180+
}
1181+
11721182
@Test
11731183
public void testCompilationActionsForOptimized() throws Exception {
1174-
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.OPT);
1184+
checkClangCoptsForCompilationMode(RULE_TYPE, CompilationMode.OPT, false);
11751185
}
11761186

11771187
@Test

src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,12 @@ private static String compilationModeFlag(CompilationMode mode) {
117117
throw new AssertionError();
118118
}
119119

120-
protected static ImmutableList<String> compilationModeCopts(CompilationMode mode) {
120+
protected static ImmutableList<String> legacyCompilationModeCopts(CompilationMode mode) {
121121
switch (mode) {
122122
case DBG:
123123
return ImmutableList.copyOf(ObjcConfiguration.DBG_COPTS);
124124
case OPT:
125125
return ObjcConfiguration.OPT_COPTS;
126-
case FASTBUILD:
127-
return FASTBUILD_COPTS;
128126
}
129127
throw new AssertionError();
130128
}
@@ -890,13 +888,18 @@ protected List<String> rootedIncludePaths(String... unrootedPaths) {
890888
return rootedPaths.build();
891889
}
892890

893-
protected void checkClangCoptsForCompilationMode(RuleType ruleType, CompilationMode mode)
891+
protected void checkClangCoptsForCompilationMode(RuleType ruleType, CompilationMode mode, boolean includeLegacyFlags)
894892
throws Exception {
895893
ImmutableList.Builder<String> allExpectedCoptsBuilder =
896894
ImmutableList.<String>builder()
897-
.addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS)
898-
.addAll(compilationModeCopts(mode));
895+
.addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS);
896+
897+
if (includeLegacyFlags) {
898+
allExpectedCoptsBuilder.addAll(legacyCompilationModeCopts(mode));
899+
}
900+
899901
useConfiguration(
902+
"--incompatible_avoid_hardcoded_objc_compilation_flags=" + !includeLegacyFlags,
900903
"--platforms=" + MockObjcSupport.IOS_X86_64,
901904
"--apple_platform_type=ios",
902905
"--compilation_mode=" + compilationModeFlag(mode));
@@ -913,8 +916,7 @@ protected void checkClangCoptsForCompilationMode(RuleType ruleType, CompilationM
913916
protected void checkClangCoptsForDebugModeWithoutGlib(RuleType ruleType) throws Exception {
914917
ImmutableList.Builder<String> allExpectedCoptsBuilder =
915918
ImmutableList.<String>builder()
916-
.addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS)
917-
.addAll(ObjcConfiguration.DBG_COPTS);
919+
.addAll(CompilationSupport.DEFAULT_COMPILER_FLAGS);
918920

919921
useConfiguration(
920922
"--platforms=" + MockObjcSupport.IOS_X86_64,

src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,7 @@ def swift_binary_impl(ctx):
832832
""");
833833

834834
useConfiguration(
835+
"--incompatible_avoid_hardcoded_objc_compilation_flags=false",
835836
"--compilation_mode=opt",
836837
"--ios_simulator_device='iPhone 6'",
837838
"--ios_simulator_version=8.4",

0 commit comments

Comments
 (0)