Adding dependency_mapper cmd tool.

This will be used for incremental builds in soong.

Bug: 387799000
Flags: NA
Test: m dependency-mapper && atest dependency-mapper-tests
Change-Id: Id0d0f9e4daf1c7ee3896779abdafde679d01ee31
diff --git a/tools/dependency_mapper/proto/dependency.proto b/tools/dependency_mapper/proto/dependency.proto
new file mode 100644
index 0000000..60a88f8
--- /dev/null
+++ b/tools/dependency_mapper/proto/dependency.proto
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package com.android.dependencymapper;
+option java_package = "com.android.dependencymapper";
+option java_outer_classname = "DependencyProto";
+
+/**
+ * A com.android.dependencymapper.DependencyProto.FileDependency object.
+ */
+
+message FileDependency {
+
+  // java file path on disk
+  optional string file_path = 1;
+  // if a change in this file warrants recompiling all files
+  optional bool is_dependency_to_all = 2;
+  // class files generated when this java file is compiled
+  repeated string generated_classes = 3;
+  // dependencies of this file.
+  repeated string file_dependencies = 4;
+}
+
+/**
+ * A com.android.dependencymapper.DependencyProto.FileDependencyList object.
+ */
+message FileDependencyList {
+
+  // List of java file usages
+  repeated FileDependency fileDependency = 1;
+}
\ No newline at end of file