Fatal error: 'stdbool.h' file not found

I am trying to build a rust dependency but I’m getting the following error:

  --- stderr
  /nix/store/dgsh01r1hypli9d436ahyq36hfvvx18m-pipewire-1.0.7-dev/include/pipewire-0.3/pipewire/version.h:14:10: fatal error: 'stdbool.h' file not found
  thread 'main' panicked at /home/dxwil/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libspa-sys-0.8.0/build.rs:46:39:
  Unable to generate bindings: ClangDiagnostic("/nix/store/dgsh01r1hypli9d436ahyq36hfvvx18m-pipewire-1.0.7-dev/include/pipewire-0.3/pipewire/version.h:14:10: fatal error: 'stdbool.h' file not found\n")

I think I might be missing something in my shell.nix. I just don’t know what

{pkgs ? import <nixpkgs> {}}:

pkgs.mkShell {
  buildInputs = with pkgs; [ cargo glib pkg-config pipewire llvmPackages_12.libclang clang libllvm llvm_18 ];
  LIBCLANG_PATH = "${pkgs.llvmPackages_12.libclang.lib}/lib";
}

cargo.toml

[package]
name = "audioswitcher"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
wireplumber = { version = "0.1", features = ["v0_4_16"], git = "https://github.com/arcnmx/wireplumber.rs" }

That’s not how you build with clang in mkShell, you need to override stdenv

pkgs.mkShell.override {
  stdenv = clang12Stdenv;
} {
  packages = [ cargo glib pkg-config pipewire ];
}

or similar. I’ve also no idea why you’re mixing clang 12 with llvm 18.