From 989d1d20c829b673ca2458cd1dec4f5c5d580484 Mon Sep 17 00:00:00 2001 From: Martchus Date: Wed, 21 Feb 2018 21:55:52 +0100 Subject: [PATCH] Allow using templated appdata body --- cmake/modules/AppTarget.cmake | 17 ++++++++++++++--- cmake/templates/appdata.xml.in | 8 ++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) 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@ + + +