java_immutables_library(
  name = 'types',
  srcs = [
    'KnownBuildRuleTypes.java',
    'Repository.java',
    'RepositoryFactory.java',
  ],
  deps = [
    ':build_rule',
    ':rules',
    '//src/com/facebook/buck/android:rules',
    '//src/com/facebook/buck/android:steps',
    '//src/com/facebook/buck/android:utils',
    '//src/com/facebook/buck/apple:rules',
    '//src/com/facebook/buck/cli:config',
    '//src/com/facebook/buck/cxx:platform',
    '//src/com/facebook/buck/extension:extension',
    '//src/com/facebook/buck/file:downloader',
    '//src/com/facebook/buck/file:file',
    '//src/com/facebook/buck/gwt:gwt',
    '//src/com/facebook/buck/io:io',
    '//src/com/facebook/buck/java:config',
    '//src/com/facebook/buck/java:rules',
    '//src/com/facebook/buck/java:support',
    '//src/com/facebook/buck/log:log',
    '//src/com/facebook/buck/model:model',
    '//src/com/facebook/buck/parcelable:rules',
    '//src/com/facebook/buck/parser:config',
    '//src/com/facebook/buck/parser:rule_pattern',
    '//src/com/facebook/buck/python:config',
    '//src/com/facebook/buck/python:support',
    '//src/com/facebook/buck/python:rules',
    '//src/com/facebook/buck/ocaml:rules',
    '//src/com/facebook/buck/cxx:rules',
    '//src/com/facebook/buck/rules/macros:macros',
    '//src/com/facebook/buck/shell:rules',
    '//src/com/facebook/buck/thrift:rules',
    '//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/environment:platform',
    '//third-party/java/aosp:aosp',
    '//third-party/java/guava:guava',
    '//third-party/java/jsr:jsr305',
  ],
  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_immutables_library(
  name = 'build_rule',
  srcs = [
    'ActionGraph.java',
    'ActionGraphEvent.java',
    'AddToRuleKey.java',
    'AbstractSourcePath.java',
    'ArtifactCache.java',
    'BinaryBuildRule.java',
    'BuckPyFunction.java',
    'BuildableContext.java',
    'BuildableProperties.java',
    'BuildContext.java',
    'BuildDependencies.java',
    'BuildEngine.java',
    'BuildInfo.java',
    'BuildInfoRecorder.java',
    'BuildRuleDependencyVisitors.java',
    'BuildRuleFactoryParams.java',
    'BuildRuleResolver.java',
    'BuildRuleParams.java',
    'BuildRule.java',
    'BuildRules.java',
    'BuildRuleSuccess.java',
    'BuildRuleType.java',
    'BuildTargetSourcePath.java',
    'CacheMode.java',
    'CacheResult.java',
    'ConstructorArgMarshaller.java',
    'ConstructorArgMarshalException.java',
    'DefaultOnDiskBuildInfo.java',
    'Description.java',
    'FlavorableDescription.java',
    'ExportDependencies.java',
    'Hint.java',
    'ImplicitDepsInferringDescription.java',
    'Label.java',
    'OnDiskBuildInfo.java',
    'ParamInfo.java',
    'ParamInfoException.java',
    'PathSourcePath.java',
    'RecordFileSha1Step.java',
    'RuleKey.java',
    'RuleKeyAppendable.java',
    'RuleKeyBuilderFactory.java',
    'Sha1HashCode.java',
    'SourcePath.java',
    'SourcePathResolver.java',
    'SourcePaths.java',
    'SourceRoot.java',
    'TargetGraph.java',
    'TargetGraphHashing.java',
    'TargetGraphToActionGraph.java',
    'TargetGraphTransformer.java',
    'TargetName.java',
    'TargetNode.java',
    'TargetNodes.java',
    'TargetNodeToBuildRuleTransformer.java',
  ] + glob(["coercer/*.java"]),
  deps = [
    '//src/com/facebook/buck/android:exceptions',
    '//src/com/facebook/buck/android:utils',
    '//src/com/facebook/buck/event:event',
    '//src/com/facebook/buck/graph:graph',
    '//src/com/facebook/buck/java:packagefinder',
    '//src/com/facebook/buck/io:io',
    '//src/com/facebook/buck/log:log',
    '//src/com/facebook/buck/model:model',
    '//src/com/facebook/buck/parser:rule_pattern',
    '//src/com/facebook/buck/step:step',
    '//src/com/facebook/buck/timing:timing',
    '//src/com/facebook/buck/util:constants',
    '//src/com/facebook/buck/util:exceptions',
    '//src/com/facebook/buck/util:util',
    '//src/com/facebook/buck/util/hash:hash',
    '//third-party/java/gson:gson',
    '//third-party/java/guava:guava',
    '//third-party/java/jackson:jackson-annotations',
    '//third-party/java/jackson:jackson-core',
    '//third-party/java/jsr:jsr305',
  ],
  visibility = [
    'PUBLIC',
  ],
)

java_immutables_library(
  name = 'rules',
  srcs = [
    'AbiRule.java',
    'AbstractBuildRule.java',
    'ArtifactCacheConnectEvent.java',
    'ArtifactCacheEvent.java',
    'AssociatedTargetNodePredicate.java',
    'BuildEvent.java',
    'BuildOutputInitializer.java',
    'BuildResult.java',
    'BuildRuleEvent.java',
    'BuildRuleParams.java',
    'BuildRuleResolver.java',
    'BuildRuleStatus.java',
    'CachingBuildEngine.java',
    'CassandraArtifactCache.java',
    'DefaultBuildableContext.java',
    'DirArtifactCache.java',
    'ExopackageInfo.java',
    'HttpArtifactCache.java',
    'IndividualTestEvent.java',
    'InitializableFromDisk.java',
    'InstallableApk.java',
    'LoggingArtifactCacheDecorator.java',
    'MultiArtifactCache.java',
    'NoopArtifactCache.java',
    'OutputOnlyBuildRule.java',
    'ProjectConfig.java',
    'ProjectConfigDescription.java',
    'SymlinkTree.java',
    'TargetGraphAndTargets.java',
    'TestRule.java',
    'TestRunEvent.java',
  ],
  deps = [
    ':build_rule',
    '//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/io:io',
    '//src/com/facebook/buck/log:log',
    '//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/test/selectors:selectors',
    '//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:network',
    '//src/com/facebook/buck/util:util',
    '//src/com/facebook/buck/util/concurrent:concurrent',
    '//src/com/facebook/buck/util/environment:environment',
    '//src/com/facebook/buck/zip:steps',
    '//src/com/facebook/buck/zip:unzip',
    '//third-party/java/astyanax:cassandra',
    '//third-party/java/infer-annotations:infer-annotations',
    '//third-party/java/guava:guava',
    '//third-party/java/jackson:jackson-annotations',
    '//third-party/java/jackson:jackson-core',
    '//third-party/java/jackson:jackson-databind',
    '//third-party/java/jsr:jsr305',
    '//third-party/java/thrift:thrift',
  ],
  visibility = ['PUBLIC'],
)
