Use CMakeParseArguments for add_custom_desktop_file()
This commit is contained in:
parent
e79563569a
commit
716af584c5
|
@ -178,9 +178,11 @@ 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
|
||||
# define generic function to add *.desktop files
|
||||
include(CMakeParseArguments)
|
||||
function(add_custom_desktop_file)
|
||||
# parse arguments
|
||||
set(ONE_VALUE_ARGS
|
||||
FILE_NAME
|
||||
DESKTOP_FILE_APP_NAME
|
||||
DESKTOP_FILE_GENERIC_NAME
|
||||
|
@ -188,7 +190,14 @@ function (add_custom_desktop_file_with_additional_entries
|
|||
DESKTOP_FILE_CATEGORIES
|
||||
DESKTOP_FILE_CMD
|
||||
DESKTOP_FILE_ICON
|
||||
DESKTOP_FILE_ADDITIONAL_ENTRIES)
|
||||
)
|
||||
set(MULTI_VALUE_ARGS
|
||||
)
|
||||
set(OPTIONAL_ARGS
|
||||
DESKTOP_FILE_ADDITIONAL_ENTRIES
|
||||
)
|
||||
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
|
||||
|
||||
# create desktop file from template
|
||||
configure_file("${APP_DESKTOP_TEMPLATE_FILE}" "${CMAKE_CURRENT_BINARY_DIR}/resources/${FILE_NAME}.desktop")
|
||||
# add install for the desktop file
|
||||
|
@ -197,27 +206,8 @@ function (add_custom_desktop_file_with_additional_entries
|
|||
COMPONENT desktop)
|
||||
endfunction ()
|
||||
|
||||
# function to add *.desktop files
|
||||
function (add_custom_desktop_file
|
||||
FILE_NAME
|
||||
DESKTOP_FILE_APP_NAME
|
||||
DESKTOP_FILE_GENERIC_NAME
|
||||
DESKTOP_FILE_DESCRIPTION
|
||||
DESKTOP_FILE_CATEGORIES
|
||||
DESKTOP_FILE_CMD
|
||||
DESKTOP_FILE_ICON)
|
||||
add_custom_desktop_file_with_additional_entries("${FILE_NAME}"
|
||||
"${DESKTOP_FILE_APP_NAME}"
|
||||
"${DESKTOP_FILE_GENERIC_NAME}"
|
||||
"${DESKTOP_FILE_DESCRIPTION}"
|
||||
"${DESKTOP_FILE_CATEGORIES}"
|
||||
"${DESKTOP_FILE_CMD}"
|
||||
"${DESKTOP_FILE_ICON}"
|
||||
"")
|
||||
endfunction ()
|
||||
|
||||
# convenience function to add *.desktop file and meta info from project meta data
|
||||
function (add_desktop_file)
|
||||
# define function to add *.desktop file and meta info from project meta data
|
||||
function(add_desktop_file)
|
||||
# compose actions
|
||||
set(DESKTOP_FILE_ADDITIONAL_ENTRIES "")
|
||||
foreach (ACTION_VAR ${META_APP_ACTIONS})
|
||||
|
@ -231,14 +221,16 @@ function (add_desktop_file)
|
|||
endforeach ()
|
||||
|
||||
# create desktop file
|
||||
add_custom_desktop_file_with_additional_entries("${META_ID}"
|
||||
"${META_APP_NAME}"
|
||||
"${META_GENERIC_NAME}"
|
||||
"${META_APP_DESCRIPTION}"
|
||||
"${META_APP_CATEGORIES}"
|
||||
"${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}"
|
||||
"${META_PROJECT_NAME}"
|
||||
"${DESKTOP_FILE_ADDITIONAL_ENTRIES}")
|
||||
add_custom_desktop_file(
|
||||
FILE_NAME "${META_ID}"
|
||||
DESKTOP_FILE_APP_NAME "${META_APP_NAME}"
|
||||
DESKTOP_FILE_GENERIC_NAME "${META_GENERIC_NAME}"
|
||||
DESKTOP_FILE_DESCRIPTION "${META_APP_DESCRIPTION}"
|
||||
DESKTOP_FILE_CATEGORIES "${META_APP_CATEGORIES}"
|
||||
DESKTOP_FILE_CMD "${TARGET_PREFIX}${META_PROJECT_NAME}${TARGET_SUFFIX}"
|
||||
DESKTOP_FILE_ICON "${META_PROJECT_NAME}"
|
||||
DESKTOP_FILE_ADDITIONAL_ENTRIES "${DESKTOP_FILE_ADDITIONAL_ENTRIES}"
|
||||
)
|
||||
|
||||
# read body for appstream desktop file from resources
|
||||
set(META_APP_APPDATA_BODY_FILE "${CMAKE_CURRENT_SOURCE_DIR}/resources/body.appdata.xml")
|
||||
|
|
Loading…
Reference in New Issue