diff --git a/Cargo.toml b/Cargo.toml index 4c19097..fb92c50 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,7 +35,7 @@ unicode-width = "0.1.5" dbus = { version = "0.6.4", optional = true } rand = "0.6.5" webbrowser = "0.5" -clipboard = "0.5" +clipboard = { version = "0.5", optional = true } [dependencies.librespot] git = "https://github.com/librespot-org/librespot.git" @@ -46,10 +46,11 @@ version = "0.12" default-features = false [features] +share_clipboard = ["clipboard"] alsa_backend = ["librespot/alsa-backend"] pulseaudio_backend = ["librespot/pulseaudio-backend"] rodio_backend = ["librespot/rodio-backend"] portaudio_backend = ["librespot/portaudio-backend"] termion_backend = ["cursive/termion-backend"] mpris = ["dbus"] -default = ["rodio_backend", "mpris", "cursive/pancurses-backend"] +default = ["share_clipboard", "rodio_backend", "mpris", "cursive/pancurses-backend"] diff --git a/src/main.rs b/src/main.rs index 620ca83..53a3eb4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ extern crate clap; extern crate crossbeam_channel; #[macro_use] extern crate cursive; +#[cfg(feature = "share_clipboard")] extern crate clipboard; extern crate directories; extern crate failure; diff --git a/src/ui/contextmenu.rs b/src/ui/contextmenu.rs index bdd427e..c3568be 100644 --- a/src/ui/contextmenu.rs +++ b/src/ui/contextmenu.rs @@ -4,6 +4,7 @@ use cursive::view::ViewWrapper; use cursive::views::{Dialog, SelectView}; use cursive::Cursive; +#[cfg(feature = "share_clipboard")] use clipboard::{ClipboardContext, ClipboardProvider}; use library::Library; use queue::Queue; @@ -30,6 +31,7 @@ impl ContextMenu { content.add_item("Show album", ContextMenuAction::ShowItem(Box::new(a))); } if let Some(url) = item.share_url() { + #[cfg(feature = "share_clipboard")] content.add_item("Share", ContextMenuAction::ShareUrl(url)); } @@ -45,9 +47,12 @@ impl ContextMenu { } } ContextMenuAction::ShareUrl(url) => { - ClipboardProvider::new() - .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url.to_string())) - .ok(); + #[cfg(feature = "share_clipboard")] + { + ClipboardProvider::new() + .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url.to_string())) + .ok(); + } } }); }); diff --git a/src/ui/listview.rs b/src/ui/listview.rs index 64b0702..3641acb 100644 --- a/src/ui/listview.rs +++ b/src/ui/listview.rs @@ -9,6 +9,7 @@ use cursive::view::ScrollBase; use cursive::{Cursive, Printer, Rect, Vec2}; use unicode_width::UnicodeWidthStr; +#[cfg(feature = "share_clipboard")] use clipboard::{ClipboardContext, ClipboardProvider}; use command::{Command, GotoMode, MoveMode, TargetMode}; use commands::CommandResult; @@ -321,6 +322,7 @@ impl ViewExt for ListView { }; if let Some(url) = url { + #[cfg(feature = "share_clipboard")] ClipboardProvider::new() .and_then(|mut ctx: ClipboardContext| ctx.set_contents(url)) .ok();