use serde_derive::{Deserialize, Serialize};
use crate::base::fileset::FileSet;
use crate::base::utils::default_true;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct AppImageConfig {
pub exe_files: Vec<String>,
#[serde(default = "default_true")]
pub embed_libs: bool,
pub files: Option<Vec<FileSet>>,
#[serde(default = "default_exclude_libs")]
pub exclude_libs: Vec<String>,
}
impl Default for AppImageConfig {
fn default() -> Self {
AppImageConfig {
exe_files: Vec::new(),
embed_libs: true,
files: None,
exclude_libs: default_exclude_libs(),
}
}
}
fn default_exclude_libs() -> Vec<String> {
vec![
"libc.so.6".to_string(),
"libdl.so.2".to_string(),
"libm.so.6".to_string(),
"libpthread.so.0".to_string(),
]
}