build: only build dxil on windows
This commit is contained in:
parent
c0a1b56f4e
commit
f4bdf160ab
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
|
@ -39,9 +39,6 @@ jobs:
|
||||||
- if: runner.os == 'Windows'
|
- if: runner.os == 'Windows'
|
||||||
run: pip install meson ninja mako
|
run: pip install meson ninja mako
|
||||||
name: Install Meson for spirv-to-dxil-sys
|
name: Install Meson for spirv-to-dxil-sys
|
||||||
- if: runner.os == 'Linux'
|
|
||||||
name: Install Mesa build deps
|
|
||||||
run: apt-get build-dep mesa
|
|
||||||
- name: Build dynamic library
|
- name: Build dynamic library
|
||||||
run: cargo run -p librashader-build-script -- --profile ${{ matrix.profile }}
|
run: cargo run -p librashader-build-script -- --profile ${{ matrix.profile }}
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
|
|
|
@ -12,7 +12,7 @@ description = "RetroArch shaders for all."
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde = { version = "1.0" }
|
serde = { version = "1.0" }
|
||||||
librashader-reflect = { path = "../librashader-reflect", version = "0.1.4", features = ["serialize", "dxil"] }
|
librashader-reflect = { path = "../librashader-reflect", version = "0.1.4", features = ["serialize"] }
|
||||||
librashader-preprocess = { path = "../librashader-preprocess", version = "0.1.4" }
|
librashader-preprocess = { path = "../librashader-preprocess", version = "0.1.4" }
|
||||||
platform-dirs = "0.3.0"
|
platform-dirs = "0.3.0"
|
||||||
blake3 = { version = "1.3.3" }
|
blake3 = { version = "1.3.3" }
|
||||||
|
@ -32,7 +32,7 @@ features = [
|
||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
d3d = ["windows"]
|
d3d = ["windows", "librashader-reflect/dxil"]
|
||||||
|
|
||||||
# hack to get building on docsrs
|
# hack to get building on docsrs
|
||||||
docsrs = ["blake3/pure", "rusqlite/in_gecko"]
|
docsrs = ["blake3/pure", "rusqlite/in_gecko"]
|
||||||
|
|
|
@ -56,6 +56,7 @@ impl<T: ShaderCompilation + for<'de> serde::Deserialize<'de> + serde::Serialize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(all(target_os = "windows", feature = "d3d"))]
|
||||||
impl FromCompilation<CachedCompilation<GlslangCompilation>> for DXIL {
|
impl FromCompilation<CachedCompilation<GlslangCompilation>> for DXIL {
|
||||||
type Target = <DXIL as FromCompilation<GlslangCompilation>>::Target;
|
type Target = <DXIL as FromCompilation<GlslangCompilation>>::Target;
|
||||||
type Options = <DXIL as FromCompilation<GlslangCompilation>>::Options;
|
type Options = <DXIL as FromCompilation<GlslangCompilation>>::Options;
|
||||||
|
|
|
@ -24,12 +24,16 @@ librashader-preprocess = { path = "../librashader-preprocess", version = "0.1.4"
|
||||||
librashader-presets = { path = "../librashader-presets", version = "0.1.4" }
|
librashader-presets = { path = "../librashader-presets", version = "0.1.4" }
|
||||||
|
|
||||||
spirv_cross = { package = "librashader-spirv-cross", version = "0.23", optional = true }
|
spirv_cross = { package = "librashader-spirv-cross", version = "0.23", optional = true }
|
||||||
spirv-to-dxil = { version = "0.4", optional = true }
|
|
||||||
naga = { version = "0.11.0", features = ["glsl-in", "spv-in", "spv-out", "glsl-out", "wgsl-out"], optional = true }
|
naga = { version = "0.11.0", features = ["glsl-in", "spv-in", "spv-out", "glsl-out", "wgsl-out"], optional = true }
|
||||||
|
|
||||||
rspirv = { version = "0.11.0+1.5.4", optional = true }
|
rspirv = { version = "0.11.0+1.5.4", optional = true }
|
||||||
|
|
||||||
serde = { version = "1.0", features = ["derive"], optional = true }
|
serde = { version = "1.0", features = ["derive"], optional = true }
|
||||||
|
|
||||||
|
[target.'cfg(windows)'.dependencies.spirv-to-dxil]
|
||||||
|
version = "0.4"
|
||||||
|
optional = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["cross", "serialize"]
|
default = ["cross", "serialize"]
|
||||||
unstable-naga = [ "naga", "rspirv" ]
|
unstable-naga = [ "naga", "rspirv" ]
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
pub mod cross;
|
pub mod cross;
|
||||||
#[cfg(feature = "dxil")]
|
#[cfg(all(target_os = "windows", feature = "dxil"))]
|
||||||
pub mod dxil;
|
pub mod dxil;
|
||||||
mod spirv;
|
mod spirv;
|
||||||
pub mod targets;
|
pub mod targets;
|
||||||
|
|
|
@ -23,7 +23,7 @@ pub enum ShaderCompileError {
|
||||||
SpirvCrossCompileError(#[from] spirv_cross::ErrorCode),
|
SpirvCrossCompileError(#[from] spirv_cross::ErrorCode),
|
||||||
|
|
||||||
/// Error when transpiling from spirv-to-dxil
|
/// Error when transpiling from spirv-to-dxil
|
||||||
#[cfg(feature = "dxil")]
|
#[cfg(all(target_os = "windows", feature = "dxil"))]
|
||||||
#[error("spirv-to-dxil")]
|
#[error("spirv-to-dxil")]
|
||||||
SpirvToDxilCompileError(#[from] spirv_to_dxil::SpirvToDxilError),
|
SpirvToDxilCompileError(#[from] spirv_to_dxil::SpirvToDxilError),
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,8 +170,8 @@ pub mod reflect {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// DXIL reflection via spirv-to-dxil.
|
/// DXIL reflection via spirv-to-dxil.
|
||||||
#[cfg(feature = "reflect-dxil")]
|
#[cfg(all(target_os = "windows", feature = "reflect-dxil"))]
|
||||||
#[doc(cfg(feature = "reflect-dxil"))]
|
#[doc(cfg(all(target_os = "windows", feature = "reflect-dxil")))]
|
||||||
pub mod dxil {
|
pub mod dxil {
|
||||||
/// The maximum shader model to use when compiling the DXIL blob.
|
/// The maximum shader model to use when compiling the DXIL blob.
|
||||||
pub use librashader_reflect::back::dxil::ShaderModel;
|
pub use librashader_reflect::back::dxil::ShaderModel;
|
||||||
|
|
Loading…
Reference in a new issue