# This is a canonical example of a genrule() that generates Java source code
# paired with a java_library() that compiles the output of the genrule() along
# with some hard-coded Java source code into a single library.

java_library(
  name = 'zip',
  source = '7',
  target = '7',
  srcs = ['Zip.java'],
)

java_binary(
  name = 'run_zip',
  main_class = 'com.example.Zip',
  deps = ['//:zip'],
)

genrule(
  name = 'generate_java_sources',
  deps = ['//:run_zip'],
  bash = '$(exe :run_zip) $OUT',
  cmd_exe = '$(exe :run_zip) %OUT%',
  out = 'output.src.zip',
)

java_library(
  name = 'lib',
  srcs = ['Yin.java', ':generate_java_sources'],
  deps = [
    '//:generate_java_sources',
  ],
)
