aboutsummaryrefslogtreecommitdiff
path: root/adapters/fparkan-render-vulkan/build.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-09-06 04:22:12 +0300
committerValentin Popov <valentin@popov.link>2026-09-06 04:22:12 +0300
commitaa51f3574d3d4d4e0fa59653eedd718fceb5d1bd (patch)
tree9a43f6a3f3c86767e4e2b7316051562d96789f06 /adapters/fparkan-render-vulkan/build.rs
parentda03e77f53bb33b2fe203ac45578289953a1b524 (diff)
downloadfparkan-aa51f3574d3d4d4e0fa59653eedd718fceb5d1bd.tar.xz
fparkan-aa51f3574d3d4d4e0fa59653eedd718fceb5d1bd.zip
chore: simplify project to engine docs and tests
Remove planning and acceptance scaffolding while retaining the native Vulkan mission preview, format readers, runtime algorithms, and ordinary Rust tests. Keep the book aligned with the runnable project and validate checked-in shaders without generated tool metadata.
Diffstat (limited to 'adapters/fparkan-render-vulkan/build.rs')
-rw-r--r--adapters/fparkan-render-vulkan/build.rs92
1 files changed, 0 insertions, 92 deletions
diff --git a/adapters/fparkan-render-vulkan/build.rs b/adapters/fparkan-render-vulkan/build.rs
deleted file mode 100644
index d66c022..0000000
--- a/adapters/fparkan-render-vulkan/build.rs
+++ /dev/null
@@ -1,92 +0,0 @@
-//! Build-time shader tool metadata for Vulkan reports.
-
-use std::env;
-use std::path::Path;
-use std::process::Command;
-
-const SHADER_COMPILER_NAME: &str = "glslangValidator";
-const SPIRV_VALIDATOR_NAME: &str = "spirv-val";
-
-fn main() {
- println!("cargo:rerun-if-env-changed=PATH");
- println!("cargo:rerun-if-env-changed=FPARKAN_GLSLANG_VALIDATOR");
- println!("cargo:rerun-if-env-changed=FPARKAN_SPIRV_VAL");
-
- emit_tool_metadata(
- "FPARKAN_BUILD_SHADER_COMPILER",
- &tool_path("FPARKAN_GLSLANG_VALIDATOR", SHADER_COMPILER_NAME),
- );
- emit_tool_metadata(
- "FPARKAN_BUILD_SPIRV_VALIDATOR",
- &tool_path("FPARKAN_SPIRV_VAL", SPIRV_VALIDATOR_NAME),
- );
-}
-
-fn tool_path(env_var: &str, fallback: &str) -> String {
- env::var(env_var).unwrap_or_else(|_| fallback.to_string())
-}
-
-fn emit_tool_metadata(prefix: &str, tool: &str) {
- let Some(path) = resolve_tool(tool) else {
- return;
- };
- println!("cargo:rerun-if-changed={}", path.display());
- let Some(version) = tool_version(&path) else {
- return;
- };
- let Some(binary_sha256) = tool_sha256(&path) else {
- return;
- };
- let name = path
- .file_name()
- .and_then(|value| value.to_str())
- .unwrap_or(tool)
- .to_string();
- println!("cargo:rustc-env={prefix}_NAME={name}");
- println!("cargo:rustc-env={prefix}_VERSION={version}");
- println!("cargo:rustc-env={prefix}_SHA256={binary_sha256}");
-}
-
-fn resolve_tool(tool: &str) -> Option<std::path::PathBuf> {
- let candidate = Path::new(tool);
- if candidate.components().count() > 1 {
- return candidate.is_file().then(|| candidate.to_path_buf());
- }
- let output = Command::new("which").arg(tool).output().ok()?;
- if !output.status.success() {
- return None;
- }
- let path = String::from_utf8(output.stdout).ok()?;
- let path = path.trim();
- (!path.is_empty()).then(|| path.into())
-}
-
-fn tool_version(path: &Path) -> Option<String> {
- let output = Command::new(path).arg("--version").output().ok()?;
- if !output.status.success() {
- return None;
- }
- let stdout = String::from_utf8(output.stdout).ok()?;
- stdout
- .lines()
- .find(|line| !line.trim().is_empty())
- .map(str::trim)
- .map(|line| {
- line.strip_prefix("Glslang Version: ")
- .unwrap_or(line)
- .to_string()
- })
-}
-
-fn tool_sha256(path: &Path) -> Option<String> {
- let output = Command::new("shasum")
- .args(["-a", "256"])
- .arg(path)
- .output()
- .ok()?;
- if !output.status.success() {
- return None;
- }
- let stdout = String::from_utf8(output.stdout).ok()?;
- stdout.split_whitespace().next().map(ToString::to_string)
-}