diff options
| author | Dmitry Marakasov <amdmi3@amdmi3.ru> | 2021-04-02 23:11:12 +0300 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2021-04-03 10:35:14 +0100 |
| commit | b685eee47899dfc9fdb065567b029f9c9061ec68 (patch) | |
| tree | 8f6bd0a961f6bd0b5a0ae868b8708bc179ba6c72 | |
| parent | f6434e84964d840160eeff518bc812392c13160f (diff) | |
| download | puzzles-b685eee47899dfc9fdb065567b029f9c9061ec68.zip puzzles-b685eee47899dfc9fdb065567b029f9c9061ec68.tar.gz puzzles-b685eee47899dfc9fdb065567b029f9c9061ec68.tar.bz2 puzzles-b685eee47899dfc9fdb065567b029f9c9061ec68.tar.xz | |
Install desktop files and pixmaps from CMake
| -rw-r--r-- | cmake/platforms/unix.cmake | 31 | ||||
| -rw-r--r-- | cmake/setup.cmake | 5 | ||||
| -rw-r--r-- | puzzle.desktop.in | 10 |
3 files changed, 37 insertions, 9 deletions
diff --git a/cmake/platforms/unix.cmake b/cmake/platforms/unix.cmake index 3398b9d..6cbcbe4 100644 --- a/cmake/platforms/unix.cmake +++ b/cmake/platforms/unix.cmake @@ -64,17 +64,30 @@ function(get_platform_puzzle_extra_source_files OUTVAR NAME) endfunction() function(set_platform_puzzle_target_properties NAME TARGET) + get_target_property(official ${TARGET} official) + get_target_property(exename ${TARGET} exename) + get_target_property(displayname ${TARGET} displayname) + get_target_property(description ${TARGET} description) + set(binary_name ${NAME_PREFIX}${NAME}) + set_target_properties(${TARGET} PROPERTIES - OUTPUT_NAME ${NAME_PREFIX}${NAME}) + OUTPUT_NAME ${binary_name}) - if(CMAKE_VERSION VERSION_LESS 3.14) - # CMake 3.13 and earlier required an explicit install destination. - install(TARGETS ${TARGET} RUNTIME DESTINATION bin) - else() - # 3.14 and above selects a sensible default, which we should avoid - # overriding here so that end users can override it using - # CMAKE_INSTALL_BINDIR. - install(TARGETS ${TARGET}) + if(${official}) + if(CMAKE_VERSION VERSION_LESS 3.14) + # CMake 3.13 and earlier required an explicit install destination. + install(TARGETS ${TARGET} RUNTIME DESTINATION bin) + else() + # 3.14 and above selects a sensible default, which we should avoid + # overriding here so that end users can override it using + # CMAKE_INSTALL_BINDIR. + install(TARGETS ${TARGET}) + endif() + configure_file(${CMAKE_SOURCE_DIR}/puzzle.desktop.in ${binary_name}.desktop) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/icons/${NAME}-48d24.png + DESTINATION share/pixmaps OPTIONAL RENAME ${binary_name}-48d24.png) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${binary_name}.desktop + DESTINATION share/applications) endif() endfunction() diff --git a/cmake/setup.cmake b/cmake/setup.cmake index 8afa455..d9c7663 100644 --- a/cmake/setup.cmake +++ b/cmake/setup.cmake @@ -80,6 +80,11 @@ function(puzzle NAME) add_executable(${EXENAME} ${NAME}.c ${extra_files}) target_link_libraries(${EXENAME} common ${platform_gui_libs} ${platform_libs}) + set_property(TARGET ${EXENAME} PROPERTY exename ${EXENAME}) + set_property(TARGET ${EXENAME} PROPERTY displayname ${OPT_DISPLAYNAME}) + set_property(TARGET ${EXENAME} PROPERTY description ${OPT_DESCRIPTION}) + set_property(TARGET ${EXENAME} PROPERTY objective ${OPT_OBJECTIVE}) + set_property(TARGET ${EXENAME} PROPERTY official ${official}) set_platform_puzzle_target_properties(${NAME} ${EXENAME}) endif() endfunction() diff --git a/puzzle.desktop.in b/puzzle.desktop.in new file mode 100644 index 0000000..fe7e490 --- /dev/null +++ b/puzzle.desktop.in @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=${displayname} +Comment=${description} +Exec=${binary_name} +Icon=${binary_name}-48d24 +StartupNotify=false +Categories=Game;LogicGame; +Terminal=false |