Add zlib to buildtools

Bug: 130543265
Change-Id: If7d51597d47edacb0fc94b864a994718758e38fb
diff --git a/Android.bp b/Android.bp
index 1c150ae..3941dca 100644
--- a/Android.bp
+++ b/Android.bp
@@ -480,6 +480,7 @@
     "libprotobuf-cpp-lite",
     "libservices",
     "libutils",
+    "libz",
   ],
   static_libs: [
     "libgtest_prod",
@@ -3132,6 +3133,7 @@
     "libservices",
     "libunwindstack",
     "libutils",
+    "libz",
   ],
   static_libs: [
     "libgmock",
@@ -3483,6 +3485,7 @@
   shared_libs: [
     "liblog",
     "libprotobuf-cpp-lite",
+    "libz",
   ],
   static_libs: [
     "libgtest_prod",
diff --git a/buildtools/.gitignore b/buildtools/.gitignore
index 7f47a8c..c3961bc 100644
--- a/buildtools/.gitignore
+++ b/buildtools/.gitignore
@@ -27,3 +27,4 @@
 sqlite_src/
 test_data/
 typefaces/
+zlib/
diff --git a/buildtools/BUILD.gn b/buildtools/BUILD.gn
index 55eee2c..c809e7c 100644
--- a/buildtools/BUILD.gn
+++ b/buildtools/BUILD.gn
@@ -674,6 +674,38 @@
   ]
 }
 
+source_set("zlib") {
+  defines = [
+    "ZLIB_CONST",
+    "USE_MMAP",
+    "HAVE_HIDDEN",
+  ]
+  sources = [
+    "zlib/src/adler32.c",
+    "zlib/src/compress.c",
+    "zlib/src/crc32.c",
+    "zlib/src/deflate.c",
+    "zlib/src/gzclose.c",
+    "zlib/src/gzlib.c",
+    "zlib/src/gzread.c",
+    "zlib/src/gzwrite.c",
+    "zlib/src/infback.c",
+    "zlib/src/inffast.c",
+    "zlib/src/inflate.c",
+    "zlib/src/inftrees.c",
+    "zlib/src/trees.c",
+    "zlib/src/uncompr.c",
+    "zlib/src/zutil.c",
+  ]
+  configs -= [ "//gn/standalone:extra_warnings" ]
+  cflags = []
+  public_configs = [ ":zlib_config" ]
+}
+
+config("zlib_config") {
+  include_dirs = [ "zlib/src" ]
+}
+
 source_set("libunwindstack") {
   include_dirs = [
     "android-core/libunwindstack/include",
diff --git a/src/perfetto_cmd/BUILD.gn b/src/perfetto_cmd/BUILD.gn
index b4ec76c..2a741a3 100644
--- a/src/perfetto_cmd/BUILD.gn
+++ b/src/perfetto_cmd/BUILD.gn
@@ -74,6 +74,7 @@
   ]
   deps = [
     "../../buildtools:protobuf_lite",
+    "../../buildtools:zlib",
     "../../gn:default_deps",
     "../../protos/perfetto/config:lite",
     "../base",
diff --git a/tools/gen_android_bp b/tools/gen_android_bp
index 2d2b577..ba6d4a2 100755
--- a/tools/gen_android_bp
+++ b/tools/gen_android_bp
@@ -155,6 +155,9 @@
 def enable_sqlite(module):
     module.static_libs.append('libsqlite')
 
+def enable_zlib(module):
+    module.shared_libs.append('libz')
+
 # Android equivalents for third-party libraries that the upstream project
 # depends on.
 builtin_deps = {
@@ -168,6 +171,7 @@
     '//buildtools:protoc_lib': enable_protoc_lib,
     '//buildtools:libunwindstack': enable_libunwindstack,
     '//buildtools:sqlite': enable_sqlite,
+    '//buildtools:zlib': enable_zlib,
 }
 
 # ----------------------------------------------------------------------------
diff --git a/tools/install-build-deps b/tools/install-build-deps
index d97478d..f8c41dd 100755
--- a/tools/install-build-deps
+++ b/tools/install-build-deps
@@ -180,6 +180,12 @@
    'all'
   ),
 
+  ('buildtools/zlib',
+   'https://android.googlesource.com/platform/external/zlib.git',
+   'dfa0646a03b4e1707469e04dc931b09774968fe6',
+   'all'
+  ),
+
   ('buildtools/bionic',
    'https://android.googlesource.com/platform/bionic.git',
    'a60488109cda997dfd83832731c8527feaa2825e',