1[package]
2name = "jgenesis-gui"
3version = { workspace = true }
4edition = "2024"

See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

8[[bin]]
9name = "jgenesis"
10path = "src/main.rs"
12[features]
13default = ["sdl3-build-from-source"]
14unstable-cores = []
15
16sdl3-build-from-source = ["sdl3/build-from-source"]
17sdl3-static-link = ["sdl3/static-link"]
18
19[dependencies]
20cdrom = { workspace = true }
21jgenesis-common = { workspace = true, features = ["serde"] }
22jgenesis-proc-macros = { workspace = true }
23
24genesis-components = { workspace = true }
25genesis-core = { workspace = true }
26nes-core = { workspace = true }
27pce-core = { workspace = true }
28segacd-core = { workspace = true }
29smsgg-core = { workspace = true }
30snes-core = { workspace = true }
31ti-sn76489 = { workspace = true }
32
33gb-config = { workspace = true }
34gba-config = { workspace = true }
35genesis-config = { workspace = true }
36nes-config = { workspace = true }
37pce-config = { workspace = true }
38smsgg-config = { workspace = true }
39snes-config = { workspace = true }
40
41jgenesis-native-config = { workspace = true}
42jgenesis-native-driver = { workspace = true }
43jgenesis-renderer = { workspace = true }
44egui-sdl3-wgpu = { workspace = true }
45
46anyhow = { workspace = true }
47clap = { workspace = true }
48egui = { workspace = true }
49egui_extras = { workspace = true }
50egui-system-fonts = { workspace = true }
51emath = { workspace = true }
52env_logger = { workspace = true }
53image = { workspace = true, features = ["png"] }
54log = { workspace = true, features = ["release_max_level_info"] }
55polonius-the-crab = { workspace = true }
56regex = { workspace = true }
57rfd = { workspace = true }
58sdl3 = { workspace = true }
59serde = { workspace = true }
60time = { workspace = true, features = ["formatting", "local-offset"] }
61toml = { workspace = true }
62
63[package.metadata.packager]
64icons = ["../256x256.png"]

Nightly toolchain used because of -Ztune-cpu codegen arg Statically link SDL3 because otherwise the AppImage fails to build when building SDL3 from source

67before-packaging-command = """
68RUSTFLAGS='-C target-cpu=x86-64-v2 -Z tune-cpu=x86-64-v3' \
69JGENESIS_APPIMAGE_BUILD=1 \
70cargo +nightly build --profile release-lto --features sdl3-static-link"""
72[package.metadata.packager.appimage]

Including any Wayland-related libraries in the AppImage package can cause the app to fail to start on some distros, such as Solus Plasma; having mismatched Wayland library versions seems to cause wgpu to fail to load graphics libraries

75excludedLibs = ["libwayland*"]
77[lints]
78workspace = true