diff options
author | 2016-10-07 22:24:46 +0000 | |
---|---|---|
committer | 2016-10-10 09:54:38 +0000 | |
commit | 2837781bb9613958eba289ce1e2608dffeb6bf6e (patch) | |
tree | 9e45bf1ba4b806bb67cf5aafdf30da3107ebb8fe /src | |
parent | d08e7c0a592a27561426a43e04480b85209881dd (diff) |
RELNOTES: Create a flag --android_dynamic_mode to turn off dynamic mode during the Android split transition.
--
MOS_MIGRATED_REVID=135524459
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java | 15 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java index 90295a3fc5..9aaced13c5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java @@ -32,6 +32,8 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.Attribute.SplitTransition; +import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter; +import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeFlag; import com.google.devtools.common.options.Converter; import com.google.devtools.common.options.Converters; import com.google.devtools.common.options.EnumConverter; @@ -263,6 +265,19 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment { ) public String cppCompiler; + @Option( + name = "android_dynamic_mode", + defaultValue = "default", + converter = DynamicModeConverter.class, + category = "undocumented", + help = + "Determines whether C++ deps of Android rules will be linked dynamically when a cc_binary " + + "does not explicitly create a shared library. 'default' means blaze will choose " + + "whether to link dynamically. 'fully' means all libraries will be linked " + + "dynamically. 'off' means that all libraries will be linked in mostly static mode." + ) + public DynamicModeFlag dynamicMode; + @Option(name = "strict_android_deps", allowMultiple = false, defaultValue = "default", diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java index 7a1d515b60..9ee0dfbe54 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java @@ -233,6 +233,7 @@ public final class AndroidRuleClasses { // getSplitPrerequisites() will complain if cpu is null after this transition, // so default to android_cpu. splitOptions.get(BuildConfiguration.Options.class).cpu = androidOptions.cpu; + splitOptions.get(CppOptions.class).dynamicMode = androidOptions.dynamicMode; setCrosstoolToAndroid(splitOptions, buildOptions); return ImmutableList.of(splitOptions); } @@ -248,6 +249,7 @@ public final class AndroidRuleClasses { splitOptions.get(AndroidConfiguration.Options.class).cpu = cpu; splitOptions.get(BuildConfiguration.Options.class).cpu = cpu; splitOptions.get(CppOptions.class).cppCompiler = androidOptions.cppCompiler; + splitOptions.get(CppOptions.class).dynamicMode = androidOptions.dynamicMode; setCrosstoolToAndroid(splitOptions, buildOptions); result.add(splitOptions); } |