Merge "Merge branch 'remotes/upstream/vulkan-cts-1.0.2' into master"
diff --git a/fuchsia/BUILD.gn b/fuchsia/BUILD.gn
index 264571e..410024b 100644
--- a/fuchsia/BUILD.gn
+++ b/fuchsia/BUILD.gn
@@ -5,6 +5,12 @@
action("build") {
script = "build.sh"
args = [ rebase_path(root_out_dir) ]
+ deps = [
+ "//third_party/vulkan_loader_and_validation_layers:vulkan",
+ "//garnet/public/sdk:zircon_sysroot",
+ ]
+
+ depfile = "$root_out_dir/build-vulkancts/vulkan-cts.d"
outputs = [ "$root_out_dir/build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk" ]
}
diff --git a/fuchsia/build.sh b/fuchsia/build.sh
index c4b1c4d..159b631 100755
--- a/fuchsia/build.sh
+++ b/fuchsia/build.sh
@@ -37,6 +37,7 @@
export FUCHSIA_LIB_DIR=$fuchsia_lib_path
mkdir -p $build_dir
+$fuchsia_root/third_party/vulkan-cts/fuchsia/gendepsfile.py $build_dir/vulkan-cts.d $fuchsia_root/third_party/vulkan-cts
pushd $build_dir
cmake $fuchsia_root/third_party/vulkan-cts -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=$tools_path/ninja -DFUCHSIA_SYSROOT=$sysroot -DCMAKE_TOOLCHAIN_FILE=$fuchsia_root/build/Fuchsia.cmake -DDE_OS=DE_OS_FUCHSIA -DDEQP_TARGET=fuchsia $extra_args
$tools_path/ninja
diff --git a/fuchsia/gen.py b/fuchsia/gen.py
index c39ba9b..f06cb69 100644
--- a/fuchsia/gen.py
+++ b/fuchsia/gen.py
@@ -7,34 +7,42 @@
out_file = open("BUILD.gn", "w")
-out_file.write('### NOTE: This file auto-generated from gen.py\n')
-out_file.write('\n')
-out_file.write('import("//build/package.gni")\n')
-out_file.write('\n')
-out_file.write('action("build") {\n')
-out_file.write(' script = "build.sh"\n')
-out_file.write(' args = [ rebase_path(root_out_dir) ]\n')
-out_file.write(' outputs = [ "$root_out_dir/build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk" ]\n')
-out_file.write('}\n')
-out_file.write('\n')
-out_file.write('copy("copy") {\n')
-out_file.write(' sources = [ "$root_out_dir/build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk" ]\n')
-out_file.write(' outputs = [ "$root_build_dir/deqp-vk" ]\n')
-out_file.write(' deps = [ ":build" ]\n')
-out_file.write('}\n')
-out_file.write('\n')
-out_file.write('package("vulkan-cts") {\n')
-out_file.write(' deps = [ ":copy" ]\n')
-out_file.write(' binary = "deqp-vk"\n')
-out_file.write(' meta = [ {\n')
-out_file.write(' path = rebase_path("meta/sandbox")\n')
-out_file.write(' dest = "sandbox"\n')
-out_file.write(' } ]\n')
-out_file.write(' resources = [\n')
-out_file.write(' {\n')
-out_file.write(' path=rebase_path("../external/vulkancts/mustpass/1.0.2/vk-default.txt")\n')
-out_file.write(' dest="vk-default.txt"\n')
-out_file.write(' },\n')
+out_file.write("""\
+### NOTE: This file auto-generated from gen.py
+
+import("//build/package.gni")
+
+action("build") {
+ script = "build.sh"
+ args = [ rebase_path(root_out_dir) ]
+ deps = [
+ "//third_party/vulkan_loader_and_validation_layers:vulkan",
+ "//garnet/public/sdk:zircon_sysroot",
+ ]
+
+ depfile = "$root_out_dir/build-vulkancts/vulkan-cts.d"
+ outputs = [ "$root_out_dir/build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk" ]
+}
+
+copy("copy") {
+ sources = [ "$root_out_dir/build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk" ]
+ outputs = [ "$root_build_dir/deqp-vk" ]
+ deps = [ ":build" ]
+}
+
+package("vulkan-cts") {
+ deps = [ ":copy" ]
+ binary = "deqp-vk"
+ meta = [ {
+ path = rebase_path("meta/sandbox")
+ dest = "sandbox"
+ } ]
+ resources = [
+ {
+ path=rebase_path("../external/vulkancts/mustpass/1.0.2/vk-default.txt")
+ dest="vk-default.txt"
+ },
+""")
files = subprocess.check_output(["find", "../external/vulkancts/data/vulkan", "-type", "f"])
file_lines = files.splitlines()
diff --git a/fuchsia/gendepsfile.py b/fuchsia/gendepsfile.py
new file mode 100755
index 0000000..3b069cf
--- /dev/null
+++ b/fuchsia/gendepsfile.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# Copyright 2018 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 vulkan cts dep file")
+ parser.add_argument("depsfile")
+ parser.add_argument("input_dir")
+ args = parser.parse_args()
+
+ files = subprocess.check_output([
+ "find", args.input_dir, "-path", "*/.git", "-prune", "-o", "-type", "f",
+ "-print"
+ ])
+ file_lines = files.splitlines()
+
+ with open(args.depsfile, "w") as depsfile:
+ depsfile.write("build-vulkancts/external/vulkancts/modules/vulkan/deqp-vk: ")
+ depsfile.write(" ".join(x.replace(' ', '\\ ') for x in file_lines))
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main())