aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2016-08-16 18:25:34 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-08-17 11:25:13 +0000
commit56d626744decd73f5eed976f27988967757027d1 (patch)
tree61e0308d404025d147cfffb17cda06cf825bba7e /src/main/java/com/google
parentd503fdcc7dfc61b53b7843585fde4aec5bbf03da (diff)
Add defines to experimental_objc_library.
-- MOS_MIGRATED_REVID=130424806
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
index a5aef38a14..f02a63e988 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.objc;
+import static com.google.devtools.build.lib.rules.objc.ObjcProvider.DEFINE;
import static com.google.devtools.build.lib.rules.objc.XcodeProductType.LIBRARY_STATIC;
import com.google.common.collect.ImmutableList;
@@ -36,6 +37,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider;
import com.google.devtools.build.lib.rules.cpp.CppRuleClasses;
import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType;
import com.google.devtools.build.lib.rules.cpp.PrecompiledFiles;
+import com.google.devtools.build.lib.rules.objc.ObjcCommon.ResourceAttributes;
import java.util.Collection;
/** Implementation for experimental_objc_library. */
@@ -175,6 +177,7 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory {
.addSources(arcSources, ImmutableMap.of("objc_arc", ""))
.addSources(nonArcSources, ImmutableMap.of("no_objc_arc", ""))
.addSources(privateHdrs)
+ .addDefines(common.getObjcProvider().get(DEFINE))
.enableCompileProviders()
.addPublicHeaders(publicHdrs)
.addPrecompiledFiles(precompiledFiles)
@@ -217,6 +220,7 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory {
.registerActions(xcodeProviderBuilder.build());
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
+ .addProvider(ObjcProvider.class, common.getObjcProvider())
.addProviders(info.getProviders())
.addProvider(XcodeProvider.class, xcodeProviderBuilder.build())
.build();
@@ -261,14 +265,21 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory {
}
}
- private static ObjcCommon common(
+ /**
+ * Constructs an {@link ObjcCommon} instance based on the attributes of the given rule context.
+ */
+ private ObjcCommon common(
RuleContext ruleContext,
CompilationAttributes compilationAttributes,
CompilationArtifacts compilationArtifacts) {
return new ObjcCommon.Builder(ruleContext)
.setCompilationAttributes(compilationAttributes)
+ .setResourceAttributes(new ResourceAttributes(ruleContext))
+ .addDefines(ruleContext.getTokenizedStringListAttr("defines"))
.setCompilationArtifacts(compilationArtifacts)
- .addDepObjcProviders(ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProvider.class))
+ .addDeps(ruleContext.getPrerequisites("deps", Mode.TARGET))
+ .addRuntimeDeps(ruleContext.getPrerequisites("runtime_deps", Mode.TARGET))
+ .setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext))
.build();
}