CI: Cross-lint for Mac, iOS and Windows (#796)
* CI: Cross-lint for Mac, iOS and Windows We have some conditional code specific to Mac and iOS which is currently untested in the CI, allowing non-compiling code in PRs like #795 to go unnoticed. * Fix new clippy lints
This commit is contained in:
parent
3f5b96b363
commit
49de0341a0
19
.github/workflows/ci.yml
vendored
19
.github/workflows/ci.yml
vendored
|
@ -61,17 +61,30 @@ jobs:
|
||||||
clippy:
|
clippy:
|
||||||
name: Clippy
|
name: Clippy
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
target:
|
||||||
|
- x86_64-pc-windows-msvc
|
||||||
|
- x86_64-unknown-linux-gnu
|
||||||
|
- x86_64-apple-darwin
|
||||||
|
- aarch64-apple-ios
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v1
|
- uses: actions/checkout@v1
|
||||||
|
- name: Add Rust target ${{ matrix.target }}
|
||||||
|
run: rustup target add ${{ matrix.target }}
|
||||||
- name: Clippy lint without features
|
- name: Clippy lint without features
|
||||||
# Only test the core ash, ash-rewrite and ash-window crate, where features reside.
|
# Only test the core ash, ash-rewrite and ash-window crate, where features reside.
|
||||||
# The examples crate would otherwise enable all default features again,
|
# The examples crate would otherwise enable all default features again,
|
||||||
# making this test moot.
|
# making this test moot.
|
||||||
run: cargo clippy -p ash -p ash-rewrite -p ash-window --no-default-features -- -D warnings
|
run: cargo clippy --target ${{ matrix.target }} -p ash -p ash-rewrite -p ash-window --no-default-features -- -D warnings
|
||||||
- name: Clippy lint with all features
|
- name: Clippy lint with all features
|
||||||
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
|
# Examples don't compile for iOS currently due to lacking run_return()
|
||||||
|
if: ${{ matrix.target != 'aarch64-apple-ios' }}
|
||||||
|
run: cargo clippy --target ${{ matrix.target }} --workspace --all-targets --all-features -- -D warnings
|
||||||
- name: Clippy lint with default features
|
- name: Clippy lint with default features
|
||||||
run: cargo clippy --workspace --all-targets -- -D warnings
|
# Examples don't compile for iOS currently due to lacking run_return()
|
||||||
|
if: ${{ matrix.target != 'aarch64-apple-ios' }}
|
||||||
|
run: cargo clippy --target ${{ matrix.target }} --workspace --all-targets -- -D warnings
|
||||||
|
|
||||||
docs:
|
docs:
|
||||||
name: Build-test docs
|
name: Build-test docs
|
||||||
|
|
|
@ -305,7 +305,7 @@ pub trait ConstantExt {
|
||||||
fn variant_ident(&self, enum_name: &str) -> Ident;
|
fn variant_ident(&self, enum_name: &str) -> Ident;
|
||||||
fn notation(&self) -> Option<&str>;
|
fn notation(&self) -> Option<&str>;
|
||||||
fn formatted_notation(&self) -> Option<Cow<'_, str>> {
|
fn formatted_notation(&self) -> Option<Cow<'_, str>> {
|
||||||
static DOC_LINK: Lazy<Regex> = Lazy::new(|| Regex::new(r#"<<([\w-]+)>>"#).unwrap());
|
static DOC_LINK: Lazy<Regex> = Lazy::new(|| Regex::new(r"<<([\w-]+)>>").unwrap());
|
||||||
self.notation().map(|n| {
|
self.notation().map(|n| {
|
||||||
DOC_LINK.replace(
|
DOC_LINK.replace(
|
||||||
n,
|
n,
|
||||||
|
@ -2968,13 +2968,13 @@ pub fn write_source_code<P: AsRef<Path>>(vk_headers_dir: &Path, src_dir: P) {
|
||||||
let mut has_lifetimes = definitions
|
let mut has_lifetimes = definitions
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(get_variant!(vkxml::DefinitionsElement::Struct))
|
.filter_map(get_variant!(vkxml::DefinitionsElement::Struct))
|
||||||
.filter_map(|s| {
|
.filter(|&s| {
|
||||||
s.elements
|
s.elements
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(get_variant!(vkxml::StructElement::Member))
|
.filter_map(get_variant!(vkxml::StructElement::Member))
|
||||||
.any(|x| x.reference.is_some())
|
.any(|x| x.reference.is_some())
|
||||||
.then(|| name_to_tokens(&s.name))
|
|
||||||
})
|
})
|
||||||
|
.map(|s| name_to_tokens(&s.name))
|
||||||
.collect::<HashSet<Ident>>();
|
.collect::<HashSet<Ident>>();
|
||||||
for def in &definitions {
|
for def in &definitions {
|
||||||
match def {
|
match def {
|
||||||
|
|
Loading…
Reference in a new issue