java_library(
  name = 'types',
  srcs = [
    'KnownBuildRuleTypes.java',
  ],
  deps = [
    ':build_rule',
    ':rules',
    '//lib:guava',
    '//lib:jsr305',
    '//src/com/facebook/buck/android:rules',
    '//src/com/facebook/buck/java:rules',
    '//src/com/facebook/buck/parcelable:rules',
    '//src/com/facebook/buck/parser:project',
    '//src/com/facebook/buck/python:rules',
    '//src/com/facebook/buck/shell:rules',
    '//src/com/facebook/buck/util:exceptions',
  ],
  visibility = [
    '//src/com/facebook/buck/cli:cli',
    '//src/com/facebook/buck/parser:parser',
    '//test/...',
  ])

# Ideally, BuildRule.java would require only a handful of other source files
# in order to compile it. Because BuildContext is referenced in the BuildRule
# interface, its dependencies are much broader than desired.
java_library(
  name = 'build_rule',
  srcs = [
    'AbstractBuildRuleBuilder.java',
    'AbstractBuildRuleBuilderParams.java',
    'AbstractSourcePath.java',
    'AnnotationProcessingData.java',
    'ArgObjectPopulatomatic.java',
    'ArtifactCache.java',
    'BinaryBuildRule.java',
    'BuckPyFunction.java',
    'Buildable.java',
    'Buildables.java',
    'BuildableContext.java',
    'BuildableProperties.java',
    'BuildContext.java',
    'BuildDependencies.java',
    'BuildInfo.java',
    'BuildInfoRecorder.java',
    'BuildRuleBuilder.java',
    'BuildRuleFactory.java',
    'BuildRuleFactoryParams.java',
    'BuildRuleResolver.java',
    'BuildRuleParams.java',
    'BuildRule.java',
    'BuildRuleSuccess.java',
    'BuildRuleType.java',
    'BuildTargetSourcePath.java',
    'CacheResult.java',
    'DefaultBuildRuleBuilderParams.java',
    'DependencyGraph.java',
    'FileSourcePath.java',
    'Hint.java',
    'JavaPackageFinder.java',
    'OnDiskBuildInfo.java',
    'ParamInfo.java',
    'RuleKey.java',
    'RuleKeyBuilderFactory.java',
    'Sha1HashCode.java',
    'SourcePath.java',
    'SourceRoot.java',
  ],
  deps = [
    '//lib:guava',
    '//lib:jackson-annotations',
    '//lib:jackson-core',
    '//lib:jsr305',
    '//src/com/facebook/buck/android:exceptions',
    '//src/com/facebook/buck/event:event',
    '//src/com/facebook/buck/graph:graph',
    '//src/com/facebook/buck/model:model',
    '//src/com/facebook/buck/parser:rule_pattern',
    '//src/com/facebook/buck/step:step',
    '//src/com/facebook/buck/util:constants',
    '//src/com/facebook/buck/util:exceptions',
    '//src/com/facebook/buck/util:io',
    '//src/com/facebook/buck/util:util',
    '//src/com/facebook/buck/util/hash:hash',
  ],
  visibility = [
    'PUBLIC',
  ],
)

java_library(
  name = 'rules',
  srcs = [
    'AbiRule.java',
    'AbstractBuildable.java',
    'AbstractBuildRule.java',
    'AbstractBuildRuleFactory.java',
    'AbstractTestRuleFactory.java',
    'AbstractCachingBuildRule.java',
    'AbstractDependencyVisitor.java',
    'ArtifactCacheConnectEvent.java',
    'ArtifactCacheEvent.java',
    'Builder.java',
    'BuildEvent.java',
    'BuildRuleEvent.java',
    'BuildRuleParams.java',
    'BuildRuleResolver.java',
    'BuildRuleStatus.java',
    'CassandraArtifactCache.java',
    'DefaultBuildableContext.java',
    'DefaultBuildRuleBuilderParams.java',
    'DirArtifactCache.java',
    'DoNotUseAbstractBuildable.java',
    'IndividualTestEvent.java',
    'InstallableBuildRule.java',
    'LabelsAttributeBuilder.java',
    'LoggingArtifactCacheDecorator.java',
    'MultiArtifactCache.java',
    'NoopArtifactCache.java',
    'ProjectConfigRule.java',
    'RecordArtifactsInDirectoryStep.java',
    'ResourcesAttributeBuilder.java',
    'SourcePaths.java',
    'SrcsAttributeBuilder.java',
    'TestRule.java',
    'TestRunEvent.java',
  ],
  deps = [
    ':build_rule',
    '//lib:guava',
    '//lib:jackson-annotations',
    '//lib:jackson-core',
    '//lib:jackson-databind',
    '//lib:jsr305',
    '//src/com/facebook/buck/android:exceptions',
    '//src/com/facebook/buck/android:steps',
    '//src/com/facebook/buck/cli:events',
    '//src/com/facebook/buck/event:event',
    '//src/com/facebook/buck/graph:graph',
    '//src/com/facebook/buck/model:model',
    '//src/com/facebook/buck/parser:rule_pattern',
    '//src/com/facebook/buck/shell:steps',
    '//src/com/facebook/buck/step:step',
    '//src/com/facebook/buck/step/fs:fs',
    '//src/com/facebook/buck/test:test',
    '//src/com/facebook/buck/timing:timing',
    '//src/com/facebook/buck/util:constants',
    '//src/com/facebook/buck/util/collect:collect',
    '//src/com/facebook/buck/util:exceptions',
    '//src/com/facebook/buck/util:io',
    '//src/com/facebook/buck/util:network',
    '//src/com/facebook/buck/util:util',
    '//src/com/facebook/buck/util/concurrent:concurrent',
    '//src/com/facebook/buck/util/environment:environment',
    '//third-party/java/astyanax:astyanax-cassandra',
    '//third-party/java/astyanax:astyanax-core',
    '//third-party/java/astyanax:astyanax-thrift',
    '//third-party/java/astyanax:cassandra',
    '//third-party/java/astyanax:cassandra-thrift',
    '//third-party/java/astyanax:commons-cli',
    '//third-party/java/astyanax:commons-codec',
    '//third-party/java/astyanax:commons-lang',
    '//third-party/java/astyanax:high-scale-lib',
    '//third-party/java/astyanax:joda-time',
    '//third-party/java/astyanax:libthrift',
    '//third-party/java/astyanax:log4j',
    '//third-party/java/astyanax:slf4j-api',
    '//third-party/java/astyanax:slf4j-log4j12',
  ],
  visibility = ['PUBLIC'],
)
