My build system, which uses meson, puts some files my application needs on AppDir under AppDir/usr/share/myapp/resources
. The application needs both, read and write to those files when it is running. The files are in AppDir when I look at it, but when the .AppImage is generated, the standalone running executable cannot access those files. When integrating the application with the desktop, the application gets installed in ~/Applications
, but it doesn't contain those files.
Here is a visualization of how it looks when the application is installed on the system without using AppImage (ninja install
)
usr
share
myapp
resources
MainWindow.glade
dataCache.json
When I do DESTDIR=AppDir ninja install
the structure ends like this
AppDir
usr
share
myapp
resources
MainWindow.glade
dataCache.json
When the application (MyApp.AppImage) is integrated into the user's desktop with AppImageLauncher, it only copies the AppImage into the Applications directory. There are no other folders or files.
Edit: I am using ./linuxdeploy-x86_64.AppImage --appdir AppDir
to create the directory AppDir. Then I use DESTDIR=AppDir ninja install
to install the app to AppDir, and then I use ./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage
to create the AppImage
How would one go to access those files that were in AppDir once the app is bundled? Or how does one make the app integration copy those files to the Applications folder so that the application can have access to them while the application is running?