diff --git a/examples/galleryapp/CMakeLists.txt b/examples/galleryapp/CMakeLists.txt --- a/examples/galleryapp/CMakeLists.txt +++ b/examples/galleryapp/CMakeLists.txt @@ -9,6 +9,30 @@ set(kirigami2gallery_EXTRA_LIBS Qt5::AndroidExtras Qt5::QuickControls2) endif() +find_program(kpackagetool_cmd kpackagetool5) +if (kpackagetool_cmd) + set(component org.kde.kirigami2.gallery) + set(APPDATAFILE "${CMAKE_CURRENT_BINARY_DIR}/${component}.appdata.xml") + + message(STATUS "${kpackagetool_cmd} --appstream-metainfo ${CMAKE_CURRENT_SOURCE_DIR}/../gallerydata --appstream-metainfo-output ${APPDATAFILE}") + execute_process( + COMMAND ${kpackagetool_cmd} --appstream-metainfo ${CMAKE_CURRENT_SOURCE_DIR}/../gallerydata --appstream-metainfo-output ${APPDATAFILE} + ERROR_VARIABLE appstreamerror + RESULT_VARIABLE result) + if (NOT result EQUAL 0) + message(WARNING "couldn't generate metainfo for ${component}: ${appstreamerror}") + else() + if(appstreamerror) + message(WARNING "warnings during generation of metainfo for ${component}: ${appstreamerror}") + endif() + + # OPTIONAL because desktop files can be NoDisplay so they render no XML. + install(FILES ${APPDATAFILE} DESTINATION ${KDE_INSTALL_METAINFODIR} OPTIONAL) + endif() +else() + message(WARNING "KPackage components should be specified in reverse domain notation. Appstream information won't be generated for ${component}.") +endif() + add_executable(kirigami2gallery ${kirigami2gallery_SRCS} ${RESOURCES}) target_link_libraries(kirigami2gallery Qt5::Core Qt5::Qml Qt5::Quick Qt5::Svg ${kirigami2gallery_EXTRA_LIBS}) diff --git a/examples/gallerydata/metadata.desktop b/examples/gallerydata/metadata.desktop --- a/examples/gallerydata/metadata.desktop +++ b/examples/gallerydata/metadata.desktop @@ -36,6 +36,7 @@ Name[x-test]=xxKirigami Galleryxx Name[zh_CN]=Kirigami 画廊 Name[zh_TW]=Kirigami 藝廊 +Comment=Shows examples of Kirigami components and allows you to play with them Encoding=UTF-8 Type=Application