feat(single-instance): Add semver compatibility check for Windows and Linux (#502)

* added semver compatibility check for Windows and Linux

* fixed formatting

* put semver feature behind a feature flag

* remove semver from root manifest

* linux compile error

* docs: Add mention for semver feature in readme

---------

Co-authored-by: FabianLars <fabianlars@fabianlars.de>
This commit is contained in:
matthme
2024-04-15 13:54:09 +00:00
committed by GitHub
parent 57e979adaf
commit 4210cf316a
7 changed files with 63 additions and 3 deletions
@@ -1,5 +1,8 @@
#![cfg(target_os = "windows")]
#[cfg(feature = "semver")]
use crate::semver_compat::semver_compat_string;
use crate::SingleInstanceCallback;
use std::ffi::CStr;
use tauri::{
@@ -29,7 +32,13 @@ const WMCOPYDATA_SINGLE_INSTANCE_DATA: usize = 1542;
pub fn init<R: Runtime>(f: Box<SingleInstanceCallback<R>>) -> TauriPlugin<R> {
plugin::Builder::new("single-instance")
.setup(|app| {
let id = &app.config().tauri.bundle.identifier;
#[allow(unused_mut)]
let mut id = app.config().tauri.bundle.identifier.clone();
#[cfg(feature = "semver")]
{
id.push('_');
id.push_str(semver_compat_string(app.package_info().version.clone()).as_str());
}
let class_name = encode_wide(format!("{id}-sic"));
let window_name = encode_wide(format!("{id}-siw"));