aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/apple
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2017-11-04 01:00:59 +0100
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-11-06 20:20:21 +0100
commitcaceacd984a3f86b623ea726f4df36bd81998d25 (patch)
treefe7ec2dbd11dfdb10abc2994335c34972c26b77b /src/main/java/com/google/devtools/build/lib/rules/apple
parente8d32b7c922f65539b74357711d5ad6b70934115 (diff)
Expose late-bound-attributes to Skylark.
RELNOTES: Late-bound attributes are exposed to skylark. This is a new API (`configuration_field()`) to depend on certain configuration-defined targets from skylark rules. PiperOrigin-RevId: 174534104
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java7
2 files changed, 9 insertions, 1 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 1446cd0ed3..14fb440670 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
@@ -331,7 +331,8 @@ public class AppleCommandLineOptions extends FragmentOptions {
* changed from the default using the {@code xcode_version_config} build flag.
*/
// TODO(cparsons): Update all callers to reference the actual xcode_version_config flag value.
- static final String DEFAULT_XCODE_VERSION_CONFIG_LABEL = "//tools/objc:host_xcodes";
+ @VisibleForTesting
+ public static final String DEFAULT_XCODE_VERSION_CONFIG_LABEL = "//tools/objc:host_xcodes";
/** Converter for --default_ios_provisioning_profile. */
public static class DefaultProvisioningProfileConverter extends DefaultLabelConverter {
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 cdd22ee85f..127b0ace57 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
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
+import com.google.devtools.build.lib.analysis.skylark.SkylarkConfigurationField;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
@@ -416,6 +417,12 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
/**
* Returns the label of the xcode_config rule to use for resolving the host system xcode version.
*/
+ @SkylarkConfigurationField(
+ name = "xcode_config_label",
+ doc = "Returns the target denoted by the value of the --xcode_version_config flag",
+ defaultLabel = AppleCommandLineOptions.DEFAULT_XCODE_VERSION_CONFIG_LABEL,
+ defaultInToolRepository = true
+ )
public Label getXcodeConfigLabel() {
return xcodeConfigLabel;
}