From ba8d23a955723fe758ee0d1db49c872292c32e57 Mon Sep 17 00:00:00 2001 From: Niklas Eicker Date: Mon, 17 Jul 2023 17:53:30 +0200 Subject: [PATCH] Resolve glob patterns for android assets --- .gitignore | 2 ++ xbuild/src/command/build.rs | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index ab582f67..1e9cfcb2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ embedded.mobileprovision examples/helloworld/build examples/helloworld/target examples/raqote-winit/target + +.idea/ diff --git a/xbuild/src/command/build.rs b/xbuild/src/command/build.rs index 0289dfb7..b933cf5a 100644 --- a/xbuild/src/command/build.rs +++ b/xbuild/src/command/build.rs @@ -7,6 +7,7 @@ use anyhow::{Context, Result}; use apk::Apk; use appbundle::AppBundle; use appimage::AppImage; +use glob::glob; use msix::Msix; use std::collections::HashSet; use std::ffi::OsStr; @@ -91,16 +92,24 @@ pub fn build(env: &BuildEnv) -> Result<()> { path, optional: false, } => { - let path = env.cargo().package_root().join(path); - apk.add_asset(&path)? + let paths = glob(path.as_os_str().to_str()?)?; + for path in paths { + let path = env.cargo().package_root().join(path?); + apk.add_asset(&path)? + } } OptionalPath::Optional { path, optional: true, } => { - let path = env.cargo().package_root().join(path); - if path.exists() { - apk.add_asset(&path)? + let paths = glob(path.as_os_str().to_str()?)?; + for glob_result in paths { + if let Ok(path) = glob_result { + let path = env.cargo().package_root().join(path); + if path.exists() { + apk.add_asset(&path)? + } + } } } }