Add Android NDK Vulkan validation layers libraries
Fix #10094
Closes #10095.
PiperOrigin-RevId: 308180797
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
index dc33d59..afd0ea6 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java
@@ -85,11 +85,14 @@
String ccToolchainSuiteTemplate = getTemplate("android_ndk_cc_toolchain_suite_template.txt");
String ccToolchainTemplate = getTemplate("android_ndk_cc_toolchain_template.txt");
String stlFilegroupTemplate = getTemplate("android_ndk_stl_filegroup_template.txt");
+ String vulkanValidationLayersTemplate =
+ getTemplate("android_ndk_vulkan_validation_layers_template.txt");
String miscLibrariesTemplate = getTemplate("android_ndk_misc_libraries_template.txt");
StringBuilder ccToolchainSuites = new StringBuilder();
StringBuilder ccToolchainRules = new StringBuilder();
StringBuilder stlFilegroups = new StringBuilder();
+ StringBuilder vulkanValidationLayers = new StringBuilder();
for (CrosstoolStlPair crosstoolStlPair : crosstools) {
// Create the cc_toolchain_suite rule
@@ -131,6 +134,14 @@
.replace("%name%", entry.getKey())
.replace("%fileGlobPattern%", entry.getValue()));
}
+
+ // Create the Vulkan validation layers libraries
+ for (CToolchain toolchain : crosstool.getToolchainList()) {
+ vulkanValidationLayers.append(
+ vulkanValidationLayersTemplate
+ .replace("%toolchainName%", toolchain.getToolchainIdentifier())
+ .replace("%cpu%", toolchain.getTargetCpu()));
+ }
}
return buildFileTemplate
@@ -139,6 +150,7 @@
.replace("%ccToolchainSuites%", ccToolchainSuites)
.replace("%ccToolchainRules%", ccToolchainRules)
.replace("%stlFilegroups%", stlFilegroups)
+ .replace("%vulkanValidationLayers%", vulkanValidationLayers)
.replace("%miscLibraries%", miscLibrariesTemplate);
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_build_file_template.txt b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_build_file_template.txt
index 0d0fbb4..b8e58e5 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_build_file_template.txt
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_build_file_template.txt
@@ -53,6 +53,12 @@
%stlFilegroups%
################################################################
+# Vulkan validation layers libraries
+################################################################
+
+%vulkanValidationLayers%
+
+################################################################
# Miscellaneous runtime libraries
################################################################
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_vulkan_validation_layers_template.txt b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_vulkan_validation_layers_template.txt
new file mode 100644
index 0000000..dd32111
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/android_ndk_vulkan_validation_layers_template.txt
@@ -0,0 +1,4 @@
+cc_library(
+ name = "vulkan_validation_layers_%toolchainName%",
+ srcs = glob(["ndk/sources/third_party/vulkan/src/build-android/jniLibs/%cpu%/libVkLayer_*.so"]),
+)