Use depfiles when building

This saves on incremental compile time if nothing changes.

Change-Id: I18cb2083a5f33f530d73f2f52223a7b7e7c7fc5b
diff --git a/fuchsia/BUILD.gn b/fuchsia/BUILD.gn
index 78734ff..4468513 100644
--- a/fuchsia/BUILD.gn
+++ b/fuchsia/BUILD.gn
@@ -64,9 +64,6 @@
       "$va_install_root/lib/libva-magma.so.2",
       "$va_install_root/lib/libigdgmm.so.11",
       "$va_install_root/iHD_drv_video.so",
-
-      # Placeholder is here just to force an incremental build
-      "$va_install_root/place_holder",
     ]
 
     fuchsia_dir = rebase_path("$root_build_dir/../..")
@@ -87,6 +84,8 @@
       "//sdk:zircon_sysroot_export",
       "//src/graphics/lib/magma/src/libmagma:libmagma_complete($shlib_toolchain)",
     ]
+
+    depfile = "$root_out_dir/build-intel-media-driver/media-driver.d"
   }
 }
 
diff --git a/fuchsia/build.sh b/fuchsia/build.sh
index 505ec6a..fdefe3f 100755
--- a/fuchsia/build.sh
+++ b/fuchsia/build.sh
@@ -33,6 +33,9 @@
 
 mkdir -p $OUT_DIR
 
+$SCRIPT_DIR/gendepsfile.py $OUT_DIR/media-driver.d --input-dir $FUCHSIA_DIR/third_party/intel/libva \
+  --input-dir $FUCHSIA_DIR/third_party/intel/gmmlib \
+  --input-dir $FUCHSIA_DIR/third_party/intel/media-driver
 #
 # Build libva with meson
 #
diff --git a/fuchsia/gendepsfile.py b/fuchsia/gendepsfile.py
new file mode 100755
index 0000000..c0832fc
--- /dev/null
+++ b/fuchsia/gendepsfile.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+# Copyright 2021 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import argparse
+import os
+import subprocess
+import sys
+import pipes
+
+
+def main():
+    parser = argparse.ArgumentParser("Generate media driver dep file")
+    parser.add_argument("depsfile")
+    parser.add_argument("--input-dir", action='append')
+    args = parser.parse_args()
+
+    find_args = ["find"]
+    find_args += args.input_dir
+    find_args += ["-path", "*/.git", "-prune", "-o", "-type", "f", "-print"]
+
+    files = subprocess.check_output(find_args)
+    file_lines = files.splitlines()
+
+    va_install_dir = "build-intel-media-driver/install"
+
+    print("DEPSFILE", args.depsfile)
+
+    with open(args.depsfile, "w") as depsfile:
+        for output_file in ["lib/libva.so.2", "lib/libva-magma.so.2",
+                            "lib/libigdgmm.so.11", "iHD_drv_video.so"]:
+            depsfile.write(os.path.join(va_install_dir, output_file) + ": ")
+            depsfile.write(" ".join(x.replace(' ', '\\ ') for x in file_lines))
+            depsfile.write("\n")
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())