Fix creation of desktop files

This commit is contained in:
Martchus 2019-05-05 23:19:05 +02:00
parent 02bd9f7c06
commit 0443905986
2 changed files with 18 additions and 11 deletions

View File

@ -167,15 +167,22 @@ function (add_custom_desktop_file)
DESKTOP_FILE_DESCRIPTION DESKTOP_FILE_DESCRIPTION
DESKTOP_FILE_CATEGORIES DESKTOP_FILE_CATEGORIES
DESKTOP_FILE_CMD DESKTOP_FILE_CMD
DESKTOP_FILE_ICON) DESKTOP_FILE_ICON
DESKTOP_FILE_ADDITIONAL_ENTRIES)
set(MULTI_VALUE_ARGS) set(MULTI_VALUE_ARGS)
set(OPTIONAL_ARGS DESKTOP_FILE_ADDITIONAL_ENTRIES) set(OPTIONAL_ARGS)
cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN}) cmake_parse_arguments(ARGS "${OPTIONAL_ARGS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN})
if (NOT ARGS_FILE_NAME OR NOT ARGS_DESKTOP_FILE_APP_NAME OR NOT ARGS_DESKTOP_FILE_CMD)
message(FATAL_ERROR "Not all mandatory arguments specified.")
endif ()
if (NOT ARGS_DESKTOP_FILE_GENERIC_NAME)
set(ARGS_DESKTOP_FILE_GENERIC_NAME "${ARGS_DESKTOP_FILE_APP_NAME}")
endif ()
# 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/${ARGS_FILE_NAME}.desktop")
# add install for the desktop file # add install for the desktop file
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${FILE_NAME}.desktop" install(FILES "${CMAKE_CURRENT_BINARY_DIR}/resources/${ARGS_FILE_NAME}.desktop"
DESTINATION "share/applications" DESTINATION "share/applications"
COMPONENT desktop) COMPONENT desktop)
endfunction () endfunction ()

View File

@ -1,10 +1,10 @@
[Desktop Entry] [Desktop Entry]
Name=@DESKTOP_FILE_APP_NAME@ Name=@ARGS_DESKTOP_FILE_APP_NAME@
GenericName=@DESKTOP_FILE_GENERIC_NAME@ GenericName=@ARGS_DESKTOP_FILE_GENERIC_NAME@
Comment=@DESKTOP_FILE_DESCRIPTION@ Comment=@ARGS_DESKTOP_FILE_DESCRIPTION@
Exec=@DESKTOP_FILE_CMD@ Exec=@ARGS_DESKTOP_FILE_CMD@
Icon=@DESKTOP_FILE_ICON@ Icon=@ARGS_DESKTOP_FILE_ICON@
Terminal=false Terminal=false
Type=Application Type=Application
Categories=@DESKTOP_FILE_CATEGORIES@ Categories=@ARGS_DESKTOP_FILE_CATEGORIES@
@DESKTOP_FILE_ADDITIONAL_ENTRIES@ @ARGS_DESKTOP_FILE_ADDITIONAL_ENTRIES@