diff --git a/cmake/modules/AppTarget.cmake b/cmake/modules/AppTarget.cmake
index 9045277..49b4b67 100644
--- a/cmake/modules/AppTarget.cmake
+++ b/cmake/modules/AppTarget.cmake
@@ -234,14 +234,25 @@ function(add_desktop_file)
"${META_PROJECT_NAME}"
"${DESKTOP_FILE_ADDITIONAL_ENTRIES}"
)
- # create appstream desktop file from template
+
+ # read body for appstream desktop file from resources
set(META_APP_APPDATA_BODY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/resources/body.appdata.xml")
- if(EXISTS META_APP_APPDATA_BODY_FILE)
- file(READ "${META_APP_APPIMAGE_BODY_FILE}" META_APP_APPDATA_BODY)
+ set(META_APP_APPDATA_SUBSTITUTED_BODY_FILE "${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.body.appdata.xml")
+ if(EXISTS "${META_APP_APPDATA_BODY_FILE}")
+ configure_file(
+ "${META_APP_APPDATA_BODY_FILE}"
+ "${META_APP_APPDATA_SUBSTITUTED_BODY_FILE}"
+ @ONLY
+ )
+ file(READ "${META_APP_APPDATA_SUBSTITUTED_BODY_FILE}" META_APP_APPDATA_BODY)
+ # add indentation of two additional spaces
+ string(REGEX REPLACE "\n([^$])" "\n \\1" META_APP_APPDATA_BODY "${META_APP_APPDATA_BODY}")
endif()
+ # create appstream desktop file from template
configure_file(
"${APP_APPSTREAM_TEMPLATE_FILE}"
"${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.appdata.xml"
+ @ONLY
)
# add install for the appstream file
install(
diff --git a/cmake/templates/appdata.xml.in b/cmake/templates/appdata.xml.in
index 9e32986..e325fed 100644
--- a/cmake/templates/appdata.xml.in
+++ b/cmake/templates/appdata.xml.in
@@ -5,10 +5,14 @@
@META_PROJECT_LICENSE@
@META_APP_NAME@
@META_APP_DESCRIPTION@
- @META_APP_APPDATA_BODY@@META_APP_URL@
+ @META_APP_APPDATA_BODY@
+ @META_APP_URL@
@META_APP_BUGTRACKER_URL@
+ @META_APP_AUTHOR@
@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@
- @META_APP_AUTHOR@
+
+
+