Make direct winapi deps optional (#767)

This commit is contained in:
Jimmy Hartzell 2023-04-01 07:07:46 -04:00 committed by GitHub
parent 1af259f9ce
commit b354b4cc34
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 2 deletions

View File

@ -63,8 +63,12 @@ jobs:
run: cargo test --all-features -- --nocapture --test-threads 1
continue-on-error: ${{ matrix.can-fail }}
- name: Test no default features
if: matrix.os != 'windows-2019'
run: cargo test --no-default-features -- --nocapture --test-threads 1
continue-on-error: ${{ matrix.can-fail }}
- name: Test no default features with windows feature enabled
if: matrix.os == 'windows-2019'
run: cargo test --no-default-features --features windows -- --nocapture --test-threads 1
- name: Test Packaging
if: matrix.rust == 'stable'
run: cargo package

View File

@ -26,7 +26,8 @@ all-features = true
# Features
#
[features]
default = ["bracketed-paste"]
default = ["bracketed-paste", "windows"]
windows = ["winapi", "crossterm_winapi"]
bracketed-paste = []
event-stream = ["futures-core"]
use-dev-tty = ["filedescriptor"]
@ -48,9 +49,10 @@ serde = { version = "1.0", features = ["derive"], optional = true }
[target.'cfg(windows)'.dependencies.winapi]
version = "0.3.9"
features = ["winuser", "winerror"]
optional = true
[target.'cfg(windows)'.dependencies]
crossterm_winapi = "0.9"
crossterm_winapi = { version = "0.9", optional = true }
#
# UNIX dependencies

View File

@ -257,3 +257,12 @@ pub mod ansi_support;
mod command;
mod error;
pub(crate) mod macros;
#[cfg(all(windows, not(feature = "windows")))]
compile_error!("Compiling on Windows with \"windows\" feature disabled. Feature \"windows\" should only be disabled when project will never be compiled on Windows.");
#[cfg(all(winapi, not(feature = "winapi")))]
compile_error!("Compiling on Windows with \"winapi\" feature disabled. Feature \"winapi\" should only be disabled when project will never be compiled on Windows.");
#[cfg(all(crossterm_winapi, not(feature = "crossterm_winapi")))]
compile_error!("Compiling on Windows with \"crossterm_winapi\" feature disabled. Feature \"crossterm_winapi\" should only be disabled when project will never be compiled on Windows.");