Introduce DexJavaLibraryIfItContainsClassFiles Buildable.

Summary:
`DexJavaLibraryIfItContainsClassFiles` is a `Buildable` that takes the output of a `JavaLibraryRule` and
and dexes it, assuming the output of the `JavaLibraryRule` contains `.class` files.
It relies on an `AccumulateClassNames` to determine whether there are `.class` files to dex.

Once `DexJavaLibraryIfItContainsClassFiles` has the path to the classes file,
it uses a `FileExistsAndIsNotEmptyStep` combined with a `ConditionalStep` to
make sure that the list of `.class` files is non-empty before running the `DxStep`
because `dx` will fail if it is run on input that does not contain any `.class` files.

Test Plan: Sandcastle builds.
6 files changed
tree: e133a88e4c8c16d95bcac5df4df48bd1e8973a47
  1. .idea/
  2. bin/
  3. config/
  4. docs/
  5. lib/
  6. plugin/
  7. pmd/
  8. scripts/
  9. src/
  10. test/
  11. testdata/
  12. third-party/
  13. .buckconfig
  14. .classpath
  15. .gitignore
  16. .project
  17. .travis.yml
  18. buck.iml
  19. build.xml
  20. DEFS
  21. LICENSE
  22. README.md
README.md

Buck

Buck is an Android build tool. To see what Buck can do for you, check out the documentation at http://facebook.github.io/buck/.

Build Status

Installation

To build Buck, run the following:

git clone git@github.com:facebook/buck.git
cd buck
ant
./bin/buck --help

License

Apache License 2.0