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