Esempio n. 1
0
  private JavaLibraryRule createAndroidLibraryRule(
      String buildTarget,
      BuildRuleResolver ruleResolver,
      String resDirectory,
      String assetDirectory,
      String nativeLibsDirectory) {
    BuildTarget libraryOnebuildTarget = BuildTargetFactory.newInstance(buildTarget);
    AndroidLibraryRule.Builder androidLibraryRuleBuilder =
        AndroidLibraryRule.newAndroidLibraryRuleBuilder(new FakeAbstractBuildRuleBuilderParams())
            .addSrc(buildTarget.split(":")[1] + ".java")
            .setBuildTarget(libraryOnebuildTarget);

    if (!Strings.isNullOrEmpty(resDirectory) || !Strings.isNullOrEmpty(assetDirectory)) {
      BuildTarget resourceOnebuildTarget = BuildTargetFactory.newInstance(buildTarget);
      AndroidResourceRule androidResourceRule =
          ruleResolver.buildAndAddToIndex(
              AndroidResourceRule.newAndroidResourceRuleBuilder(
                      new FakeAbstractBuildRuleBuilderParams())
                  .setAssetsDirectory(assetDirectory)
                  .setRes(resDirectory)
                  .setBuildTarget(resourceOnebuildTarget));

      androidLibraryRuleBuilder.addDep(androidResourceRule.getBuildTarget());
    }

    if (!Strings.isNullOrEmpty(resDirectory) || !Strings.isNullOrEmpty(assetDirectory)) {
      BuildTarget resourceOnebuildTarget =
          BuildTargetFactory.newInstance(buildTarget + "_resources");
      AndroidResourceRule androidResourceRule =
          ruleResolver.buildAndAddToIndex(
              AndroidResourceRule.newAndroidResourceRuleBuilder(
                      new FakeAbstractBuildRuleBuilderParams())
                  .setAssetsDirectory(assetDirectory)
                  .setRes(resDirectory)
                  .setBuildTarget(resourceOnebuildTarget));

      androidLibraryRuleBuilder.addDep(androidResourceRule.getBuildTarget());
    }

    if (!Strings.isNullOrEmpty(nativeLibsDirectory)) {
      BuildTarget nativeLibOnebuildTarget =
          BuildTargetFactory.newInstance(buildTarget + "_native_libs");
      BuildRule nativeLibsRule =
          ruleResolver.buildAndAddToIndex(
              PrebuiltNativeLibrary.newPrebuiltNativeLibrary(
                      new FakeAbstractBuildRuleBuilderParams())
                  .setBuildTarget(nativeLibOnebuildTarget)
                  .setNativeLibsDirectory(nativeLibsDirectory));

      androidLibraryRuleBuilder.addDep(nativeLibsRule.getBuildTarget());
    }

    JavaLibraryRule androidLibraryRule = ruleResolver.buildAndAddToIndex(androidLibraryRuleBuilder);

    return androidLibraryRule;
  }