1
1
function (make_appimage)
2
2
set (optional )
3
- set (args EXE NAME DIR_ICON ICON OUTPUT_NAME )
3
+ set (args EXE NAME ICON OUTPUT_NAME )
4
4
set (list_args ASSETS)
5
5
cmake_parse_arguments (
6
6
PARSE_ARGV 0
@@ -22,10 +22,13 @@ function(make_appimage)
22
22
execute_process (COMMAND chmod +x ${AIT_PATH} )
23
23
endif ()
24
24
25
- # make the AppDir
25
+ # make the AppDir and icons directory
26
26
set (APPDIR "${CMAKE_BINARY_DIR} /AppDir" )
27
+ set (RICONDIR "usr/share/icons/hicolor/512x512/apps" ) # relative icon dir
28
+ set (ICONDIR "${APPDIR} /${RICONDIR} " )
27
29
file (REMOVE_RECURSE "${APPDIR} " ) # remove if leftover
28
30
file (MAKE_DIRECTORY "${APPDIR} " )
31
+ file (MAKE_DIRECTORY "${ICONDIR} " )
29
32
30
33
# copy executable to appdir
31
34
file (COPY "${ARGS_EXE} " DESTINATION "${APPDIR} " FOLLOW_SYMLINK_CHAIN)
@@ -42,16 +45,15 @@ cd \"$(dirname \"$0\")\";
42
45
# copy assets to appdir
43
46
file (COPY ${ARGS_ASSETS} DESTINATION "${APPDIR} " )
44
47
45
- # copy icon thumbnail
46
- file (COPY ${ARGS_DIR_ICON} DESTINATION "${APPDIR} " )
47
- get_filename_component (THUMB_NAME "${ARGS_DIR_ICON} " NAME )
48
- file (RENAME "${APPDIR} /${THUMB_NAME} " "${APPDIR} /.DirIcon" )
49
-
50
- # copy icon highres
51
- file (COPY ${ARGS_ICON} DESTINATION "${APPDIR} " )
48
+ # copy icon
49
+ file (COPY ${ARGS_ICON} DESTINATION "${ICONDIR} " )
52
50
get_filename_component (ICON_NAME "${ARGS_ICON} " NAME )
53
51
get_filename_component (ICON_EXT "${ARGS_ICON} " EXT )
54
- file (RENAME "${APPDIR} /${ICON_NAME} " "${APPDIR} /${ARGS_NAME}${ICON_EXT} " )
52
+ file (RENAME "${ICONDIR} /${ICON_NAME} " "${ICONDIR} /${ARGS_NAME}${ICON_EXT} " )
53
+
54
+ # create icon symlinks
55
+ file (CREATE_LINK "${RICONDIR} /${ARGS_NAME}${ICON_EXT} " "${APPDIR} /.DirIcon" SYMBOLIC )
56
+ file (CREATE_LINK "${RICONDIR} /${ARGS_NAME}${ICON_EXT} " "${APPDIR} /${ARGS_NAME}${ICON_EXT} " SYMBOLIC )
55
57
56
58
# Create the .desktop file
57
59
file (WRITE "${APPDIR} /${ARGS_NAME} .desktop"
0 commit comments