0

I try to create a Flatpak package for my application, that is called AppName afterwards. Its uses CMake/make for configuration and compilation.

When I compile normally my application (without using Flatpak), it uses a configuration file that has to be placed in the $HOME/.local/share/AppName/config folder. I place this file in this folder using this CMake command

install(FILES ${PROJECT_SOURCE_DIR}/config/config.ini DESTINATION $ENV{HOME}/.local/share/AppName)

It works well. Now, when when I create the Flatpak package, it looks for the configuration file in $HOME/.var/app/org.flatpak.AppName/data/AppName/config.ini"

How could I design my CMakeLists.txt so that it uses $ENV{HOME}/.local/share/AppName when I do not use Flatpak and $HOME/.var/app/org.flatpak.AppName/data/AppName when I create a Flatpak package?

In short, I am looking for a CMake snippet like

if(FLATPAK)
  install(FILES ${PROJECT_SOURCE_DIR}/config/config.ini DESTINATION $ENV{HOME}/.var/app/org.flatpak.AppName/data/AppName)
else()
  install(FILES ${PROJECT_SOURCE_DIR}/config/config.ini DESTINATION $ENV{HOME}/.local/share/AppName)
endif()
Pamputt
  • 173
  • 1
  • 11
  • Have you considered making an [`option(FLATPAK "install to flatpak-style dir" )`](https://cmake.org/cmake/help/latest/command/option.html)? – starball Oct 10 '22 at 20:44

0 Answers0