Esempio n. 1
0
        @Override
        public List<BuildOptions> split(BuildOptions buildOptions) {
          AndroidConfiguration.Options androidOptions =
              buildOptions.get(AndroidConfiguration.Options.class);
          CppOptions cppOptions = buildOptions.get(CppOptions.class);
          Label androidCrosstoolTop = androidOptions.realAndroidCrosstoolTop();
          if (androidOptions.realFatApkCpus().isEmpty()
              && (androidCrosstoolTop == null
                  || androidCrosstoolTop.equals(cppOptions.crosstoolTop))) {
            return ImmutableList.of();
          }

          if (androidOptions.realFatApkCpus().isEmpty()) {
            BuildOptions splitOptions = buildOptions.clone();
            setCrosstoolToAndroid(splitOptions, buildOptions);
            return ImmutableList.of(splitOptions);
          }

          List<BuildOptions> result = new ArrayList<>();
          for (String cpu : ImmutableSortedSet.copyOf(androidOptions.realFatApkCpus())) {
            BuildOptions splitOptions = buildOptions.clone();
            // Disable fat APKs for the child configurations.
            splitOptions.get(AndroidConfiguration.Options.class).fatApkCpus = ImmutableList.of();

            // Set the cpu & android_cpu.
            // TODO(bazel-team): --android_cpu doesn't follow --cpu right now; it should.
            splitOptions.get(AndroidConfiguration.Options.class).cpu = cpu;
            splitOptions.get(BuildConfiguration.Options.class).cpu = cpu;
            setCrosstoolToAndroid(splitOptions, buildOptions);
            result.add(splitOptions);
          }
          return result;
        }