Example #1
0
  /** Returns the common object for a proto specific compilation environment. */
  public ObjcCommon getCommon() {
    ObjcCommon.Builder commonBuilder =
        new ObjcCommon.Builder(ruleContext)
            .setIntermediateArtifacts(intermediateArtifacts)
            .setHasModuleMap()
            .setCompilationArtifacts(getCompilationArtifacts());

    if (targetType == TargetType.LINKING_TARGET) {
      commonBuilder.addDepObjcProviders(
          ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProvider.class));
    } else if (targetType == TargetType.PROTO_TARGET) {
      commonBuilder.addDepObjcProviders(
          ruleContext.getPrerequisites(
              ObjcRuleClasses.PROTO_LIB_ATTR, Mode.TARGET, ObjcProvider.class));

      if (usesProtobufLibrary() && experimentalAutoUnion()) {
        commonBuilder.addDirectDependencyHeaderSearchPaths(getUserHeaderSearchPaths());
      } else {
        commonBuilder.addUserHeaderSearchPaths(getUserHeaderSearchPaths());
      }
    }
    return commonBuilder.build();
  }