Update skslc compiler script to allow for output path flexibility.
Previously, the script was hardcoded to use the input file's path, plus
"/golden/". In a followup CL, we are going to move the input files into
the resources/ directory but keep the output files in tests/, so we
needed additional flexibility here.
Change-Id: I8d5a78f6a8efd9a0e7f2a6d1ad8ad72a46cf70ce
Bug: skia:11009
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/357280
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index c651048..18a2c1b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -708,16 +708,25 @@
":sksl_pre_includes",
":skslc(//gn/toolchain:$host_toolchain)",
]
- sources = invoker.sources
+ sources = []
outputs = []
- foreach(src, sources) {
+ args = [
+ rebase_path(skslc_path),
+ invoker.lang,
+ invoker.settings,
+ ]
+
+ foreach(src, invoker.sources) {
dir = get_path_info(src, "dir")
name = get_path_info(src, "name")
ext = get_path_info(src, "extension")
- foreach(outputPattern, invoker.outputPatterns) {
- outDirectory = outputPattern[0]
- outExtension = outputPattern[1]
+ args += rebase_path([
+ src,
+ dir + "/golden/",
+ ])
+ sources += [ src ]
+ foreach(outExtension, invoker.outExtensions) {
# SPIR-V uses separate extensions for .vert and .geom shaders.
if (outExtension == ".asm.frag" && ext == "vert") {
outExtension = ".asm.vert"
@@ -725,75 +734,48 @@
outExtension = ".asm.geom"
}
outputs += [ target_out_dir + "/" +
- rebase_path(dir + outDirectory + name + outExtension,
+ rebase_path(dir + "/golden/" + name + outExtension,
target_out_dir) ]
}
}
- args = [
- rebase_path(skslc_path),
- invoker.lang,
- invoker.settings,
- ]
- args += rebase_path(sources)
}
}
compile_sksl("fp_tests") {
sources = sksl_fp_tests_sources
- outputPatterns = [
- [
- "/golden/",
- ".cpp",
- ],
- [
- "/golden/",
- ".h",
- ],
+ outExtensions = [
+ ".cpp",
+ ".h",
]
lang = "--fp"
settings = "--settings"
}
compile_sksl("glsl_tests") {
sources = sksl_glsl_tests_sources + sksl_glsl_settings_tests_sources
- outputPatterns = [ [
- "/golden/",
- ".glsl",
- ] ]
+ outExtensions = [ ".glsl" ]
lang = "--glsl"
settings = "--settings"
}
compile_sksl("glsl_nosettings_tests") {
sources = sksl_glsl_settings_tests_sources
- outputPatterns = [ [
- "/golden/",
- "StandaloneSettings.glsl",
- ] ]
+ outExtensions = [ "StandaloneSettings.glsl" ]
lang = "--glsl"
settings = "--nosettings"
}
compile_sksl("metal_tests") {
sources = sksl_metal_tests_sources
- outputPatterns = [ [
- "/golden/",
- ".metal",
- ] ]
+ outExtensions = [ ".metal" ]
lang = "--metal"
settings = "--settings"
}
compile_sksl("skvm_tests") {
sources = sksl_skvm_tests_sources
- outputPatterns = [ [
- "/golden/",
- ".skvm",
- ] ]
+ outExtensions = [ ".skvm" ]
lang = "--skvm"
settings = "--settings"
}
compile_sksl("spirv_tests") {
sources = sksl_spirv_tests_sources
- outputPatterns = [ [
- "/golden/",
- ".asm.frag",
- ] ]
+ outExtensions = [ ".asm.frag" ]
lang = "--spirv"
settings = "--settings"
}