forked from Mirrors/openclonk
Polish 'make install' support a bit
In particular: * Instead of replicating icons in the repository, install from src/res/oc.ico * Pack the game data * Remove runclonk script, install clonk binary only into bin/ (this will make Clonk not run for the moment because it does not find its game data, but I intend to change that with a followup patch soon).
parent
1121db7164
commit
bcf61516b5
|
@ -1071,30 +1071,57 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY
|
|||
############################################################################
|
||||
# installation
|
||||
############################################################################
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/clonk.desktop DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/clonk.desktop "Path=${CMAKE_INSTALL_PREFIX}/share/${C4PROJECT_DOMAIN}")
|
||||
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/runclonk "#!/bin/sh\n")
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/runclonk "cd ${CMAKE_INSTALL_PREFIX}/share/${C4PROJECT_DOMAIN}\n")
|
||||
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/runclonk "clonk $*")
|
||||
# Install the icon into share/icons/hicolor/48x48/apps/clonk.png. Do this by
|
||||
# extracting the correct size from oc.ico. Currently this is layer 2 - let's
|
||||
# hope that it stays this way.
|
||||
# TODO: Check for convert at configure step?
|
||||
install(CODE "
|
||||
EXECUTE_PROCESS(COMMAND \"convert\" \"${CMAKE_CURRENT_SOURCE_DIR}/src/res/oc.ico[2]\" \"${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps/clonk.png\" RESULT_VARIABLE CONVERT_RESULT)
|
||||
IF(NOT \${CONVERT_RESULT} EQUAL 0)
|
||||
MESSAGE(SEND_ERROR \"Creating icon failed\")
|
||||
ENDIF()
|
||||
")
|
||||
|
||||
install(DIRECTORY share/ DESTINATION share/)
|
||||
install(DIRECTORY planet/ DESTINATION share/${C4PROJECT_DOMAIN}/)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/clonk.desktop DESTINATION share/applications)
|
||||
# Remove previously installed data files
|
||||
FILE(GLOB OC_INSTALLED_DATA_FILES "${CMAKE_INSTALL_PREFIX}/share/openclonk/*.c4?")
|
||||
install(CODE "
|
||||
FOREACH(CURRENT_FILE ${OC_INSTALLED_DATA_FILES})
|
||||
FILE(REMOVE \${CURRENT_FILE})
|
||||
ENDFOREACH()
|
||||
")
|
||||
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/clonk ${CMAKE_CURRENT_BINARY_DIR}/c4group ${CMAKE_CURRENT_BINARY_DIR}/runclonk DESTINATION bin/)
|
||||
# Install new files
|
||||
FILE(GLOB OC_DATA_FILES "${CMAKE_CURRENT_SOURCE_DIR}/planet/*.c4?")
|
||||
install(DIRECTORY ${OC_DATA_FILES} DESTINATION share/openclonk)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/clonk.desktop DESTINATION share/applications)
|
||||
|
||||
# Pack them
|
||||
install(CODE "
|
||||
FOREACH(CURRENT_FILE ${OC_DATA_FILES})
|
||||
GET_FILENAME_COMPONENT(CURRENT_FILENAME \"\${CURRENT_FILE}\" NAME)
|
||||
MESSAGE(\"Packing \${CURRENT_FILENAME}...\")
|
||||
EXECUTE_PROCESS(COMMAND \"${CMAKE_CURRENT_BINARY_DIR}/c4group\" \"${CMAKE_INSTALL_PREFIX}/share/openclonk/\${CURRENT_FILENAME}\" \"-p\" RESULT_VARIABLE C4GROUP_RESULT)
|
||||
IF(NOT \${C4GROUP_RESULT} EQUAL 0)
|
||||
MESSAGE(SEND_ERROR \"Packing ${CURRENT_FILENAME} failed\")
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
")
|
||||
|
||||
# Install binaries
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/clonk ${CMAKE_CURRENT_BINARY_DIR}/c4group DESTINATION bin/)
|
||||
|
||||
############################################################################
|
||||
# CPack support
|
||||
############################################################################
|
||||
set(CPACK_PACKAGE_NAME "${C4PROJECT_DOMAIN}")
|
||||
set(CPACK_PACKAGE_NAME "openclonk")
|
||||
set(CPACK_PACKAGE_VENDOR "${C4PROJECT_URL}")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - An game mix out of tactic, strategy and JnR")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenClonk - A game mix out of tactic, strategy and Jump & Run")
|
||||
set(CPACK_PACKAGE_VERSION "${C4XVER1}.${C4XVER2}.${C4XVER3}")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${C4XVER1}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${C4XVER2}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "r${C4REVISION}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "openclonk${C4XVER1}.${C4XVER2}.${C4XVER3}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${C4XVER3}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "openclonk-${C4XVER1}.${C4XVER2}.${C4XVER3}")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "openclonk-src-${C4XVER1}.${C4XVER2}.${C4XVER3}")
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
||||
# Somebody who uses Debian/Ubuntu should set this
|
||||
|
|
|
@ -3,7 +3,7 @@ Type=Application
|
|||
Name=OpenClonk
|
||||
Comment=An action-packed game of strategy, tactics, and skill.
|
||||
Comment[de]=Ein actiongeladenes Taktikspiel.
|
||||
GenericName=A multiplayer-action-tactic-skill game
|
||||
GenericName=Multiplayer action, tactics and skill game
|
||||
Icon=clonk
|
||||
Exec=clonk
|
||||
Categories=Game;ActionGame;
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 41 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.0 KiB |
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
Loading…
Reference in New Issue