diff --git a/Cargo.toml b/Cargo.toml index 41f2327..48bde95 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,9 @@ [workspace] members = [ "spirv-tools-sys", + "tools/generate", "tools/package", - "tools/install" + "tools/install", ] [package] diff --git a/spirv-tools-sys/generate.sh b/spirv-tools-sys/generate.sh deleted file mode 100755 index 526554c..0000000 --- a/spirv-tools-sys/generate.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -set -eu - -dir=$(dirname "$(dirname "$0")") - -if ! [ -d "${dir}/target" ]; then - mkdir "${dir}/target" -fi - -# Compile our "script" if the binary doesn't already exist -if [ "${1-}" == "-f" ] || ! [ -f "${dir}/target/generate" ]; then - echo "Compiling generate..." - - rustc -g -o "${dir}/target/generate" "${dir}/spirv-tools-sys/generate.rs" - - if [ "${1-}" == "-f" ]; then - # remove the force flag when sending the arguments to generate - shift - fi -fi - -gen=$(realpath "${dir}/target/generate") -(cd spirv-tools-sys && $gen "${@}") diff --git a/tools/generate/Cargo.toml b/tools/generate/Cargo.toml new file mode 100644 index 0000000..40f949d --- /dev/null +++ b/tools/generate/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "generate" +version = "0.1.0" +edition = "2021" +publish = false + +[[bin]] +name = "generate" +path = "main.rs" +test = false +bench = false diff --git a/spirv-tools-sys/generate.rs b/tools/generate/main.rs similarity index 95% rename from spirv-tools-sys/generate.rs rename to tools/generate/main.rs index e383d89..03da36f 100644 --- a/spirv-tools-sys/generate.rs +++ b/tools/generate/main.rs @@ -3,6 +3,7 @@ // to in a simple script and commit them to source control, as they only need // to be regenerated when spirv-headers is updated +use std::path::PathBuf; use std::{fs, process::Command}; fn python>(args: impl IntoIterator) -> Result<(), i32> { @@ -20,7 +21,9 @@ fn python>(args: impl IntoIterator) -> Resul } fn main() { - fs::create_dir_all("generated").expect("unable to create 'generated'"); + let sys_root = PathBuf::from_iter([env!("CARGO_MANIFEST_DIR"), "..", "..", "spirv-tools-sys"]); + fs::create_dir_all(&sys_root.join("generated")).expect("unable to create 'generated'"); + std::env::set_current_dir(&sys_root).unwrap(); python(&[ "spirv-tools/utils/update_build_version.py", diff --git a/tools/generate/vulkan-sdk-update.md b/tools/generate/vulkan-sdk-update.md new file mode 100644 index 0000000..4691e39 --- /dev/null +++ b/tools/generate/vulkan-sdk-update.md @@ -0,0 +1,6 @@ +# Vulkan sdk update + +1. in `.gitmodules` set branch for both submodules to the new vulkan sdk version's branch +2. update submodules: `git submodule update --remote` +3. regenerate generated header files, requires python: `cargo run generate` +4. try to compile and run the tests, fixup any errors: `cargo test --all-features`