Add basic template for meta info
This commit is contained in:
parent
3fcbaf7fff
commit
486a09c1c5
|
@ -120,6 +120,12 @@ if(NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS)
|
|||
)
|
||||
endif()
|
||||
add_dependencies(install-desktop ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX})
|
||||
if(NOT TARGET install-appimage)
|
||||
add_custom_target(install-appimage
|
||||
COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=appimage -P "${CMAKE_BINARY_DIR}/cmake_install.cmake"
|
||||
)
|
||||
endif()
|
||||
add_dependencies(install-appimage ${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX})
|
||||
|
||||
# add install target for stripped binaries
|
||||
if(NOT TARGET install-binary-strip)
|
||||
|
@ -159,8 +165,10 @@ endif()
|
|||
# find template for *.desktop files
|
||||
include(TemplateFinder)
|
||||
find_template_file("desktop" CPP_UTILITIES APP_DESKTOP_TEMPLATE_FILE)
|
||||
find_template_file("appdata.xml" CPP_UTILITIES APP_APPSTREAM_TEMPLATE_FILE)
|
||||
|
||||
# function to add *.desktop files with additional entries
|
||||
# FIXME v5: use "include(CMakeParseArguments)" like in ReflectionGenerator.cmake
|
||||
function(add_custom_desktop_file_with_additional_entries
|
||||
FILE_NAME
|
||||
DESKTOP_FILE_APP_NAME
|
||||
|
@ -204,7 +212,7 @@ function(add_custom_desktop_file
|
|||
)
|
||||
endfunction()
|
||||
|
||||
# convenience function to add *.desktop file from project meta data
|
||||
# convenience function to add *.desktop file and meta info from project meta data
|
||||
function(add_desktop_file)
|
||||
# compose actions
|
||||
set(DESKTOP_FILE_ADDITIONAL_ENTRIES "")
|
||||
|
@ -217,7 +225,7 @@ function(add_desktop_file)
|
|||
|
||||
# create desktop file
|
||||
add_custom_desktop_file_with_additional_entries(
|
||||
"${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}"
|
||||
"${META_ID}"
|
||||
"${META_APP_NAME}"
|
||||
"${META_GENERIC_NAME}"
|
||||
"${META_APP_DESCRIPTION}"
|
||||
|
@ -226,6 +234,21 @@ function(add_desktop_file)
|
|||
"${META_PROJECT_NAME}"
|
||||
"${DESKTOP_FILE_ADDITIONAL_ENTRIES}"
|
||||
)
|
||||
# create appstream desktop file from template
|
||||
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)
|
||||
endif()
|
||||
configure_file(
|
||||
"${APP_APPSTREAM_TEMPLATE_FILE}"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.appdata.xml"
|
||||
)
|
||||
# add install for the appstream file
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${META_ID}.appdata.xml"
|
||||
DESTINATION "share/metainfo"
|
||||
COMPONENT appimage
|
||||
)
|
||||
endfunction()
|
||||
|
||||
set(TARGET_CONFIG_DONE YES)
|
||||
|
|
|
@ -49,6 +49,20 @@ if(NOT META_VERSION_PATCH)
|
|||
set(META_VERSION_PATCH 0)
|
||||
endif()
|
||||
|
||||
# set META_ID to META_PROJECT_NAME if not specified
|
||||
if(NOT META_ID)
|
||||
set(META_ID "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}")
|
||||
endif()
|
||||
|
||||
# set bugtracker URL
|
||||
if(NOT META_APP_BUGTRACKER_URL)
|
||||
if(META_APP_URL MATCHES "https://(github.com|gitlab.com|.*/gogs|gogs.*)/.*")
|
||||
set(META_APP_BUGTRACKER_URL "${META_APP_URL}/issues")
|
||||
else()
|
||||
set(META_APP_BUGTRACKER_URL "${META_APP_URL}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# provide variables for other projects built as part of the same subdirs project
|
||||
# to access files from this project
|
||||
get_directory_property(HAS_PARENT PARENT_DIRECTORY)
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<component type="desktop">
|
||||
<id>@META_ID@.desktop</id>
|
||||
<metadata_license>MIT</metadata_license>
|
||||
<project_license>@META_PROJECT_LICENSE@</project_license>
|
||||
<name>@META_APP_NAME@</name>
|
||||
<summary>@META_APP_DESCRIPTION@</summary>
|
||||
@META_APP_APPDATA_BODY@<url type="homepage">@META_APP_URL@</url>
|
||||
<url type="bugtracker">@META_APP_BUGTRACKER_URL@</url>
|
||||
<provides>
|
||||
<binary>@TARGET_PREFIX@@META_PROJECT_NAME@@TARGET_SUFFIX@</binary>
|
||||
</provides>
|
||||
<developer_name>@META_APP_AUTHOR@</developer_name>
|
||||
</component>
|
Loading…
Reference in New Issue