Add support and CI tests for BSDs
This adds a fallback using `shm_open`/`shm_unlink` for platforms where `memfd_create` doesn't exist. This seems to be how this is normally handled, though it's a bit ugly. This also builds the wayland/x11 code for NetBSD/OpenBSD/DragonFlyBSD. Add CI builds for FreeBSD and NetBSD. We would need some kind of virtualisation though to actually run tests on such targets. I've tested the `shm_open` logic on Linux, but haven't run it on any BSDs.
This commit is contained in:
parent
afe6da235b
commit
4f6542ceaa
4 changed files with 112 additions and 16 deletions
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
|
|
@ -33,6 +33,8 @@ jobs:
|
|||
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, options: --no-default-features, features: x11 }
|
||||
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest, options: --no-default-features, features: "wayland,wayland-dlopen" }
|
||||
- { target: x86_64-unknown-redox, os: ubuntu-latest, }
|
||||
- { target: x86_64-unknown-freebsd, os: ubuntu-latest, }
|
||||
- { target: x86_64-unknown-netbsd, os: ubuntu-latest, }
|
||||
- { target: x86_64-apple-darwin, os: macos-latest, }
|
||||
# We're using Windows rather than Ubuntu to run the wasm tests because caching cargo-web
|
||||
# doesn't currently work on Linux.
|
||||
|
|
@ -77,6 +79,8 @@ jobs:
|
|||
if: >
|
||||
!((matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')) &&
|
||||
!contains(matrix.platform.target, 'redox') &&
|
||||
!contains(matrix.platform.target, 'freebsd') &&
|
||||
!contains(matrix.platform.target, 'netbsd') &&
|
||||
matrix.rust_version != '1.60.0'
|
||||
run: cargo $CMD test --no-run --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
|
||||
|
||||
|
|
@ -85,7 +89,9 @@ jobs:
|
|||
if: >
|
||||
!((matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')) &&
|
||||
!contains(matrix.platform.target, 'wasm32') &&
|
||||
!contains(matrix.platform.target, 'redox')
|
||||
!contains(matrix.platform.target, 'redox') &&
|
||||
!contains(matrix.platform.target, 'freebsd') &&
|
||||
!contains(matrix.platform.target, 'netbsd')
|
||||
run: cargo $CMD test --verbose --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES
|
||||
|
||||
- name: Lint with clippy
|
||||
|
|
@ -94,5 +100,7 @@ jobs:
|
|||
(matrix.rust_version == 'stable') &&
|
||||
!contains(matrix.platform.options, '--no-default-features') &&
|
||||
!((matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')) &&
|
||||
!contains(matrix.platform.target, 'redox')
|
||||
!contains(matrix.platform.target, 'redox') &&
|
||||
!contains(matrix.platform.target, 'freebsd') &&
|
||||
!contains(matrix.platform.target, 'netbsd')
|
||||
run: cargo clippy --all-targets --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES -- -Dwarnings
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue