build regenerating SkJumper stages into GN
I _think_ this makes it so changes to _stages.cpp or _lowp.cpp get
noticed, regenerated, and baked into Skia all in the same Ninja
invocation.
Now you just need to set up the tools we use in GN:
skia_jumper_clang = ...
skia_jumper_objdump = ...
skia_jumper_ccache = ...
Change-Id: I09fb54d965644ff6e5825056fb0be2c7cab2ea92
Reviewed-on: https://skia-review.googlesource.com/21140
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 9ba71b2..0401d08 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -41,6 +41,10 @@
skia_enable_tools = is_skia_dev_build
skia_enable_vulkan_debug_layers = is_skia_dev_build && is_debug
skia_vulkan_sdk = getenv("VULKAN_SDK")
+
+ skia_jumper_clang = ""
+ skia_jumper_objdump = ""
+ skia_jumper_ccache = ""
}
declare_args() {
skia_use_dng_sdk = !is_fuchsia && skia_use_libjpeg_turbo && skia_use_zlib
@@ -1542,3 +1546,28 @@
}
}
}
+
+if (skia_jumper_clang != "") {
+ action("regen_jumper") {
+ script = "src/jumper/build_stages.py"
+
+ inputs = [
+ "src/jumper/SkJumper_stages.cpp",
+ "src/jumper/SkJumper_stages_lowp.cpp",
+ ]
+
+ # GN insists its outputs should go somewhere underneath target_out_dir, so we trick it.
+ outputs = [
+ "$target_out_dir/" +
+ rebase_path("src/jumper/SkJumper_generated.S", target_out_dir),
+ "$target_out_dir/" +
+ rebase_path("src/jumper/SkJumper_generated_win.S", target_out_dir),
+ ]
+
+ args = [
+ skia_jumper_clang,
+ skia_jumper_objdump,
+ skia_jumper_ccache,
+ ] + rebase_path(inputs) + rebase_path(outputs)
+ }
+}